Data Cleaning and Normalization

किसी भी मशीन लर्निंग मॉडल की सफलता इस बात पर निर्भर करती है कि आपने उसे कितना साफ और संतुलित डेटा दिया है।
गंदा डेटा = ग़लत मॉडल
इसलिए हमें सबसे पहले डेटा को साफ (clean) करना और फिर संतुलित (normalize) करना होता है।


🔷 🔹 Why Clean & Normalize Data?

ReasonBenefit
Missing/Error हटानाTraining के दौरान performance में सुधार
Scaling balance करनामॉडल को सभी features को समान रूप से सीखने देना
Bias कम करनाएक feature का ज़रूरत से ज़्यादा प्रभाव न हो

🔶 1. डेटा क्लीनिंग (Data Cleaning)

🧹 क्या होता है?

डेटा से गलत, अधूरा या अव्यवस्थित जानकारी हटाना या सुधारना।

✅ मुख्य कार्य:

TechniqueUse Case
Missing Value HandlingNull, NaN भरना या हटाना
Outlier Removalबहुत ज़्यादा/कम values हटाना
Duplicate Removalदोहराए हुए rows हटाना
Type ConversionString → Int/Float बदलना
Inconsistent Label Fixingजैसे “Male”, “male”, “MALE” को एक जैसा बनाना

🛠️ Python/Pandas Code:

import pandas as pd

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

# Null values को भरना
df.fillna(df.mean(), inplace=True)

# Duplicates हटाना
df.drop_duplicates(inplace=True)

# गलत values हटाना
df = df[df["age"] > 0]

🔶 2. नॉर्मलाइजेशन (Normalization)

📌 क्या होता है?

सभी numerical features को एक समान स्केल (जैसे 0 से 1) पर लाना ताकि कोई feature ज़्यादा हावी न हो।

उदाहरण: अगर एक feature की वैल्यू 1-10 के बीच है और दूसरे की 1000-100000, तो दूसरा model को ज्यादा influence करेगा। यही imbalance को normalization से हटाया जाता है।


✅ प्रमुख तरीके:

तकनीकविवरणफॉर्मूला
Min-Max Scaling0 से 1 के बीच स्केल करता हैX' = (X - min) / (max - min)
Z-Score StandardizationMean को 0 और Std को 1 बनाता हैX' = (X - μ) / σ
Robust ScalingMedian और IQR पर आधारित होता हैX' = (X - median) / IQR

🛠️ Sklearn Code:

from sklearn.preprocessing import MinMaxScaler

scaler = MinMaxScaler()
scaled = scaler.fit_transform(df[['age', 'salary']])

📊 Summary Table:

स्टेपउद्देश्यटूल/तकनीक
Missing ValuesNaN भरना/हटानाfillna(), dropna()
Outliersमॉडल accuracy बचानाIQR, Z-score
Scalingसभी features को बराबरी देनाMinMaxScaler, StandardScaler
Duplicatesडाटा दोहराव हटानाdrop_duplicates()
Type Conversionडेटा को सही फॉर्मेट में लानाastype(), to_numeric()

📝 Practice Questions:

  1. Missing value को handle करने के कौन-कौन से तरीके होते हैं?
  2. Z-score और Min-Max scaling में क्या अंतर है?
  3. Robust Scaling कब उपयोगी होता है?
  4. fillna() और dropna() में अंतर बताइए।
  5. Normalization की ज़रूरत क्यों होती है?