Course 01 – Data Analytics / Data Science Basics

Module 07 – Exploratory Data Analysis (EDA)

እስካሁን අප දත්ත පිරිසිදු කිරීමට (Module 5) සහ ඒවා ප්‍රස්තාරගත කිරීමට (Module 6) ඉගෙන ගත්තා. දැන්, එම කුසලතා දෙකම එකට එකතු කර, දත්ත කට්ටලයක් (dataset) ගැඹුරින් ගවේෂණය කරන ආකාරය ඉගෙන ගැනීමට කාලයයි. මෙම ක්‍රියාවලිය **Exploratory Data Analysis (EDA)** හෙවත් **ගවේෂණාත්මක දත්ත විශ්ලේෂණය** ලෙස හැඳින්වේ.

දත්ත විශ්ලේෂකයා රහස් පරීක්ෂකයෙකු මෙන්

EDA ක්‍රියාවලිය, රහස් පරීක්ෂකයෙකු අපරාධ ස්ථානයක් පරීක්ෂා කරනවාට සමාන කළ හැකිය. ඔහු කිසිදු නිගමනයකට ඒමට පෙර, සියලු සාක්ෂි එකතු කරයි, හෝඩුවාවන් සොයයි, විවිධ පුද්ගලයන්ගෙන් ප්‍රශ්න කරයි, සහ සිදුවීම් අතර සම්බන්ධතා ගොඩනගයි. ඒ ආකාරයටම, දත්ත විශ්ලේෂකයෙක් EDA වලදී දත්ත වලින් ප්‍රශ්න අසයි, එහි ඇති මූලික ලක්ෂණ සාරාංශගත කරයි, සහ දෘශ්‍යකරණය (visualization) මගින් සැඟවුණු රටා සහ සම්බන්ධතා මතු කර ගනී.

EDA හි ප්‍රධාන අරමුණ වන්නේ, කිසියම් විධිමත් ආකෘති නිර්මාණයක් (formal modeling) හෝ උපකල්පන පරීක්ෂාවක් (hypothesis testing) කිරීමට පෙර, දත්ත ගැන හොඳ අවබෝධයක් ලබා ගැනීමයි.


1. Descriptive Statistics (විස්තරාත්මක සංඛ්‍යානය)

EDA හි පළමු පියවර වන්නේ දත්ත කට්ටලයේ මූලික සංඛ්‍යානමය සාරාංශය ලබා ගැනීමයි. Pandas DataFrame එකක ඇති `.describe()` ශ්‍රිතය මේ සඳහා ඉතා ප්‍රයෝජනවත් වේ. එය සංඛ්‍යාත්මක තීරු සඳහා ප්‍රධාන සංඛ්‍යාන මිනුම් ස්වයංක්‍රීයව ගණනය කර පෙන්වයි.

import pandas as pd import seaborn as sns import matplotlib.pyplot as plt # උදාහරණයක් ලෙස 'tips' dataset එක load කරගනිමු (Seaborn සමඟ එන dataset එකක්) tips_df = sns.load_dataset('tips') # මුල් පේළි කිහිපය බලමු print("Sample Data:") print(tips_df.head()) # Descriptive Statistics ලබාගැනීම print("\nDescriptive Statistics:") print(tips_df.describe())

`.describe()` ප්‍රතිදානයෙන් අපට ලැබෙන දේ:

  • count: හිස් නොවන අගයන් ගණන.
  • mean: මධ්‍යන්‍යය (සාමාන්‍ය අගය).
  • std: සම්මත අපගමනය (Standard Deviation) - දත්ත, මධ්‍යන්‍යය වටා කොතරම් පැතිරී ඇත්දැයි පෙන්වයි.
  • min: අවම අගය.
  • 25%, 50%, 75%: දත්ත වල පිළිවෙලින් 25%, 50% (මධ්‍යස්ථය - median) සහ 75% වන ස්ථාන වල අගයන්.
  • max: උපරිම අගය.

මෙම සරල command එක මගින්, dataset එකේ ඇති මුළු බිල (`total_bill`), ટીપ (`tip`) එක, සහ මේසයේ සිටි ප්‍රමාණය (`size`) පිළිබඳව ඉක්මන් චිත්‍රයක් මවාගත හැකිය.


