Hagnaður:
- Hæfni til að greina ástæðu þess að gildi vantar (tilviljunarkennd, kerfisbundin, þýðingarmikil) og velja viðeigandi stefnu og reikna út fyllingargildið út frá þjálfun eingöngu
- Geta til að kanna frávik áður en þeim er eytt og gera greinarmun á gagnavillu og raunverulegum sjaldgæfum atburði
- Geta til að koma í veg fyrir hljóðlaust tap með því að fylgjast með áhrifum hvers skrefs á fjölda lína/eyðuna á sama tíma og ósamræmi í gerð og sniði kemur í staðlinum
Um það bil 60-80 prósent af tíma gagnafræðings fara í hreinsun; Í iðnaðinum er þetta í hálfgerðu gríni kallað "data wrangling" (data wrangling eða gagnahreinsun). Vegna þess að raunveruleikagögn eru nánast aldrei tilbúin til greiningar: dagsetningar eru á blönduðu sniði, tölur eru geymdar sem texti, sumar reitur eru auðar, viðskiptavinur birtist þrisvar sinnum í sömu töflu með tveimur mismunandi stafsetningu. Í þessari einingu munum við fjalla um þrjá grunnþætti hreinsunar: gildi sem vantar, útlínur og umbreytingu á gerð/sniði. Gervigreind er óvenju fljótur aðstoðarmaður í þessu starfi; En það ert þú sem ákveður hvað á að þrífa og hvernig, því hvert hreinsunarval breytir greiningunni.
Gullna reglan um þrif: hver breyting er ákvörðun
Að eyða reiti, fylla út gildi sem vantar með meðaltalinu, klippa frávik - ekkert af þessu er „hlutlaus“ aðgerðir. Hver breytir gögnunum og hefur áhrif á niðurstöðuna. Svo gullna reglan um hreinsun: skrifaðu hverja breytingu inn í kóðann, athugaðu rökin, skrifaðu aldrei yfir upprunalegu gögnin. AI gefur þér skjótan hreinsunarkóða, en það er á þína ábyrgð að skilja hvað þessi kóði gerir; Ekki keyra það án þess að sjá hversu margar línur eru farnar þegar þú segir "eyða tómum línum".
Varúð: Aldrei breyta upprunalegu hrágögnunum. Skrifaðu hreinsuðu útgáfuna í sérstaka skrá/töflu. Á þennan hátt, ef þú kemur auga á villu, geturðu farið aftur á byrjunarreit og viðhaldið endurgerðanleika.
Gildi vantar: hvers vegna er það tómt, hvað á að gera
Gildi sem vantar (birtist venjulega sem NaN — „Ekki tala“ í pöndum) er þegar hólf er tómt. En orsök bilsins ræður lausninni. Það eru þrjár dæmigerðar aðstæður. Vantar af handahófi: skynjari virkaði ekki eitt augnablik; Það getur verið skynsamlegt að fylla það út. Kerfisbundið vantar: Aðeins er spurt um eyðublað fyrir ákveðna viðskiptavini; Bilið hér er í raun upplýsingar. Verulega vantar: ef „skiladagsetning“ er auð skilaði viðskiptavinurinn ekki; Þetta bil þýðir 0 eða "enginn", það er ekki fyllt út.
Helstu aðferðir:
Stefna
Hvenær er það viðeigandi?
áhættu
Eyða línu
Vantarhlutfall er mjög lágt (<5%) og tilviljunarkennt
Tap á gögnum og framsetningu
Eyða dálki
Stærstur hluti dálksins er tómur (>60%)
tap á upplýsingum
Meðalfylling/miðgildi
Tölulegt, vantar af handahófi
Það minnkar frávikið og skekkir dreifinguna
Flokkur "óþekktur"
Afdráttarlaust, kerfisbundið vantar
Býr til viðbótarflokka
Spá með líkani
Flókin, dýrmæt súla
Lekahætta, flókið
Mikilvægur punktur: reikna skal útreikningsgildið aðeins út frá þjálfunargögnum og sama gildi ætti að nota á prófunargögnin. Ef þú tekur meðaltal prófunargagna með, skapar þú leka (eining 10). Miðgildi (miðgildi reglulegra gagna) er oft valið fram yfir meðaltal vegna þess að það er sterkara fyrir útvikum en meðaltal.
Útilokar: villa eða raunveruleg?
Frávik getur verið eitt af tvennu: Gagnavilla (999 í aldursdálknum) eða raunverulegur en sjaldgæfur atburður (2 milljón dollara pöntun viðskiptavinar). Það er hörmulegt að rugla þessu tvennu saman: eyða sönnum útúrsnúningi og þú hendir mikilvægum upplýsingum; Ef þú sleppir mistökum munu meðaltöl þín líða fyrir. Þess vegna er nauðsynlegt að skoða útvikuna fyrst, ekki eyða honum sjálfkrafa.
Algengar greiningaraðferðir: IQR aðferð (millifjórðungssvið; gildi sem eru meira en 1,5 sinnum munurinn á milli 25% og 75% fimmtunga gagnanna eru taldar útlægar) og z-stig (fjöldi staðalfrávika frá meðalgildi; venjulega frávik ef það er meira en 3). AI skrifar kóðann fyrir þessa útreikninga á sekúndum; En áður en þú segir „eyða“ skaltu athuga hver þessi gildi eru.
Tegund og sniðumbreyting: hljóðlaus villuuppspretta
Einn mesti höfuðverkurinn er rugl í gagnategundum. Ef „magn“ dálkur er geymdur sem texti geturðu ekki bætt við; Forritið les ranglega tyrkneska sniðið tölu eins og „1.250,50“ í stað „eitt þúsund tvöhundruð og fimmtíu“. Dagsetningar ("01/03/2024" dagur-mánuður eða mánuður-dagur?), flokkar ("karlkyns"/"karlkyns"/"M" eru það sama?) og einingar (TL eða kuruş?) gefa rangar niðurstöður hljóðlaust. Stór hluti af hreinsun er að draga þetta ósamræmi inn í staðalinn: dagsetningar í eitt snið, flokkar í eina stafsetningu, tölur í eina einingu.
þrjú smámál
Tilfelli 1 - Meðalgildran. Lið fyllti út 320 gildin sem vantaði í tekjudálknum með meðaltalinu ($48.500). En gallarnir voru kerfisbundnir: þetta voru lágtekjuhluti sem hafði aldrei gefið upp tekjur. Meðalfylling gerði þennan hóp tilbúna ríkan og lánamódelið var rangt. Lexía: Spyrðu „af hverju er það autt“ áður en þú fyllir það út.
Tilfelli 2 — Frávik sem ekki ætti að eyða. Smásölusérfræðingur eyddi 4 risastórum pöntunum (1,8 milljón TL hver) í sölugögnunum og hélt að þær væru „villur“. Þetta voru hins vegar raunverulegar fyrirtækjapantanir og voru 22% af heildarveltunni. Spálíkanið eftir eyðingu missti algjörlega eftirspurn stofnana. Lexía: athugaðu útvikuna áður en þú eyðir honum.
Tilfelli 3 — Hörmung á dagsetningarsniði. Í CSV var dagsetningunum blandað saman í bæði "2024-03-01" og "01.03.2024". Þegar kóðinn skrifaður af YZ var flokkaður í samræmi við fyrsta sniðið urðu 6.400 línur NaT sem „ógild dagsetning“ og voru hljóðlaust útilokaðar frá greiningu. Sérfræðingur tók aðeins eftir þessu þegar línum fækkaði. Lexía: Athugaðu alltaf fjölda lína og auða eftir umbreytingu.
Fjögur afritanleg sniðmát
1) Vantar gildiskort:
Ég á pöndur df. Skrifaðu kóða sem framleiðir töflu sem sýnir fjölda og hlutfall vantar (NaN) fyrir hvern dálk. Síðan skaltu skrá sérstaklega þá dálka þar sem hlutfall vantar yfir 40% og þá sem vantar hlutfall undir 5%. Búðu bara til þennan greiningarkóða, ekki hvaða stefnu þú leggur til; Ég mun taka ákvörðunina.
2) Fráleit skoðun (ekki eyðing):
Skrifaðu kóða sem greinir (ekki eyðir!) frávik fyrir "magn" dálkinn minn með því að nota IQR aðferðina. Settu útlægar raðir í sérstakan df svo ég geti skoðað þær handvirkt. Prentaðu einnig fjölda útlægra og hlutdeild þeirra í heildinni.
3) Gerð/snið stöðlun:
Skrifaðu kóða sem staðlar eftirfarandi dálka:- "dagsetning": hægt að blanda sniðum ("2024-03-01" og "01.03.2024"); umbreyttu þeim öllum í datetime, teldu þær óþýðanlegu og tilkynntu (hentu hljóðlaust). - "kyn": "Karlkyns"/"karlkyns"/"M" -> "M", "Kona"/"kvenkyns"/"F" -> "K". - "magn": tyrkneskur texti ("1.250,50") -> aukastaf. Prentaðu hversu margar línur verða fyrir áhrifum eftir hverja umbreytingu.
4) Athugaðu fyrir/eftir hreinsun:
Skrifaðu kóða sem ber saman df.shape, talningu sem vantar og yfirlitstölfræði (meðaltal, miðgildi, mín., hámark) af völdum dálkum fyrir og eftir hreinsunarskref. Tilgangur: að sjá hvaða þrif breytir.
Veik kvaðning / Sterk kvaðning
Veik kvaðning:
Hreinsaðu þessi gögn.
"Hreinsa" er óljós; AI veit ekki hvaða hlutum sem vantar ætti að eyða, hvað á að fylla út, hvaða dálk á að vinna og hvernig. Niðurstaðan: blindar, óafturkræfar breytingar.
Öflug tilvitnun:
Hlutverk þitt: Aðstoðarmaður við gagnahreinsun. df dálkar: auðkenni viðskiptavinar (int), skráningardagur (texti með blandað snið), tekju_tl (texti, "1.200.00"), borg (texti, ósamkvæm stafsetning). Reglur:- Breyting á upprunalegu df; Vinna við afritið sem heitir df_clean.- Umbreyttu tekju_tl í tölu, teldu það sem ekki er hægt að þýða.- Breyttu record_date í datetime, tilkynntu villuna.- Ekki eyða neinum línum án samþykkis míns; Sýndu frambjóðendur sérstaklega. Eftir hvert skref, prentaðu df_temiz.shape og númerið sem vantar.
Hér er uppsprettan varin, sérhver umbreyting er talin, eyðing er eftir manninum.
Algeng mistök
- Að fylla í eyðurnar án þess að spyrja "af hverju er það tómt?" Að fylla út kerfisbundið/marktækt vant með meðaltalinu skekkir gögnin.
- Eyði frávikinu án þess að skoða það. Að farga raunverulegum en sjaldgæfum atburðum eyðileggur mikilvægar upplýsingar.
- Reiknar út fyllingargildi úr öllum gögnum. Að meðtöldum prófunargögnum skapar leka; reiknaðu bara út frá þjálfun.
- Ekki athugað með fjölda lína/eyða eftir umbreytingu. Raðir sem eru hljóðlaust NaT/NaN eru útilokaðar frá greiningu.
- Skrifa yfir upprunalegu gögnin. Skil og fjölföldun glatast.
Ábending: Keyrðu hreinsunina með „fyrir-eftir“ samanburði. Prentaðu df.shape, talningu sem vantar og yfirlit yfir mikilvæga dálka eftir hvert skref. Þannig að þú sérð strax að eitt skref eyðileggur óvænt 6.000 raðir.
Í stuttu máli
Hreinsun er tímafrekasti og mest ákvarðanaþáttur gagnavísinda. Sérhver breyting breytir gögnunum, þannig að hver og einn er meðvituð ákvörðun. Fyrir vantar gildi skaltu spyrja "af hverju er það tómt?" Farðu yfir allar útlínur áður en þeim er eytt; Komdu gerð og sniði í staðlað. Reiknaðu fyllingargildið eingöngu út frá þjálfunargögnunum, haltu frumritinu og fylgdu áhrifum hvers skrefs með því að telja þau. AI er gríðarlegur hraðall í þessum bransa, en menn ákveða hvað þú þrífur og hvers vegna.
Umsóknarverkefni
Taktu (eða búðu til) litla töflu og settu vísvitandi þrjú vandamál inn í hana: týpa sem vantar gildi, frávik, blönduð dagsetningarsnið. Biðja um greiningu og stöðlunarkóða frá gervigreind með ofangreindum sniðmátum; bera saman fjölda raða og auða fyrir/eftir hvert skref. Reyndu að ná að minnsta kosti einu „þögu tapi“ og athugaðu hvernig þú tókst eftir því.
gátlisti
- [ ] Geymdi ég upprunalegu hráu gögnin og vann við afritið?
- [ ] Hef ég spurt spurningarinnar "af hverju er það tómt" fyrir hvern dálk sem vantar?
- [ ] Skoðaði ég frávik áður en ég eyddi þeim?
- [ ] Reiknaði ég fyllingargildið eingöngu út frá þjálfunargögnum?
- [ ] Er ég að athuga fjölda lína/auðu eftir hvert skref og útiloka þögult tap?