ఫీచర్ ఇంజనీరింగ్
మెషిన్ లెర్నింగ్ అల్గారిథమ్లను మరింత సమర్థవంతంగా చేయడానికి డేటా ప్రాతినిధ్యాలను మార్చడం.
Ready for Machine Learning Training
X_TRAIN, Y_TRAIN: Validation Passed
ఫీచర్ ఇంజనీరింగ్ అంటే ఏమిటి?
డేటా క్లీనింగ్ అనేది ఎర్రర్లను తొలగించడంపై దృష్టి సారించగా, ఫీచర్ ఇంజనీరింగ్ (Feature Engineering) అనేది మీ డేటా యొక్క అంచనా వేసే సామర్థ్యాన్ని గరిష్టంగా పెంచడం. దీనిలో ముడి డేటాను అల్గారిథమ్లు సులభంగా అర్థం చేసుకోగల 'ఫీచర్లు' (లక్షణాలు) గా ఎంచుకోవడం, తారుమారు చేయడం మరియు మార్చడం ఇమిడి ఉంటాయి.
AIలో మార్గదర్శకుడైన ఆండ్రూ ఎంగ్ (Andrew Ng) దీని గురించి ప్రముఖంగా పేర్కొన్నారు: *"ఫీచర్లను కనుగొనడం కష్టం, ఎక్కువ సమయం తీసుకుంటుంది, దీనికి నిపుణుల నైపుణ్యం అవసరం. 'అప్లైడ్ మెషిన్ లెర్నింగ్' అనేది ప్రాథమికంగా ఫీచర్ ఇంజనీరింగ్."*
సాధారణ పద్ధతులు
- లక్షణాల ఎన్కోడింగ్ (Categorical Encoding): మెషిన్ లెర్నింగ్ మోడల్స్ సంఖ్యలను మాత్రమే అర్థం చేసుకుంటాయి. మీ వద్ద 'ఎరుపు', 'నీలం' వంటి విలువలతో కూడిన 'రంగు' కోసం ఒక కాలమ్ ఉంటే, మీరు దాన్ని గణితశాస్త్ర ప్రాతినిధ్యంలోకి (వన్-హాట్ ఎన్కోడింగ్ లాగా) మార్చాలి.
- స్కేలింగ్ మరియు నార్మలైజేషన్ (Scaling & Normalization): ఊహించండి 'వయసు' (0-100) మరియు 'ఆదాయం' ($0-$1,000,000) మధ్య పోలిక ఎలా ఉంటుందో. ఈ భారీ వ్యత్యాసం మోడల్ను గందరగోళానికి గురి చేస్తుంది. స్కేలింగ్ ఈ ఫీచర్లను ఒక ప్రామాణిక పరిధికి (ఉదాహరణకు, 0 నుండి 1 కి) తీసుకువస్తుంది.
- ఫీచర్ సృష్టి (Feature Creation): ఇప్పటికే ఉన్న వాటి నుండి పూర్తిగా కొత్త కాలమ్లను పొందడం. ఉదాహరణకు, మీకు 'కొనుగోలు తేదీ' ఉంటే, 'ఇది వారాంతమా?' అనే కొత్త ఫీచర్ను సృష్టించడం రిటైల్ అంచనా మోడల్లో భారీ ప్రభావాన్ని చూపుతుంది.
Python: ఒక ఫీచర్ను సృష్టించడం
Pandas ఉపయోగించి ముడి డేటా నుండి కొత్త, అత్యంత అంచనా వేసే ఫీచర్లను సృష్టించడం:
import pandas as pd
from datetime import datetime
# ముడి డేటా: కేవలం పుట్టిన తేదీలు
df = pd.DataFrame({'birth_date': ['1990-05-14', '1985-11-20', '2000-01-10']})
df['birth_date'] = pd.to_datetime(df['birth_date'])
# ఫీచర్ ఇంజనీరింగ్: 'వయసు' (Age) మరియు 'మిలీనియల్' (Is_Millennial) ని ఎక్స్ట్రాక్ట్ చేయడం
current_year = datetime.now().year
df['age'] = current_year - df['birth_date'].dt.year
df['is_millennial'] = ((df['birth_date'].dt.year >= 1981) & (df['birth_date'].dt.year <= 1996)).astype(int)
print(df[['age', 'is_millennial']])డొమైన్ నాలెడ్జ్ కీలకం
అత్యంత శక్తివంతమైన ఫీచర్లు పక్కా గణిత అల్గారిథమ్ల ద్వారా కాకుండా, మానవ డొమైన్ నాలెడ్జ్ (Domain Knowledge) నుండి ఉద్భవిస్తాయి. ఏ లక్షణాల కలయిక ఒక వ్యాధిని బలంగా అంచనా వేస్తుందో ఒక వైద్యుడికి కచ్చితంగా తెలుస్తుంది. ఆ పరిజ్ఞానాన్ని AI ఉపయోగించుకునేలా దాన్ని గణితశాస్త్ర భాషలో ప్రాతినిధ్యం వహించడమే డేటా ఇంజనీర్ పని.
