Eenheid 3 / 11

Gegevensopschoning en voorverwerking: ontbrekende waarde, uitschieter en typeconversie

Winst:

  • Vermogen om de oorzaak van ontbrekende waarden te onderscheiden (willekeurig, systematisch, betekenisvol) en de juiste strategie te kiezen en de vulwaarde te berekenen op basis van alleen training
  • Mogelijkheid om uitschieters te onderzoeken voordat ze worden verwijderd en onderscheid te maken tussen een gegevensfout en een echte zeldzame gebeurtenis
  • Mogelijkheid om stil verlies te voorkomen door de impact van elke stap op het aantal regels/spaties te monitoren en tegelijkertijd type- en formaatinconsistenties naar de standaard te brengen

Ongeveer 60-80 procent van de tijd van een datawetenschapper gaat naar schoonmaak; In de branche wordt dit half gekscherend ‘data wrangling’ genoemd (data wrangling of data cleaning). Omdat gegevens uit de echte wereld bijna nooit klaar zijn voor analyse: datums hebben gemengde formaten, getallen worden opgeslagen als tekst, sommige cellen zijn leeg, een klant verschijnt drie keer in dezelfde tabel met twee verschillende spellingen. In dit onderdeel behandelen we drie basisaspecten van het opruimen: ontbrekende waarden, uitschieters en conversie van type/formaat. Kunstmatige intelligentie is een buitengewoon snelle assistent bij dit werk; Maar u beslist zelf wat u schoonmaakt en hoe, want elke schoonmaakkeuze verandert de analyse.

De gouden schoonmaakregel: elke verandering is een beslissing

Een cel verwijderen, een ontbrekende waarde invullen met het gemiddelde, een uitbijter bijsnijden: geen van deze zijn ‘neutrale’ bewerkingen. Elk verandert de gegevens en beïnvloedt het resultaat. Dus de gouden regel bij het opruimen: schrijf elke wijziging in de code, noteer de reden, overschrijf nooit de originele gegevens. De AI geeft je een snelle opschooncode, maar het is jouw verantwoordelijkheid om te begrijpen wat die code doet; Voer het niet uit zonder te zien hoeveel regels er verdwenen zijn als u zegt "lege regels verwijderen".

Let op: Wijzig nooit de originele onbewerkte gegevens. Schrijf de opgeschoonde versie naar een apart bestand/tabel. Op deze manier kunt u, als u een fout ontdekt, teruggaan naar af en de reproduceerbaarheid behouden.

Ontbrekende waarden: waarom is het leeg, wat te doen

