Thuta Learning
ရှာဖွေရန်
BasicData & Databasesintermediate

Data Preprocessing Basics

စိတ်လျှော့ပါ။ ဒီခန်းကို စာအုပ်လိုမဟုတ်ဘဲ စကားပြောသလိုပဲ၊ နားလည်လွယ်အောင် ရှင်းပါမယ်။

ဒီခန်းပြီးရင် ဘာတတ်သွားမလဲ

  • Data Preprocessing Basics ကို ကြောက်စရာမလိုအောင် နားလည်မယ်
  • ကိုယ်တိုင် scikit-learn code ကို run ကြည့်တတ်မယ်
  • Real project ထဲမှာ ဒီ concept ကို ချက်ချင်း အသုံးချတတ်မယ်

ခဏလေး ဒီလိုပဲ စဉ်းစားကြည့်

Missing Value ကို ကိုင်တွယ်ရာမှာ နည်းလမ်းများစွာ ရှိပါတယ် — row/column ကို drop လုပ်ခြင်း (data အများကြီး ဆုံးရှုံးနိုင်), mean/median value နဲ့ fill လုပ်ခြင်း (imputation) — data ရဲ့ characteristic အလိုက် ရွေးချယ်ရပါတယ်။ Feature Scaling ကတော့ column (feature) တွေရဲ့ value range ကို standardize လုပ်ခြင်းပါ — ဥပမာ 'age' (0-100) နဲ့ 'income' (0-1,000,000) ကို scale မတူဘဲ model ထဲ တိုက်ရိုက် ထည့်ရင်, income column က weight ပိုများသွားနိုင်ပါတယ် (algorithm အချို့မှာ) — StandardScaler/MinMaxScaler ကို သုံးပြီး feature အားလုံးကို comparable scale ဆီ ပြောင်းလဲပေးရပါတယ်.

လက်တွေ့ scenario နဲ့ ချိတ်ကြည့်မယ်

Pandas DataFrame ထဲမှာ `df.isnull().sum()` နဲ့ missing value column တစ်ခုချင်းစီ ဘယ်နှစ်ခု ရှိလဲ ကြည့်နိုင်ပါတယ် — `df['age'].fillna(df['age'].mean())` လို့ ရေးရင် missing age value ကို average age နဲ့ fill လုပ်ပေးပါတယ်။ `from sklearn.preprocessing import StandardScaler; scaler = StandardScaler(); X_scaled = scaler.fit_transform(X)` လို့ ရေးရင် feature column အားလုံးကို mean=0, std=1 ဆီ scale လုပ်ပေးပါတယ်.

အတူတူ ကြည့်မယ်

python
import pandas as pd
from sklearn.preprocessing import StandardScaler

df = pd.read_csv("houses.csv")

# Check for missing values
print(df.isnull().sum())

# Fill missing values with the column mean
df['age'] = df['age'].fillna(df['age'].mean())

# Scale numeric features
scaler = StandardScaler()
X_scaled = scaler.fit_transform(df[['age', 'income']])
You should see
age        3
income     0
price      0
dtype: int64

၅ မိနစ် စမ်းကြည့်

CSV file (sample data, missing value အနည်းငယ်ပါတဲ့) ကို Pandas ဖြင့် load လုပ်ပြီး, `isnull().sum()` နဲ့ missing value ကြည့်ကာ, `fillna()` ဖြင့် fill လုပ်ကြည့်ပါ။

သတိလေးတစ်ချက်

Feature Scaling ကို tree-based algorithm (Decision Tree, Random Forest) တွေအတွက် လိုအပ်ချေ နည်းပါတယ် (scale-invariant) — Linear Regression, KNN, SVM (Advanced chapter) တွေအတွက်တော့ scaling က performance ကို သိသိသာသာ ထိခိုက်နိုင်ပါတယ်.

ဒီနေရာမှာ လူအများမှားတတ်တယ်

  • Feature Scaling ကို test data အပေါ်မှာ သီးခြား `fit_transform()` ခေါ်ခြင်း — training data ရဲ့ scaler ကိုသာ `fit()` လုပ်ပြီး, test data ကို `transform()` (fit မဟုတ်) ခေါ်ရပါမယ် (data leakage ကို ရှောင်ဖို့)
  • Missing value ကို drop/fill ကို data context ထည့်မတွက်ဘဲ ကျပန်း ရွေးချယ်ခြင်း — missing data ဖြစ်ရတဲ့ အကြောင်းရင်း (random vs systematic) ကို နားလည်ပြီးမှ decision ချသင့်ပါတယ်

အခု ကိုယ်တိုင် စမ်းကြည့်

CSV file (sample data, missing value အနည်းငယ်ပါတဲ့) ကို Pandas ဖြင့် load လုပ်ပြီး, `isnull().sum()` နဲ့ missing value ကြည့်ကာ, `fillna()` ဖြင့် fill လုပ်ကြည့်ပါ။

You'll know it worked when: age 3 income 0 price 0 dtype: int64

Data Preprocessing Basics | Thuta Learning