Theory
કૂદતાં પહેલાં જોઈ લો
ધારો કે કૉલેજ તમને એક spreadsheet આપે છે: દરેક વિદ્યાર્થી માટે એક row, અને marks, attendance, projects ની સંખ્યા તથા placement થયું કે નહીં એ માટેના columns. Placement ની આગાહી કરતું કોઈ પણ model બનાવતાં પહેલાં તમારે આ data ને ખરેખર સમજવો પડશે: એનો આકાર, એની લઢણો, એમાં રહેલા ખાડા.
એ પહેલું પગથિયું એટલે exploratory data analysis (EDA): model બનાવતાં પહેલાં સારાંશ અને આલેખ દ્વારા dataset ને ઓળખવો. આખો વિષય એ જ placement dataset ને ચાલુ દાખલા તરીકે વાપરે છે, અને શરૂઆત અહીંથી જ થાય છે, એટલે કે તમારી પાસે શું છે એ ધ્યાનથી જોવાથી.
Theory
EDA એટલે શું
Exploratory data analysis એટલે ઔપચારિક models લગાડતાં પહેલાં dataset ના મુખ્ય લક્ષણો સમજવા માટે એની તપાસ કરવાની રીત. તમે સારાંશ ગણો છો (સરેરાશ, વ્યાપ, ગણતરી) અને સાદા આલેખ દોરો છો, જેથી આવા પ્રશ્નોના જવાબ મળે: દરેક column કઈ કિંમતો લે છે? એ કઈ રીતે વહેંચાયેલી છે? કયા columns એકબીજા સાથે સંબંધ ધરાવે છે? ક્યાંય ખાડા કે વિચિત્ર કિંમતો છે?
EDA કોઈ ઔપચારિકતા નથી; સમસ્યાઓ અહીં જ પકડાય છે અને અંદાજ અહીં જ બંધાય છે. એને છોડી દેવું એટલે જે data સમજ્યા જ નથી એના પર model બનાવવું, અને એ ખોટા નિષ્કર્ષોનું ચોક્કસ કારણ બને છે. સારા વિશ્લેષકો પહેલાં અહીં જ ગંભીરતાથી સમય આપે છે.
At a glance
| પ્રકાર | તપાસાતા ચલ | Placement data નો દાખલો |
|---|---|---|
| Univariate | એક સમયે એક | ફક્ત marks ની વહેંચણી |
| Bivariate | બે, અને એમનો સંબંધ | Marks સામે વિદ્યાર્થીનું placement થયું કે નહીં |
| Multivariate | ત્રણ કે વધુ સાથે | Marks, attendance અને projects સાથે મળીને placement સામે |
Theory
ખૂટતો data અને outliers
ખરા datasets અવ્યવસ્થિત હોય છે, અને બે સમસ્યાઓ સતત આવ્યા કરે છે.
ખૂટતો data: કેટલીક કિંમતો હાજર જ હોતી નથી (કોઈ વિદ્યાર્થીની attendance નોંધાઈ ન હોય). દરેક ખાડાનું શું કરવું એ નક્કી કરવું પડે: અસરગ્રસ્ત rows કે columns કાઢી નાખવાં, અથવા impute કરવાં, એટલે કે એ column ની સરેરાશ, મધ્યક કે બહુલક જેવી સમજદાર અવેજી કિંમતથી ભરી દેવાં.
Outliers: કેટલીક કિંમતો સામાન્ય વ્યાપથી ઘણી બહાર બેસે છે (0 થી 100 વાળા column માં 500 marks નોંધાયા હોય, અથવા ખરેખરો પણ અતિશય કિસ્સો હોય). તમે એમને શોધો છો અને પછી નક્કી કરો છો: આ સુધારવા કે કાઢી નાખવા જેવી ભૂલ છે, કે સાચવવા અને સમજવા જેવી ખરી અંતિમ કિંમત છે? આ બંનેને પ્રામાણિકપણે સંભાળવું એ EDA નો પાયાનો ભાગ છે.
Quiz
તમે વિદ્યાર્થીઓના marks અને એમનું placement થયું કે નહીં એ વચ્ચેનો સંબંધ તપાસો છો, અને બરાબર એ જ બે ચલ સાથે જુઓ છો. આ કયા પ્રકારનું EDA છે?
- Univariate, કારણ કે placement એક જ પરિણામ છે
- Bivariate, કારણ કે તમે બે ચલ અને એમનો સંબંધ તપાસો છો
- Multivariate, કારણ કે placement બધા પર આધાર રાખે છે
- આ EDA નથી; આ modelling છે
Show the answer
Bivariate, કારણ કે તમે બે ચલ અને એમનો સંબંધ તપાસો છો
બરાબર બે ચલ (marks અને placement) અને એ કઈ રીતે સંબંધ ધરાવે છે એ તપાસવું એટલે bivariate વિશ્લેષણ. વિકલ્પ A ખોટો છે: univariate ફક્ત એક જ ચલને એકલો જુએ છે (જેમ કે એકલા marks નો ફેલાવો), પણ અહીં તમે બેને જોડી રહ્યા છો. વિકલ્પ C, એટલે કે multivariate, માં ત્રણ કે વધુ ચલ સાથે હોય છે (દાખલા તરીકે marks, attendance અને projects એકસાથે); આ દાખલામાં ફક્ત બે જ છે. વિકલ્પ D ખોટો છે: સારાંશ અને આલેખ દ્વારા ચલ વચ્ચેના સંબંધો તપાસવા એ ચોક્કસપણે EDA જ છે, ઔપચારિક modelling નહીં. તમે એકસાથે કેટલા ચલ જુઓ છો એ ગણો: એક એટલે univariate, બે એટલે bivariate, ત્રણ કે વધુ એટલે multivariate.
Think first
ખૂટતી કિંમતવાળી દરેક row કાઢી જ કેમ ન નાખવી?
ખૂટતા data વાળી rows કાઢી નાખવી સહેલી છે. તો પણ કિંમતો ભરી દેવી (imputation) ઘણી વાર વધુ સારી કેમ ગણાય? વિચારીને પછી tap કરો.
Show the answer
કારણ કે rows કાઢી નાખવાથી ઘણો કીમતી data ફેંકાઈ જાય છે અને પરિણામોમાં પક્ષપાત પણ આવી શકે છે, એટલે imputation ઘણી વાર વધુ ડહાપણભરી પસંદગી બને છે.
ધારો કે placement dataset માં 500 વિદ્યાર્થીઓ છે અને એમાંથી 120 ની attendance ખૂટે છે, કદાચ એટલા માટે કે એક વિભાગે એને જુદી રીતે નોંધી હતી. જો તમે કોઈ પણ ખૂટતી કિંમતવાળી દરેક row કાઢી નાખો, તો એ 120 વિદ્યાર્થીઓ સાવ જતા રહે, તમારો data લગભગ ચોથા ભાગ જેટલો ઘટી જાય, અને એ rows માં રહેલી બીજી બધી સારી માહિતી (એમના marks, projects, placement નું પરિણામ) પણ સાથે જ ગુમાવાય.
એથી પણ ખરાબ વાત એ કે જો ખૂટવું આકસ્મિક ન હોય, એટલે કે attendance મોટે ભાગે એક જ વિભાગની ખૂટતી હોય, તો એ rows કાઢી નાખવાથી તમારું વિશ્લેષણ ચૂપચાપ એ વિભાગો તરફ ઢળી જાય છે જેમણે નોંધ રાખી હતી, અને નિષ્કર્ષો વિકૃત થાય છે.
Imputation, એટલે કે ખાડાને column ની સરેરાશ, મધ્યક કે બહુલક જેવી વાજબી કિંમતથી (અથવા વધુ ચતુર અંદાજથી) ભરવું, તમને દરેક row ની બાકીની ઉપયોગી માહિતી સાચવવા દે છે અને ખૂટતા ટુકડા માટે સિદ્ધાંતસર અનુમાન કરવા દે છે.
એ પણ હંમેશા સાચું જ હોય એવું નથી; imputation પોતાની ધારણાઓ સાથે લાવે છે, એટલે કેટલું ખૂટે છે અને શા માટે ખૂટે છે એના આધારે પસંદગી કરવી પડે. પણ આંખ મીંચીને કાઢી નાખવું ભાગ્યે જ શ્રેષ્ઠ હોય છે. વ્યાવસાયિક ટેવ એ છે કે પહેલાં સમજો કે data શા માટે ખૂટે છે, પછી row અને column પ્રમાણે નક્કી કરો કે કાઢવું છે કે ભરવું છે, બદલે એના કે સીધું ફેંકી દેવું. જે માહિતી બચાવી શકાય તે બચાવો; ખાડા વિચારીને ભરો.
Summary
Key takeaways
- Exploratory data analysis (EDA) પહેલું પગથિયું છે: model બનાવતાં પહેલાં સારાંશ અને આલેખ દ્વારા dataset સમજવો.
- એ જવાબ આપે છે કે દરેક column કઈ કિંમતો લે છે, એ કઈ રીતે વહેંચાયેલી છે, એકબીજા સાથે કેવો સંબંધ છે અને સમસ્યાઓ ક્યાં છે.
- Univariate EDA એક ચલ તપાસે છે; bivariate બે ચલ અને એમનો સંબંધ; multivariate ત્રણ કે વધુ ચલ સાથે.
- ખૂટતો data (ગેરહાજર કિંમતો) અસરગ્રસ્ત rows કે columns કાઢીને અથવા impute કરીને (સરેરાશ, મધ્યક કે બહુલકથી ભરીને) સંભાળાય છે.
- Outliers (બાકીથી ઘણી દૂરની અંતિમ કિંમતો) શોધીને નક્કી કરવું પડે કે એ સુધારવા જેવી ભૂલ છે કે સાચવવા જેવી ખરી અંતિમ કિંમત.
- Rows કાઢી નાખવાથી data ગુમાવાય અને પરિણામોમાં પક્ષપાત આવે, એટલે imputation ઘણી વાર વધુ સારું; પહેલાં સમજો કે data શા માટે ખૂટે છે.
- યાદ રાખવાની કડી: પહેલાં EDA; ચલ ગણો (uni/bi/multi), અને ખાડા તથા અંતિમ કિંમતો પ્રામાણિકપણે સંભાળો.