Een ontbrekende waarde (meestal weergegeven als NaN — "Geen getal" in panda's) is wanneer een cel leeg is. Maar de oorzaak van de kloof bepaalt de oplossing. Er zijn drie typische situaties. Willekeurig ontbrekend: sensor werkte even niet; Het kan verstandig zijn om het in te vullen. Systematisch ontbreken: een formulierveld wordt alleen voor bepaalde klanten gevraagd; Het gat hier is eigenlijk informatie. Significant ontbrekend: als "retourdatum" leeg is, is de klant niet teruggekomen; Deze ruimte betekent 0 of "geen", deze is niet gevuld.

Belangrijkste strategieën:

Strategie

Wanneer is het passend?

risico

Rij verwijderen

Het percentage ontbrekende gegevens is zeer laag (<5%) en willekeurig

Verlies van gegevens en representatie

Verwijder een kolom

Het grootste deel van de kolom is leeg (>60%)

verlies van informatie

Gemiddelde/mediaanvulling

Numeriek, willekeurig ontbrekend

Het vermindert de variantie en vervormt de verdeling

Categorie "onbekend"

Categorisch, systematisch ontbreken

Genereert extra categorieën

Voorspelling met model

Complexe, kostbare kolom

Lekrisico, complexiteit

Kritisch punt: de imputatiewaarde mag alleen worden berekend op basis van de trainingsgegevens en dezelfde waarde moet worden toegepast op de testgegevens. Als u het gemiddelde van de testgegevens meetelt, ontstaat er lekkage (Unit 10). De mediaan (de middelste waarde van ordinale gegevens) krijgt vaak de voorkeur boven het gemiddelde, omdat deze robuuster is voor uitschieters dan het gemiddelde.

Uitschieters: fout of reëel?

Een uitschieter kan twee dingen zijn: een gegevensfout (999 in de leeftijdskolom) of een echte maar zeldzame gebeurtenis (een bestelling van $ 2 miljoen van een klant). Het verwarren van deze twee is rampzalig: verwijder een echte uitbijter en je gooit belangrijke informatie weg; Als u een fout loslaat, zullen uw gemiddelden eronder lijden. Daarom is het noodzakelijk om eerst de uitschieter te onderzoeken en deze niet automatisch te verwijderen.

Gebruikelijke detectiemethoden: IQR-methode (interkwartielbereik; waarden die meer dan 1,5 keer het verschil zijn tussen de 25% en 75% kwintielen van de gegevens worden als uitbijters beschouwd) en z-score (het aantal standaardafwijkingen verwijderd van het gemiddelde dat een waarde is; meestal een uitbijter als deze groter is dan 3). AI schrijft de code voor deze berekeningen in seconden; Maar voordat je ‘verwijderen’ zegt, controleer eerst wat die waarden zijn.

Type- en formaatconversie: stille foutbron

Een van de grootste problemen is verwarring over gegevenstypen. Als een kolom "bedrag" als tekst is opgeslagen, kunt u deze niet toevoegen; Het programma leest onjuist een Turks opgemaakt getal, zoals "1.250,50" in plaats van "duizendtweehonderdvijftig". Datums ("01/03/2024" dag-maand of maand-dag?), categorieën ("Man"/"mannelijk"/"M" zijn hetzelfde?) en eenheden (TL of kuruş?) produceren stilletjes onjuiste resultaten. Een groot deel van het opruimen bestaat uit het in de standaard opnemen van deze inconsistenties: datums in één notatie, categorieën in één spelling, getallen in één eenheid.

drie minikoffers

Geval 1 — De gemiddelde valstrik. Een team vulde de 320 ontbrekende waarden in de inkomenskolom in met het gemiddelde ($48.500). Maar de tekortkomingen waren systematisch: dit was het lage-inkomenssegment dat nooit inkomen had aangegeven. De gemiddelde vulling maakte deze groep kunstmatig rijk en het kredietmodel klopte niet. Les: vraag “waarom is het leeg” voordat u het invult.

Geval 2 — Uitschieter die niet mag worden verwijderd. Een retailanalist verwijderde vier grote bestellingen (elk 1,8 miljoen TL) uit de verkoopgegevens, omdat hij dacht dat het "fouten" waren. Dit waren echter echte bedrijfsorders en vertegenwoordigden 22% van de totale omzet. Het voorspellingsmodel na de schrapping ging volledig voorbij aan de institutionele vraag. Les: onderzoek de uitbijter voordat u deze verwijdert.

Geval 3 — Een ramp met het datumformaat. In een CSV werden de datums gemengd in zowel "01-03-2024" als "03-01-2024". Toen de door YZ geschreven code werd geparseerd volgens het eerste formaat, werden 6.400 regels NaT als "ongeldige datum" en werden ze stilzwijgend uitgesloten van analyse. De analist merkte dit pas toen het aantal lijnen afnam. Les: controleer na conversie altijd het aantal regels en spaties.

Vier kopieerbare sjablonen

1) Ontbrekende waardekaart:

Ik heb panda's df. Schrijf code die een tabel produceert met het aantal en het percentage ontbrekende gegevens (NaN) voor elke kolom. Vermeld vervolgens afzonderlijk de kolommen met een ontbrekend percentage van meer dan 40% en de kolommen met een ontbrekend percentage van minder dan 5%. Genereer gewoon deze diagnosecode, niet welke strategie u voorstelt; Ik zal de beslissing nemen.

2) Inspectie van uitschieters (niet verwijderen):

Schrijf code die uitschieters voor mijn kolom "bedrag" DETECTEERT (niet verwijdert!) met behulp van de IQR-methode. Zet de buitenste rijen in een aparte df, zodat ik ze handmatig kan onderzoeken. Print ook het aantal uitschieters en hun aandeel in het totaal.

3) Type-/formaatstandaardisatie:

