లాభాలు:
- తప్పిపోయిన విలువలకు (యాదృచ్ఛిక, క్రమబద్ధమైన, అర్థవంతమైన) కారణాన్ని గుర్తించగల సామర్థ్యం మరియు తగిన వ్యూహాన్ని ఎంచుకుని, శిక్షణ నుండి మాత్రమే పూరక విలువను లెక్కించడం
- వాటిని తొలగించే ముందు అవుట్లయర్లను పరిశీలించే సామర్థ్యం మరియు డేటా లోపం మరియు నిజమైన అరుదైన సంఘటన మధ్య తేడాను గుర్తించడం
- టైప్ మరియు ఫార్మాట్ అసమానతలను ప్రమాణానికి తీసుకువచ్చేటప్పుడు లైన్లు/ఖాళీల సంఖ్యపై ప్రతి దశ ప్రభావాన్ని పర్యవేక్షించడం ద్వారా నిశ్శబ్ద నష్టాన్ని నిరోధించే సామర్థ్యం
దాదాపు 60-80 శాతం డేటా సైంటిస్ట్ సమయం శుభ్రపరచడానికి వెళుతుంది; పరిశ్రమలో, దీనిని సగం హాస్యాస్పదంగా "డేటా రాంగ్లింగ్" (డేటా రాంగ్లింగ్ లేదా డేటా క్లీనింగ్) అని పిలుస్తారు. వాస్తవ-ప్రపంచ డేటా దాదాపుగా విశ్లేషణకు సిద్ధంగా ఉండదు కాబట్టి: తేదీలు మిశ్రమ ఫార్మాట్లలో ఉంటాయి, సంఖ్యలు టెక్స్ట్గా నిల్వ చేయబడతాయి, కొన్ని సెల్లు ఖాళీగా ఉంటాయి, కస్టమర్ ఒకే టేబుల్లో రెండు వేర్వేరు స్పెల్లింగ్లతో మూడుసార్లు కనిపిస్తారు. ఈ యూనిట్లో మేము క్లీనప్ యొక్క మూడు ప్రాథమిక అంశాలను కవర్ చేస్తాము: మిస్సింగ్ విలువలు, అవుట్లయర్లు మరియు టైప్/ఫార్మాట్ మార్పిడి. కృత్రిమ మేధస్సు ఈ పనిలో అసాధారణమైన వేగవంతమైన సహాయకుడు; కానీ ఏది శుభ్రం చేయాలో మరియు ఎలా చేయాలో నిర్ణయించేది మీరే, ఎందుకంటే ప్రతి శుభ్రపరిచే ఎంపిక విశ్లేషణను మారుస్తుంది.
శుభ్రపరచడం యొక్క బంగారు నియమం: ప్రతి మార్పు ఒక నిర్ణయం
సెల్ను తొలగించడం, తప్పిపోయిన విలువను సగటుతో పూరించడం, అవుట్లియర్ను కత్తిరించడం-ఇవేవీ “తటస్థ” కార్యకలాపాలు కావు. ప్రతి ఒక్కటి డేటాను మారుస్తుంది మరియు ఫలితాన్ని ప్రభావితం చేస్తుంది. కాబట్టి క్లీనప్ యొక్క గోల్డెన్ రూల్: కోడ్లో ప్రతి మార్పును వ్రాయండి, హేతుబద్ధతను గమనించండి, అసలు డేటాను ఎప్పుడూ ఓవర్రైట్ చేయవద్దు. AI మీకు శీఘ్ర క్లీనప్ కోడ్ని అందిస్తుంది, అయితే ఆ కోడ్ ఏమి చేస్తుందో అర్థం చేసుకోవడం మీ బాధ్యత; మీరు "ఖాళీ లైన్లను తొలగించండి" అని చెప్పినప్పుడు ఎన్ని లైన్లు పోయాయో చూడకుండా దాన్ని అమలు చేయవద్దు.
జాగ్రత్త: అసలు ముడి డేటాను ఎప్పుడూ సవరించవద్దు. శుభ్రపరిచిన సంస్కరణను ప్రత్యేక ఫైల్/టేబుల్కు వ్రాయండి. ఈ విధంగా, మీరు లోపాన్ని గుర్తించినట్లయితే, మీరు స్క్వేర్ వన్కు తిరిగి వెళ్లి పునరుత్పత్తిని కొనసాగించవచ్చు.
విలువలు లేవు: ఇది ఎందుకు ఖాళీగా ఉంది, ఏమి చేయాలి
సెల్ ఖాళీగా ఉన్నప్పుడు తప్పిపోయిన విలువ (సాధారణంగా NaNగా కనిపిస్తుంది — "సంఖ్య కాదు"). కానీ గ్యాప్ యొక్క కారణం పరిష్కారాన్ని నిర్ణయిస్తుంది. మూడు సాధారణ పరిస్థితులు ఉన్నాయి. యాదృచ్ఛికంగా లేదు: సెన్సార్ ఒక క్షణం పని చేయలేదు; దాన్ని పూరించడం సహేతుకంగా ఉండవచ్చు. క్రమబద్ధంగా లేదు: ఫారమ్ ఫీల్డ్ నిర్దిష్ట కస్టమర్ల కోసం మాత్రమే అడగబడుతుంది; ఇక్కడ గ్యాప్ నిజానికి సమాచారం. ముఖ్యమైనది లేదు: "తిరిగి వచ్చే తేదీ" ఖాళీగా ఉంటే, కస్టమర్ తిరిగి రాలేదు; ఈ స్పేస్ అంటే 0 లేదా "ఏదీ లేదు", అది పూరించబడలేదు.
ప్రధాన వ్యూహాలు:
వ్యూహం
ఇది ఎప్పుడు తగినది?
ప్రమాదం
అడ్డు వరుసను తొలగించండి
తప్పిపోయిన రేటు చాలా తక్కువ (<5%) మరియు యాదృచ్ఛికంగా ఉంది
డేటా మరియు ప్రాతినిధ్యం కోల్పోవడం
నిలువు వరుసను తొలగించండి
నిలువు వరుసలో ఎక్కువ భాగం ఖాళీగా ఉంది (>60%)
సమాచారం కోల్పోవడం
సగటు/మధ్యస్థ పూరక
సంఖ్య, యాదృచ్ఛికంగా లేదు
ఇది వ్యత్యాసాన్ని తగ్గిస్తుంది మరియు పంపిణీని వక్రీకరిస్తుంది
వర్గం "తెలియని"
వర్గీకరణ, క్రమబద్ధంగా లేదు
అదనపు వర్గాలను రూపొందిస్తుంది
మోడల్తో అంచనా
క్లిష్టమైన, విలువైన కాలమ్
లీక్ ప్రమాదం, సంక్లిష్టత
క్రిటికల్ పాయింట్: ఇంప్యుటేషన్ విలువను శిక్షణ డేటా నుండి మాత్రమే లెక్కించాలి మరియు అదే విలువ పరీక్ష డేటాకు వర్తింపజేయాలి. మీరు పరీక్ష డేటా సగటును చేర్చినట్లయితే, మీరు లీకేజీని సృష్టిస్తారు (యూనిట్ 10). మధ్యస్థం (ఆర్డినల్ డేటా యొక్క మధ్య విలువ) తరచుగా సగటుకు ప్రాధాన్యత ఇవ్వబడుతుంది ఎందుకంటే ఇది సగటు కంటే బయటి వ్యక్తులకు మరింత బలంగా ఉంటుంది.
అవుట్లియర్లు: లోపం లేదా నిజమా?
అవుట్లియర్ రెండు విషయాలలో ఒకటి కావచ్చు: డేటా లోపం (వయస్సు కాలమ్లో 999) లేదా నిజమైన కానీ అరుదైన ఈవెంట్ (కస్టమర్ యొక్క $2 మిలియన్ల ఆర్డర్). రెండింటినీ గందరగోళానికి గురి చేయడం వినాశకరమైనది: నిజమైన అవుట్లియర్ను తొలగించండి మరియు మీరు ముఖ్యమైన సమాచారాన్ని విసిరివేస్తారు; మీరు తప్పును వదిలేస్తే, మీ సగటులు నష్టపోతాయి. అందువల్ల, మొదట అవుట్లియర్ను పరిశీలించడం అవసరం, దాన్ని స్వయంచాలకంగా తొలగించకూడదు.
సాధారణ గుర్తింపు పద్ధతులు: IQR పద్ధతి (ఇంటర్క్వార్టైల్ పరిధి; డేటాలోని 25% మరియు 75% క్వింటైల్ల మధ్య వ్యత్యాసం కంటే 1.5 రెట్లు ఎక్కువ ఉన్న విలువలు అవుట్లైయర్లుగా పరిగణించబడతాయి) మరియు z-స్కోర్ (సగటు విలువ నుండి ప్రామాణిక విచలనాల సంఖ్య; సాధారణంగా అది 3 కంటే ఎక్కువ ఉంటే అవుట్లియర్). AI ఈ గణనల కోడ్ను సెకన్లలో వ్రాస్తుంది; కానీ మీరు "తొలగించు" అని చెప్పే ముందు, ఆ విలువలు ఏమిటో తనిఖీ చేయండి.
రకం మరియు ఫార్మాట్ మార్పిడి: నిశ్శబ్ద లోపం మూలం
చాలా తలనొప్పులలో ఒకటి డేటా రకం గందరగోళం. "మొత్తం" నిలువు వరుస టెక్స్ట్గా నిల్వ చేయబడితే, మీరు జోడించలేరు; ప్రోగ్రామ్ "వెయ్యి రెండు వందల యాభై"కి బదులుగా "1,250.50" వంటి టర్కిష్ ఫార్మాట్ చేసిన నంబర్ను తప్పుగా చదువుతుంది. తేదీలు ("01/03/2024" రోజు-నెల లేదా నెల-రోజు?), వర్గాలు ("పురుషుడు"/"పురుషుడు"/"M" ఒకటేనా?) మరియు యూనిట్లు (TL లేదా kuruş?) నిశ్శబ్దంగా తప్పు ఫలితాలను అందిస్తాయి. శుభ్రపరచడంలో పెద్ద భాగం ఈ అసమానతలను ప్రామాణికంగా లాగడం: తేదీలను ఒక ఫార్మాట్లోకి, వర్గాలను ఒక స్పెల్లింగ్గా, సంఖ్యలను ఒక యూనిట్గా మార్చడం.
మూడు చిన్న కేసులు
కేసు 1 - సగటు ఉచ్చు. ఒక బృందం ఆదాయం కాలమ్లో 320 మిస్సింగ్ విలువలను సగటు ($48,500)తో నింపింది. కానీ లోపాలు క్రమపద్ధతిలో ఉన్నాయి: ఇవి ఎప్పుడూ ఆదాయాన్ని ప్రకటించని తక్కువ-ఆదాయ విభాగం. సగటు పూరకం ఈ సమూహాన్ని కృత్రిమంగా గొప్పగా చేసింది మరియు క్రెడిట్ మోడల్ తప్పు. పాఠం: పూరించడానికి ముందు "ఎందుకు ఖాళీగా ఉంది" అని అడగండి.
కేసు 2 - తొలగించకూడని అవుట్లియర్. ఒక రిటైల్ విశ్లేషకుడు సేల్స్ డేటాలో 4 భారీ ఆర్డర్లను (ఒక్కొక్కటి 1.8 మిలియన్ TL) తొలగించారు, అవి "తప్పులు" అని భావించారు. అయితే, ఇవి నిజమైన కార్పొరేట్ ఆర్డర్లు మరియు మొత్తం టర్నోవర్లో 22%. పోస్ట్-డిలీషన్ ఫోర్కాస్ట్ మోడల్ సంస్థాగత డిమాండ్ను పూర్తిగా కోల్పోయింది. పాఠం: దాన్ని తొలగించే ముందు అవుట్లియర్ని పరిశీలించండి.
కేస్ 3 — డేట్ ఫార్మాట్ డిజాస్టర్. CSVలో, తేదీలు "2024-03-01" మరియు "01.03.2024" రెండింటిలోనూ కలపబడ్డాయి. YZ వ్రాసిన కోడ్ మొదటి ఫార్మాట్ ప్రకారం అన్వయించబడినప్పుడు, 6,400 పంక్తులు NaTగా "చెల్లని తేదీ"గా మారాయి మరియు విశ్లేషణ నుండి నిశ్శబ్దంగా మినహాయించబడ్డాయి. పంక్తుల సంఖ్య తగ్గినప్పుడు మాత్రమే విశ్లేషకుడు దీనిని గమనించాడు. పాఠం: మార్పిడి తర్వాత పంక్తులు మరియు ఖాళీల సంఖ్యను ఎల్లప్పుడూ తనిఖీ చేయండి.
నాలుగు కాపీ చేయగల టెంప్లేట్లు
1) విలువ లేని మ్యాప్:
నా దగ్గర పాండాలు డిఎఫ్ ఉన్నాయి. ప్రతి నిలువు వరుస కోసం మిస్సింగ్ (NaN) సంఖ్య మరియు శాతాన్ని చూపే పట్టికను రూపొందించే కోడ్ను వ్రాయండి. ఆపై, 40% కంటే ఎక్కువ మిస్సింగ్ రేటు ఉన్న నిలువు వరుసలను మరియు 5% కంటే తక్కువ తప్పిపోయిన రేట్ ఉన్న నిలువు వరుసలను విడిగా జాబితా చేయండి. ఈ రోగ నిర్ధారణ కోడ్ని రూపొందించండి, మీరు సూచించే వ్యూహం కాదు; నేను నిర్ణయం తీసుకుంటాను.
2) అవుట్లియర్ తనిఖీ (తొలగింపు కాదు):
IQR పద్ధతిని ఉపయోగించి నా "మొత్తం" కాలమ్ కోసం అవుట్లియర్లను గుర్తించే (తొలగించబడదు!) కోడ్ను వ్రాయండి. బయటి వరుసలను ప్రత్యేక dfలో ఉంచండి, తద్వారా నేను వాటిని మాన్యువల్గా పరిశీలించగలను. అవుట్లయర్ల సంఖ్య మరియు మొత్తంలో వారి వాటాను కూడా ముద్రించండి.
3) రకం/ఫార్మాట్ ప్రామాణీకరణ:
కింది నిలువు వరుసలను ప్రామాణికం చేసే కోడ్ను వ్రాయండి:- "తేదీ": మిశ్రమ ఫార్మాట్లు ("2024-03-01" మరియు "01.03.2024") కావచ్చు; వాటన్నింటినీ తేదీ సమయానికి మార్చండి, అనువదించలేని వాటిని లెక్కించండి మరియు నివేదించండి (నిశ్శబ్దంగా విసిరేయండి). - "లింగం": "పురుషుడు"/"పురుషుడు"/"M" -> "M", "ఆడ"/"ఆడ"/"F" -> "K". - "మొత్తం": టర్కిష్ ఫార్మాట్ చేయబడిన వచనం ("1.250,50") -> దశాంశ సంఖ్య. ప్రతి మార్పిడి తర్వాత ఎన్ని అడ్డు వరుసలు ప్రభావితమయ్యాయో ప్రింట్ చేయండి.
4) శుభ్రపరిచే ముందు/తర్వాత తనిఖీ చేయండి:
క్లీనప్ దశకు ముందు మరియు తర్వాత ఎంచుకున్న నిలువు వరుసల df.shape, తప్పిపోయిన గణన మరియు సారాంశ గణాంకాలు (సగటు, మధ్యస్థం, నిమి, గరిష్టం) సరిపోల్చే కోడ్ను వ్రాయండి. పర్పస్: క్లీనింగ్ ఎలాంటి మార్పులు చేస్తుందో చూడటానికి.
బలహీనమైన ప్రాంప్ట్ / బలమైన ప్రాంప్ట్
బలహీనమైన ప్రాంప్ట్:
ఈ డేటాను క్లియర్ చేయండి.
"క్లియర్" అస్పష్టంగా ఉంది; ఏ తప్పిపోయిన భాగాలను తొలగించాలి, దేనిని పూరించాలి, ఏ కాలమ్ను ప్రాసెస్ చేయాలి మరియు ఎలా చేయాలి అని AIకి తెలియదు. ఫలితం: గుడ్డి, కోలుకోలేని మార్పులు.
శక్తివంతమైన ప్రాంప్ట్:
మీ పాత్ర: డేటా క్లెన్సింగ్ అసిస్టెంట్. df నిలువు వరుసలు: customer_id (int), registration_date (మిశ్రమ ఫార్మాట్ టెక్స్ట్), income_tl (టెక్స్ట్, "1,200.00"), నగరం (టెక్స్ట్, అస్థిరమైన స్పెల్లింగ్). నియమాలు:- అసలు df మార్చడం; df_clean అనే కాపీపై పని చేయండి.- income_tlని నంబర్గా మార్చండి, అనువదించలేని వాటిని లెక్కించండి.- రికార్డ్_తేదీని తేదీ సమయానికి మార్చండి, లోపాన్ని నివేదించండి.- నా ఆమోదం లేకుండా ఏ అడ్డు వరుసలను తొలగించవద్దు; అభ్యర్థులను విడిగా చూపండి. ప్రతి దశ తర్వాత, df_temiz.shape మరియు తప్పిపోయిన సంఖ్యను ముద్రించండి.
ఇక్కడ మూలం రక్షించబడింది, ప్రతి రూపాంతరం లెక్కించబడుతుంది, తొలగింపు మానవునికి వదిలివేయబడుతుంది.
సాధారణ తప్పులు
- "ఎందుకు ఖాళీగా ఉంది?" అని అడగకుండా ఖాళీలను పూరించండి. సగటుతో క్రమబద్ధమైన/ముఖ్యమైన మిస్సింగ్ని పూరించడం డేటాను వక్రీకరిస్తుంది.
- అవుట్లియర్ను పరిశీలించకుండా తొలగించడం. నిజమైన కానీ అరుదైన సంఘటనలను విస్మరించడం ముఖ్యమైన సమాచారాన్ని నాశనం చేస్తుంది.
- మొత్తం డేటా నుండి పాడింగ్ విలువను గణిస్తోంది. పరీక్ష డేటాతో సహా లీకేజీని సృష్టిస్తుంది; శిక్షణ నుండి లెక్కించండి.
- మార్పిడి తర్వాత వరుసలు/ఖాళీల సంఖ్యను తనిఖీ చేయడం లేదు. నిశ్శబ్దంగా NaT/NaN ఉన్న అడ్డు వరుసలు విశ్లేషణ నుండి మినహాయించబడ్డాయి.
- అసలు డేటాను ఓవర్రైట్ చేస్తోంది. తిరిగి మరియు పునరుత్పత్తి పోతుంది.
చిట్కా: "ముందు-తర్వాత" పోలికతో శుభ్రపరచడాన్ని అమలు చేయండి. ప్రతి దశ తర్వాత క్లిష్టమైన నిలువు వరుసల df.shape, మిస్ కౌంట్ మరియు సారాంశ గణాంకాలను ముద్రించండి. కాబట్టి మీరు వెంటనే ఒక అడుగు ఊహించని విధంగా 6,000 వరుసలను నాశనం చేస్తుంది.
సారాంశంలో
ప్రక్షాళన అనేది డేటా సైన్స్లో ఎక్కువ సమయం తీసుకునే మరియు నిర్ణయం తీసుకోవాల్సిన దశ. ప్రతి మార్పు డేటాను మారుస్తుంది, కాబట్టి ప్రతి ఒక్కటి చేతన నిర్ణయం. తప్పిపోయిన విలువల కోసం, "ఎందుకు ఖాళీగా ఉంది?" ఏదైనా అవుట్లైయర్లను తొలగించే ముందు వాటిని సమీక్షించండి; రకం మరియు ఆకృతిని ప్రామాణికంగా తీసుకురండి. శిక్షణ డేటా నుండి మాత్రమే పూరక విలువను లెక్కించండి, అసలైనదాన్ని ఉంచండి మరియు ప్రతి దశ యొక్క ప్రభావాన్ని లెక్కించడం ద్వారా ట్రాక్ చేయండి. ఈ వ్యాపారంలో AI ఒక అద్భుతమైన యాక్సిలరేటర్, కానీ మీరు ఏమి శుభ్రం చేయాలి మరియు ఎందుకు శుభ్రం చేయాలి అనేది మనుషులు నిర్ణయిస్తారు.
అప్లికేషన్ టాస్క్
ఒక చిన్న పట్టికను తీసుకోండి (లేదా సృష్టించండి) మరియు అందులో మూడు సమస్యలను ఉద్దేశపూర్వకంగా చొప్పించండి: తప్పిపోయిన విలువ టుపుల్, అవుట్లియర్, మిశ్రమ తేదీ ఆకృతి. పై టెంప్లేట్లతో AI నుండి రోగ నిర్ధారణ మరియు ప్రమాణీకరణ కోడ్ను అభ్యర్థించండి; ప్రతి దశకు ముందు/తర్వాత వరుసలు మరియు ఖాళీల సంఖ్యను సరిపోల్చండి. కనీసం ఒక "నిశ్శబ్ద నష్టాన్ని" పట్టుకోవడానికి ప్రయత్నించండి మరియు మీరు దానిని ఎలా గమనించారో గమనించండి.
చెక్లిస్ట్
- [ ] నేను అసలు ముడి డేటాను ఉంచుకున్నానా మరియు కాపీపై పని చేశానా?
- [ ] తప్పిపోయిన ప్రతి నిలువు వరుసకు "ఎందుకు ఖాళీగా ఉంది" అనే ప్రశ్న నేను అడిగానా?
- [ ] నేను అవుట్లైయర్లను తొలగించే ముందు వాటిని సమీక్షించానా?
- [ ] నేను శిక్షణ డేటా నుండి మాత్రమే ప్యాడింగ్ విలువను లెక్కించానా?
- [ ] నేను ప్రతి దశ తర్వాత పంక్తులు/ఖాళీల సంఖ్యను తనిఖీ చేస్తున్నానా మరియు నిశ్శబ్ద నష్టాన్ని తొలగిస్తున్నానా?