⚙️ Feature Engineering in Data Science (Scaling, Encoding, Normalization)
किसी भी Machine Learning model की performance raw data पर depend नहीं करती, बल्कि उस data को सही format और scale में transform करने पर depend करती है। यही process Feature Engineering कहलाती है। इसमें हम raw data को meaningful features में बदलते हैं ताकि model बेहतर तरीके से patterns सीख सके।
❓ Feature Engineering क्यों ज़रूरी है?
- 📊 Model accuracy बढ़ाने के लिए
- ⚡ Training time कम करने के लिए
- 🔄 Features को comparable scale पर लाने के लिए
- 🌐 Categorical data को numerical form में बदलने के लिए
🔹 Feature Scaling
Feature scaling numerical data को एक uniform scale पर लाने की process है। Example: अगर एक dataset में Age (20–60) और Salary (20,000–90,000) है, तो salary का value बहुत बड़ा होने की वजह से model उस पर ज़्यादा focus कर सकता है। इसे रोकने के लिए scaling किया जाता है।
from sklearn.preprocessing import StandardScaler, MinMaxScaler import pandas as pd data = {"Age": [20, 25, 30, 35, 40], "Salary": [20000, 40000, 60000, 80000, 100000]} df = pd.DataFrame(data) # Standard Scaling (mean=0, std=1) scaler = StandardScaler() scaled_data = scaler.fit_transform(df) # Min-Max Scaling (0 to 1) minmax = MinMaxScaler() normalized_data = minmax.fit_transform(df) print(scaled_data) print(normalized_data)
🔹 Encoding (Categorical → Numerical)
Machine Learning models केवल numerical data के साथ काम करते हैं। इसलिए categorical variables (जैसे City = Delhi, Mumbai, Chennai) को numerical form में बदलना पड़ता है। Encoding की दो common techniques हैं:
- Label Encoding → हर category को integer value assign करना
- One-Hot Encoding → हर category के लिए नया binary column बनाना
from sklearn.preprocessing import LabelEncoder import pandas as pd data = {"City": ["Delhi", "Mumbai", "Chennai", "Delhi"]} df = pd.DataFrame(data) # Label Encoding le = LabelEncoder() df["City_Label"] = le.fit_transform(df["City"]) # One-Hot Encoding df_encoded = pd.get_dummies(df, columns=["City"]) print(df) print(df_encoded)
🔹 Normalization
Normalization numerical data को एक specific range (0–1) में transform करता है। यह खासकर तब use होता है जब हम neural networks या distance-based models (KNN, K-Means) use करते हैं।
from sklearn.preprocessing import Normalizer data = [[10, 200], [20, 400], [30, 600]] scaler = Normalizer() normalized = scaler.fit_transform(data) print(normalized)
📋 Scaling vs Normalization
Technique | Purpose | Best Use Case |
---|---|---|
Scaling | Data को standardize करना | Linear models, regression |
Normalization | Data को 0–1 range में लाना | Neural networks, KNN, K-Means |
🌍 Real-Life Applications
- 🏥 Healthcare data में Age और Medical test results को normalize करना
- 💰 Finance में Categorical variables (Loan status, Credit history) encode करना
- 🛒 E-commerce में customer purchase history scale करना
📝 Practice Assignments
- एक dataset बनाइए जिसमें Salary और Age हों और Min-Max Scaling apply कीजिए।
- City column (Delhi, Mumbai, Chennai) के लिए Label Encoding और One-Hot Encoding दोनों implement कीजिए।
- एक numeric dataset normalize करके output values observe कीजिए।
🏆 निष्कर्ष
Feature Engineering हर successful ML project की backbone है। Scaling, Encoding और Normalization techniques आपके raw data को model-ready बनाती हैं। अगर data properly engineered नहीं होगा तो model accuracy कभी high नहीं हो सकती। इसलिए याद रखिए: "Good Features = Good Models".