Schrijf code die de volgende kolommen standaardiseert: - "datum": kan gemengde formaten zijn ("2024-03-01" en "01.03.2024"); converteer ze allemaal naar datetime, tel de onvertaalbare en rapporteer (stil weggooien). - "geslacht": "Man"/"mannelijk"/"M" -> "M", "Vrouw"/"vrouwelijk"/"V" -> "K". - "bedrag": Turks opgemaakte tekst ("1.250,50") -> decimaal getal. Druk af hoeveel rijen na elke conversie worden beïnvloed.

4) Controle voor/na het reinigen:

Schrijf code die df.shape, ontbrekende telling en samenvattende statistieken (gemiddelde, mediaan, min, max) van geselecteerde kolommen vergelijkt voor en na een opschoonstap. Doel: kijken wat het schoonmaken verandert.

Zwakke prompt/sterke prompt

Zwakke prompt:

Wis deze gegevens.

"Duidelijk" is dubbelzinnig; AI weet niet welke ontbrekende onderdelen verwijderd moeten worden, wat in te vullen, welke kolom te verwerken en hoe. Het resultaat: blinde, onomkeerbare veranderingen.

Krachtige prompt:

Jouw rol: assistent voor het opschonen van gegevens. df-kolommen: klant_id (int), registratiedatum (tekst met gemengd formaat), omzet_tl (tekst, "1.200,00"), stad (tekst, inconsistente spelling). Regels: - Originele df wijzigen; Werk aan de kopie met de naam df_clean. - Converteer inkomen_tl naar getal, tel wat niet kan worden vertaald. - Verander record_date in datetime, rapporteer de fout. - Verwijder geen rijen zonder mijn toestemming; Toon de kandidaten afzonderlijk. Druk na elke stap df_temiz.shape en het ontbrekende nummer af.

Hier wordt de bron beschermd, wordt elke transformatie geteld, wordt het verwijderen aan de mens overgelaten.

Veel voorkomende fouten

  • De gaten opvullen zonder te vragen: "Waarom is het leeg?" Het invullen van systematische/significante ontbrekende gegevens met het gemiddelde vertekent de gegevens.
  • De uitbijter verwijderen zonder deze te onderzoeken. Het negeren van echte maar zeldzame gebeurtenissen vernietigt belangrijke informatie.
  • Berekening van de opvulwaarde uit alle gegevens. Het meenemen van testgegevens zorgt voor lekkage; bereken gewoon uit de training.
  • Het aantal rijen/spaties na de conversie wordt niet gecontroleerd. Rijen die stilletjes NaT/NaN zijn, worden uitgesloten van analyse.
  • De originele gegevens overschrijven. Rendement en reproduceerbaarheid gaan verloren.
Tip: voer de reiniging uit met een 'voor-na'-vergelijking. Druk na elke stap df.shape, ontbrekende aantallen en samenvattende statistieken van kritieke kolommen af. Je ziet dus meteen dat één stap onverwacht 6.000 rijen vernietigt.

Samengevat

Opschonen is de meest tijdrovende en beslissingsvereisende fase van datawetenschap. Elke verandering verandert de gegevens, dus elke verandering is een bewuste beslissing. Vraag bij ontbrekende waarden: "Waarom is het leeg?" Controleer eventuele uitschieters voordat u ze verwijdert; Breng type en formaat naar standaard. Bereken alleen de vulwaarde op basis van de trainingsgegevens, bewaar het origineel en volg de impact van elke stap door deze te tellen. AI is een enorme versneller in deze branche, maar mensen beslissen wat je schoonmaakt en waarom.

Applicatie taak

Neem (of maak) een kleine tabel en plaats er doelbewust drie problemen in: een tupel met ontbrekende waarden, een uitschieter, een gemengd datumformaat. Vraag diagnose- en standaardisatiecode aan bij AI met bovenstaande templates; vergelijk het aantal rijen en spaties voor/na elke stap. Probeer minstens één ‘stil verlies’ te vangen en noteer hoe je het hebt opgemerkt.

controlelijst

  • [ ] Heb ik de originele onbewerkte gegevens bewaard en aan de kopie gewerkt?
  • [ ] Heb ik voor elke ontbrekende kolom de vraag gesteld "waarom is deze leeg?"
  • [ ] Heb ik de uitschieters gecontroleerd voordat ik ze verwijderde?
  • [ ] Heb ik de opvulwaarde alleen op basis van trainingsgegevens berekend?
  • [ ] Controleer ik het aantal regels/spaties na elke stap en elimineer ik stil verlies?