Mga nadagdag:
- Kakayahang makilala ang sanhi ng mga nawawalang halaga (random, sistematiko, makabuluhan) at piliin ang naaangkop na diskarte at kalkulahin ang halaga ng punan mula sa pagsasanay lamang
- Kakayahang suriin ang mga outlier bago tanggalin ang mga ito at makilala sa pagitan ng isang error sa data at isang tunay na bihirang kaganapan
- Kakayahang maiwasan ang tahimik na pagkawala sa pamamagitan ng pagsubaybay sa epekto ng bawat hakbang sa bilang ng mga linya/blangko habang dinadala ang mga hindi pagkakapare-pareho ng uri at format sa pamantayan
Humigit-kumulang 60-80 porsiyento ng oras ng data scientist ang napupunta sa paglilinis; Sa industriya, ito ay kalahating biro na tinatawag na "data wrangling" (data wrangling o data cleaning). Dahil halos hindi na handang masuri ang totoong data sa mundo: ang mga petsa ay nasa magkahalong format, ang mga numero ay iniimbak bilang teksto, ang ilang mga cell ay blangko, ang isang customer ay lumilitaw nang tatlong beses sa parehong talahanayan na may dalawang magkaibang spelling. Sa unit na ito, sasaklawin natin ang tatlong pangunahing aspeto ng paglilinis: mga nawawalang value, outlier, at conversion ng uri/format. Ang artificial intelligence ay isang napakabilis na katulong sa gawaing ito; Ngunit ikaw ang magpapasya kung ano ang linisin at kung paano, dahil ang bawat pagpipilian sa paglilinis ay nagbabago sa pagsusuri.
Ang ginintuang tuntunin ng paglilinis: bawat pagbabago ay isang desisyon
Pagtanggal ng cell, pagpuno ng nawawalang halaga ng mean, pag-trim ng outlier—wala sa mga ito ang "neutral" na operasyon. Binabago ng bawat isa ang data at nakakaapekto sa resulta. Kaya ang ginintuang tuntunin ng paglilinis: isulat ang bawat pagbabago sa code, tandaan ang katwiran, huwag i-overwrite ang orihinal na data. Binibigyan ka ng AI ng mabilis na cleanup code, ngunit responsibilidad mong maunawaan kung ano ang ginagawa ng code na iyon; Huwag patakbuhin ito nang hindi nakikita kung gaano karaming mga linya ang nawala kapag sinabi mong "tanggalin ang mga walang laman na linya".
Babala: Huwag kailanman baguhin ang orihinal na raw data. Isulat ang nalinis na bersyon sa isang hiwalay na file/table. Sa ganitong paraan, kung makakita ka ng error, maaari kang bumalik sa square one at mapanatili ang muling paggawa.
Mga nawawalang halaga: bakit walang laman, ano ang gagawin
Ang nawawalang value (karaniwang lumalabas bilang NaN — "Not a Number" sa mga pandas) ay kapag walang laman ang isang cell. Ngunit ang sanhi ng agwat ay tumutukoy sa solusyon. Mayroong tatlong karaniwang mga sitwasyon. Random na nawawala: ang sensor ay hindi gumana nang ilang sandali; Maaaring makatwirang punan ito. Systematic na nawawala: ang isang field ng form ay hinihiling lamang para sa ilang partikular na customer; Ang agwat dito ay talagang impormasyon. Malaking nawawala: kung blangko ang "petsa ng pagbabalik", hindi bumalik ang customer; Ang puwang na ito ay nangangahulugang 0 o "wala", hindi ito napuno.
Mga pangunahing estratehiya:
Diskarte
Kailan ito angkop?
panganib
Tanggalin ang hilera
Napakababa ng nawawalang rate (<5%) at random
Pagkawala ng data at representasyon
Magtanggal ng column
Karamihan sa column ay walang laman (>60%)
pagkawala ng impormasyon
Average/median na punan
Numeric, nawawala nang random
Binabawasan nito ang pagkakaiba-iba at binabaluktot ang pamamahagi
Kategorya na "hindi alam"
Kategorya, sistematikong nawawala
Bumubuo ng mga karagdagang kategorya
Prediksyon na may modelo
Kumplikado, mahalagang haligi
Ang panganib sa pagtagas, pagiging kumplikado
Kritikal na punto: ang halaga ng imputation ay dapat kalkulahin lamang mula sa data ng pagsasanay at ang parehong halaga ay dapat ilapat sa data ng pagsubok. Kung isasama mo ang average ng data ng pagsubok, lilikha ka ng pagtagas (Unit 10). Ang median (ang gitnang halaga ng ordinal na data) ay madalas na ginusto kaysa sa mean dahil ito ay mas matatag sa mga outlier kaysa sa mean.
Outliers: error o totoo?
Ang isang outlier ay maaaring isa sa dalawang bagay: isang error sa data (999 sa column ng edad) o isang tunay ngunit bihirang kaganapan (isang $2 milyon na order ng customer). Ang pagkalito sa dalawa ay nakapipinsala: tanggalin ang isang tunay na outlier at itatapon mo ang mahalagang impormasyon; Kung hahayaan mo ang isang pagkakamali, ang iyong mga average ay magdurusa. Samakatuwid, kinakailangang suriin muna ang outlier, hindi upang awtomatikong tanggalin ito.
Mga karaniwang paraan ng pagtuklas: IQR method (interquartile range; ang mga value na higit sa 1.5 beses ang pagkakaiba sa pagitan ng 25% at 75% quintiles ng data ay itinuturing na outlier) at z-score (ang bilang ng mga standard deviations na malayo sa mean na value ay; kadalasan ay outlier kung mas malaki ito sa 3). Isinulat ng AI ang code para sa mga kalkulasyong ito sa ilang segundo; Ngunit bago mo sabihin ang "tanggalin", suriin kung ano ang mga halagang iyon.
Pag-convert ng uri at format: tahimik na pinagmulan ng error
Isa sa pinakamasakit sa ulo ay ang pagkalito sa uri ng data. Kung ang isang column na "halaga" ay naka-store bilang text, hindi ka makakapagdagdag; Maling nabasa ng programa ang isang numerong naka-format na Turkish gaya ng "1,250.50" sa halip na "isang libo dalawang daan at limampu". Ang mga petsa ("01/03/2024" araw-buwan o buwan-araw?), mga kategorya ("Lalaki"/"lalaki"/"M" ay magkaparehong bagay?) at mga unit (TL o kuruş?) ay tahimik na gumagawa ng mga maling resulta. Ang isang malaking bahagi ng paglilinis ay ang paghila sa mga hindi pagkakapare-pareho sa pamantayan: mga petsa sa isang format, mga kategorya sa isang spelling, mga numero sa isang yunit.
tatlong mini case
Kaso 1 — Ang karaniwang bitag. Pinunan ng isang koponan ang 320 nawawalang halaga sa column ng kita na may average ($48,500). Ngunit ang mga pagkukulang ay sistematiko: ito ang bahagi ng mababang kita na hindi kailanman nagdeklara ng kita. Ang average na pagpuno ay ginawang artipisyal na yumaman ang pangkat na ito at mali ang modelo ng kredito. Aralin: itanong "bakit blangko" bago ito punan.
Case 2 — Outlier na hindi dapat tanggalin. Isang retail analyst ang nagtanggal ng 4 na malalaking order (1.8 milyong TL bawat isa) sa data ng mga benta, sa pag-aakalang sila ay "mga error." Gayunpaman, ito ay mga tunay na corporate order at 22% ng kabuuang turnover. Ang modelo ng pagtataya pagkatapos ng pagtanggal ay ganap na hindi nakuha ang pangangailangan sa institusyon. Aralin: suriin ang outlier bago ito tanggalin.
Kaso 3 — Sakuna sa format ng petsa. Sa isang CSV, ang mga petsa ay pinaghalo sa parehong "2024-03-01" at "01.03.2024." Nang na-parse ang code na isinulat ni YZ ayon sa unang format, 6,400 na linya ang naging NaT bilang "invalid date" at tahimik na hindi kasama sa pagsusuri. Napansin lamang ito ng analyst nang bumaba ang bilang ng mga linya. Aralin: palaging suriin ang bilang ng mga linya at blangko pagkatapos ng conversion.
Apat na maaaring kopyahin na mga template
1) Nawawalang halaga ng mapa:
Mayroon akong panda df. Sumulat ng code na gumagawa ng talahanayan na nagpapakita ng bilang at porsyento ng nawawala (NaN) para sa bawat column. Pagkatapos, hiwalay na ilista ang mga column na may nawawalang rate na lampas sa 40% at ang may nawawalang rate na mas mababa sa 5%. Bumuo lang ng diagnostic code na ito, hindi kung anong diskarte ang iminumungkahi mo; Ako ang gagawa ng desisyon.
2) Outlier na inspeksyon (hindi pagtanggal):
Sumulat ng code na NAKA-DETEK (hindi nagtatanggal!) ng mga outlier para sa aking column na "halaga" gamit ang IQR method. Ilagay ang mga nasa labas na row sa isang hiwalay na df para mano-mano kong masuri ang mga ito. I-print din ang bilang ng mga outlier at ang kanilang bahagi sa kabuuan.
3) Standardisasyon ng uri/format:
Sumulat ng code na nagsa-standardize sa mga sumusunod na column:- "petsa": maaaring pinaghalong format ("2024-03-01" at "01.03.2024"); i-convert ang lahat sa datetime, bilangin ang mga hindi maisasalin at iulat (itapon nang tahimik). - "kasarian": "Lalaki"/"lalaki"/"M" -> "M", "Babae"/"babae"/"F" -> "K". - "halaga": Turkish formatted text ("1.250,50") -> decimal number. I-print kung ilang row ang apektado pagkatapos ng bawat conversion.
4) Suriin bago/pagkatapos maglinis:
Sumulat ng code na naghahambing ng df.shape, nawawalang bilang, at mga istatistika ng buod (mean, median, min, max) ng mga napiling column bago at pagkatapos ng isang hakbang sa paglilinis. Layunin: upang makita kung ano ang pagbabago sa paglilinis.
Mahinang prompt / Malakas na prompt
Mahinang prompt:
I-clear ang data na ito.
Ang "malinaw" ay hindi maliwanag; Hindi alam ng AI kung anong mga nawawalang bahagi ang dapat tanggalin, ano ang pupunan, aling column ang ipoproseso at kung paano. Ang resulta: bulag, hindi maibabalik na mga pagbabago.
Napakahusay na prompt:
Ang iyong tungkulin: katulong sa paglilinis ng data. df columns: customer_id (int), registration_date (mixed format text), revenue_tl (text, "1,200.00"), lungsod (text, hindi pare-pareho ang spelling). Mga Panuntunan:- Pagbabago ng orihinal na df; Gawin ang kopya na pinangalanang df_clean.- I-convert ang income_tl sa numero, bilangin kung ano ang hindi maisasalin.- Baguhin ang record_date sa datetime, iulat ang error.- Huwag tanggalin ang anumang mga hilera nang wala akong pag-apruba; Ipakita ang mga kandidato nang hiwalay. Pagkatapos ng bawat hakbang, i-print ang df_temiz.shape at ang nawawalang numero.
Dito pinoprotektahan ang pinagmulan, binibilang ang bawat pagbabagong-anyo, ang pagtanggal ay naiwan sa tao.
Mga karaniwang pagkakamali
- Pinupunan ang mga puwang nang hindi nagtatanong ng "bakit walang laman?" Ang pagpuno ng sistematiko/makabuluhang pagkukulang na may mean ay nakakasira ng data.
- Tinatanggal ang outlier nang hindi sinusuri ito. Ang pagtatapon ng mga totoo ngunit bihirang mga kaganapan ay sumisira ng mahalagang impormasyon.
- Kinakalkula ang halaga ng padding mula sa lahat ng data. Ang pagsasama ng data ng pagsubok ay lumilikha ng pagtagas; kalkulahin lamang mula sa pagsasanay.
- Hindi sinusuri ang bilang ng mga row/blangko pagkatapos ng conversion. Ang mga row na tahimik na NaT/NaN ay hindi kasama sa pagsusuri.
- Pag-overwrite sa orihinal na data. Nawala ang pagbabalik at reproducibility.
Tip: Patakbuhin ang paglilinis gamit ang isang "before-after" na paghahambing. I-print ang df.shape, nawawalang bilang, at buod na istatistika ng mga kritikal na column pagkatapos ng bawat hakbang. Kaya makikita mo kaagad na ang isang hakbang ay hindi inaasahang sumisira sa 6,000 na hanay.
Sa buod
Ang paglilinis ay ang pinaka-nakakaubos ng oras at nangangailangan ng desisyon na yugto ng data science. Ang bawat pagbabago ay nagbabago sa data, kaya ang bawat isa ay may malay na desisyon. Para sa mga nawawalang value, itanong ang "bakit ito walang laman?" Suriin ang anumang mga outlier bago tanggalin ang mga ito; Dalhin ang uri at format sa pamantayan. Kalkulahin ang halaga ng punan mula sa data ng pagsasanay lamang, panatilihin ang orihinal, at subaybayan ang epekto ng bawat hakbang sa pamamagitan ng pagbibilang nito. Ang AI ay isang napakalaking accelerator sa negosyong ito, ngunit ang mga tao ang magpapasya kung ano ang iyong lilinisin at bakit.
Gawain ng aplikasyon
Kumuha (o gumawa) ng isang maliit na talahanayan at sadyang magpasok ng tatlong problema dito: isang nawawalang value na tuple, isang outlier, isang mixed date format. Humiling ng diagnosis at standardization code mula sa AI gamit ang mga template sa itaas; ihambing ang bilang ng mga row at blangko bago/pagkatapos ng bawat hakbang. Subukang mahuli ang kahit isang "silent loss" at tandaan kung paano mo ito napansin.
checklist
- [ ] Iningatan ko ba ang orihinal na raw data at ginawa ko ang kopya?
- [ ] Naitanong ko na ba ang tanong na "bakit walang laman" para sa bawat nawawalang column?
- [ ] Sinuri ko ba ang mga outlier bago tanggalin ang mga ito?
- [ ] Kinakalkula ko ba ang halaga ng padding mula sa data ng pagsasanay lamang?
- [ ] Sinusuri ko ba ang bilang ng mga linya/blangko pagkatapos ng bawat hakbang at inaalis ang silent loss?