2. Correlation Analysis (සහසම්බන්ධතා විශ්ලේෂණය)

Correlation මගින් විචල්‍යයන් (variables) දෙකක් අතර ඇති සම්බන්ධතාවයේ ශක්තිය සහ දිශාව මනිනු ලැබේ. සරලවම කිවහොත්, එක් විචල්‍යයක් වෙනස් වන විට අනෙක් විචල්‍යය වෙනස් වන්නේ කෙසේද යන්නයි.

  • Positive Correlation: එක් විචල්‍යයක් වැඩි වන විට, අනෙකද වැඩි වේ (e.g., total_bill සහ tip).
  • Negative Correlation: එක් විචල්‍යයක් වැඩි වන විට, අනෙක අඩු වේ.
  • No Correlation: විචල්‍යයන් දෙක අතර පැහැදිලි සම්බන්ධයක් නොමැත.

Pandas හි `.corr()` ශ්‍රිතය මගින් සංඛ්‍යාත්මක තීරු අතර correlation matrix එකක් ලබාගත හැකි අතර, Module 6 හිදී ඉගෙනගත් පරිදි, Heatmap එකක් මගින් එය දෘශ්‍යමාන කිරීම ඉතා ඵලදායී වේ.

# සංඛ්‍යාත්මක තීරු වල correlation matrix එක ගණනය කිරීම correlation_matrix = tips_df[['total_bill', 'tip', 'size']].corr() # Heatmap එකක් නිර්මාණය කිරීම plt.figure(figsize=(8, 6)) sns.heatmap(correlation_matrix, annot=True, cmap='viridis') plt.title('Correlation Matrix of Tips Dataset') plt.show()

මෙම Heatmap එක බැලූ විට, `total_bill` සහ `tip` අතර 0.68 ක (ශක්තිමත් ධන) සහසම්බන්ධතාවක් ඇති බව පැහැදිලිව පෙනේ. එනම්, බිල වැඩි වන තරමට, ලැබෙන ટીપ එකද වැඩි වීමේ ප්‍රවණතාවක් ඇත.


3. Trends සහ Patterns හඳුනාගැනීම

EDA හි හදවත වන්නේ දෘශ්‍යකරණය (visualization) හරහා දත්ත වල සැඟවුණු ප්‍රවණතා සහ රටා හඳුනාගැනීමයි. මෙහිදී අපි දත්ත වලින් විවිධ ප්‍රශ්න අසමින්, ඊට පිළිතුරු සෙවීමට ප්‍රස්තාර නිර්මාණය කරමු.

ප්‍රශ්නය 1: දුම් පානය කරන සහ නොකරන අයගෙන් වැඩිපුරම ટીપ දෙන්නේ කවුද? (Box Plot)

sns.boxplot(x='smoker', y='tip', data=tips_df) plt.title('Tip Amount by Smoking Status') plt.show()

ප්‍රශ්නය 2: සතියේ කුමන දිනයේදී ලැබෙන මුළු බිල වැඩිමද? (Bar Plot)

sns.barplot(x='day', y='total_bill', data=tips_df) plt.title('Total Bill by Day of the Week') plt.show()

මෙවැනි ප්‍රශ්න ඇසීමෙන් සහ ඊට අදාළ ප්‍රස්තාර නිර්මාණය කිරීමෙන්, දත්ත කට්ටලය පිළිබඳව අපට ගැඹුරු, ගුණාත්මක අවබෝධයක් ලබාගත හැකි අතර, ඉදිරි විශ්ලේෂණයන් සඳහා මග පෙන්වීමක්ද ලැබේ.

මෙම Module එකේදී...
  • EDA යනු කුමක්දැයි හඳුනාගැනීම.
  • `.describe()` මගින් Descriptive Statistics ලබාගැනීම.
  • `.corr()` සහ Heatmap මගින් සහසම්බන්ධතා විශ්ලේෂණය.
  • දත්ත වලින් ප්‍රශ්න අසා, Visualization මගින් පිළිතුරු සෙවීම.
  • දත්ත වල සැඟවුණු Trends සහ Patterns මතු කරගැනීම.