Skip to Content

Wat is data-voorverwerking voor machine learning?

Data-voorverwerking voor machine learning (ML ) verwijst naar de voorbereiding en transformatie van ruwe data in een formaat dat geschikt is voor het trainen van ML-modellen. Het is een essentiële stap in een ML (of AI)-pijplijn omdat het rechtstreeks van invloed is op de prestaties en nauwkeurigheid van de modellen.

Data-voorverwerking omvat verschillende technieken, zoals het opschonen van de data om ontbrekende waarden aan te kunnen, het verwijderen van uitschieters, het schalen van functies, het coderen van categorische variabelen en het splitsen van de data in trainings- en testsets. Deze technieken zijn essentieel om ervoor te zorgen dat de data in een consistent en bruikbaar formaat zijn voor de ML-algoritmen.

Dit artikel behandelt alles wat u moet weten over data-voorverwerking voor machine learning, inclusief wat het is, de voordelen, stappen en voorbeelden. 

Wat is voorverwerking van data? 

Data-voorverwerking is de transformatie van ruwe data in een formaat dat geschikter en zinvoller is voor analyse en modeltraining. Voorverwerking van data speelt een cruciale rol bij het verbeteren van de kwaliteit en efficiëntie van ML-modellen door problemen aan te pakken zoals ontbrekende waarden, ruis, inconsistenties en uitschieters in de data.

Voordelen van voorverwerking van data voor machine learning

Data-voorverwerking voor machine learning heeft veel voordelen, en deze voordelen zijn hetzelfde als de stappen die gepaard gaan met data-voorverwerking. Laten we eens kijken. 

1. Data-opschoning

Data-opschoning is een essentieel onderdeel van de pijplijn voor data-voorverwerking in machine learning. Het omvat het identificeren en corrigeren van fouten of inconsistenties in de dataset om ervoor te zorgen dat de data van hoge kwaliteit zijn en geschikt voor analyse of modeltraining. 

Data-opschoning omvat doorgaans:

Omgaan met ontbrekende waarden

Ontbrekende waarden zijn een veelvoorkomend probleem in real-world datasets en kunnen de prestaties van ML-modellen negatief beïnvloeden. Om ontbrekende waarden te identificeren en ermee om te gaan:

  • Gebruik beschrijvende statistieken of visualisaties om kolommen/functies met ontbrekende waarden te identificeren. Veelvoorkomende indicatoren van ontbrekende waarden zijn NaN (geen getal) of NULL-waarden.
  • Bepaal de impact van ontbrekende waarden op uw analyse of model. Houd rekening met het percentage ontbrekende waarden in elke kolom en het belang ervan voor de algemene dataset.
  • Als het percentage ontbrekende waarden klein is en die rijen of kolommen niet cruciaal zijn, kunt u ervoor kiezen om ze te verwijderen met behulp van methoden zoals dropna() in panda's of soortgelijke functies in andere tools.
  • Voor numerieke functies kunt u ontbrekende waarden imputeren met behulp van technieken als gemiddelde, mediaan of modus imputatie (fillna()-methode in panda's). Voor categorische functies kunt u imputeren met de meest voorkomende categorie.

U kunt ook meer geavanceerde imputatiemethoden overwegen, zoals regressie-imputatie, imputatie van k-nauwste buren of het gebruik van ML-modellen om ontbrekende waarden te voorspellen op basis van andere functies.

Omgaan met uitschieters

Uitschieters zijn datapunten die aanzienlijk verschillen van andere observaties in de dataset en die statistische analyses of machine learning-modellen kunnen vertekenen. 

Om uitschieters op te sporen en af te handelen:

  • Gebruik boxplots, histogrammen of scatterplots om de verdeling van numerieke functies te visualiseren en potentiële uitschieters visueel te identificeren.
  • Bereken samenvattende statistieken zoals gemiddelde, standaarddeviatie, kwartielen en interkwartielbereik (IQR). Uitschieters worden vaak gedefinieerd als datapunten die onder Q1 - 1,5 * IQR of boven Q3 + 1,5 * IQR vallen.
  • In sommige gevallen kan het verwijderen van uitschieters gepast zijn, vooral als ze het gevolg zijn van fouten of anomalieën in de gegevensinvoer. Gebruik filtertechnieken op basis van statistische drempels om uitschieters te verwijderen.
  • Pas transformaties toe zoals logtransformatie, square root-transformatie of Box-Cox-transformatie om de data meer normaal te verdelen en de impact van uitschieters te verminderen.
  • Overweeg robuuste machine learning-modellen te gebruiken die minder gevoelig zijn voor uitschieters, zoals support vector machines (SVM), Random Forests of combinatiemethoden.

Omgaan met duplicaten

Dubbele records kunnen de analyse vertekenen en training modelleren door bepaalde patronen of vooroordelen op te blazen. 

Om duplicaten te detecteren en te verwerken:

  • Gebruik functies zoals duplicaat() in panda's om dubbele rijen te identificeren op basis van specifieke kolommen of de gehele rij.
  • Als dubbele records overbodig zijn en geen aanvullende informatie verstrekken, kunt u ze verwijderen met behulp van de drop_duplicates()-functie in panda's of soortgelijke methoden in andere tools.
  • In sommige gevallen kunnen duplicaten optreden als gevolg van meerdere vermeldingen, maar hebben ze unieke identificatiecodes. Zorg ervoor dat u unieke identificaties of sleutelkolommen bewaart die onderscheid maken tussen dubbele records.

Door deze stappen te volgen en de juiste technieken te gebruiken, kunt u uw data effectief opschonen en voorverwerken voor machine learning-taken, waardoor de kwaliteit en betrouwbaarheid van de voorspellingen van uw modellen worden verbeterd.

2. Datanormalisatie

Normalisatie is een voorverwerkingstechniek voor data die wordt gebruikt om de waarden van functies binnen een dataset te schalen en te standaardiseren. Het belangrijkste doel van normalisatie is om alle functiewaarden binnen een vergelijkbaar bereik te brengen zonder verschillen in het bereik van de waarden te verstoren. Dit is belangrijk omdat veel machine learning-algoritmen beter presteren of sneller convergeren wanneer de invoerfuncties op een vergelijkbare schaal zijn en een vergelijkbare distributie hebben.

De voordelen van normalisatie zijn onder andere:

  • Voorkomen dat functies met grote schalen die met kleinere schalen domineren tijdens modeltraining. 
  • Algoritmes zoals gradiëntdaling komen sneller samen wanneer functies worden genormaliseerd, wat leidt tot snellere trainingstijden. 
  • Vermindering van de impact van uitschieters door alle waarden binnen een begrensd bereik te brengen. Genormaliseerde data kunnen gemakkelijker te interpreteren en te vergelijken zijn over verschillende functies.

Normalisatietechnieken

Min-max schalen 

  • Formule:Xnorm =Xmax −Xmin /Xmax −Xmin
  • Bereik: Zet waarden om in een bereik tussen 0 en 1.

 

Voorbeeld:

Z-score normalisatie (standaardisatie):

  • Formule: Xstd = -X/μ
  • Bereik: Zet waarden om in een gemiddelde van 0 en een standaarddeviatie van 1.

 

Voorbeeld:

Richtlijnen voor het toepassen van normalisatie

Min-max schalen: Min-max-scaling is geschikt voor algoritmen die invoerfuncties binnen een specifiek bereik vereisen, zoals neurale netwerken en ondersteunende vectormachines. Zorg ervoor dat uitschieters op de juiste manier worden behandeld, omdat ze de schaalvergroting kunnen beïnvloeden.

Z-score normalisatie : Dit is geschikt voor algoritmen zoals K-means clustering, lineaire regressie en logistieke regressie. Het resulteert in een distributie gecentreerd rond 0 met een standaarddeviatie van 1, waardoor het ideaal is voor algoritmen die uitgaan van normaal gedistribueerde data.

Beperkte data: Voor beperkte datasets (waar de meeste waarden nul zijn), overweeg het gebruik van technieken zoals MaxAbsScaler of RobustScaler voor normalisatie.

Categorische data: Overweeg voor categorische functies technieken zoals one-hot codering vóór normalisatie om zinvolle schaalbaarheid te garanderen.

Het is belangrijk op te merken dat de keuze van de normalisatietechniek afhankelijk is van de specifieke kenmerken van uw data en de vereisten van het machine learning-algoritme dat u van plan bent te gebruiken. Experimenteren en begrijpen van de impact op de prestaties van het model zijn belangrijke aspecten van het effectief toepassen van normalisatie.

3. Functieschalen

Functieschalen is een voorverwerkingstechniek voor data die wordt gebruikt om het bereik van onafhankelijke variabelen of functies van een dataset te standaardiseren. Het doel van functieschalen is om alle functies op een vergelijkbare schaal of bereik te brengen om te voorkomen dat één functie over anderen domineert tijdens modeltraining of -analyse. Functieschalen kan de convergentiesnelheid van optimalisatiealgoritmen verbeteren en voorkomen dat bepaalde functies een onnodige invloed op het model hebben.

Rol van functieschalen in data-voorverwerking

Schaalfuncties zorgen ervoor dat ML-algoritmen alle functies gelijk behandelen, waardoor vooroordelen ten opzichte van functies met grotere schalen worden voorkomen. Het verbetert ook de convergentie, omdat veel optimalisatiealgoritmen (bijv. gradiëntdaling) sneller samenkomen wanneer functies worden geschaald, wat leidt tot snellere modeltraining. Het kan ook numerieke instabiliteitsproblemen voorkomen die kunnen ontstaan als gevolg van grote verschillen in functieomvang. En tot slot kan schalen het gemakkelijker maken om de impact van functies op de voorspellingen van het model te interpreteren.

Functieschaalmethoden

Naast de hierboven beschreven min-max schaal en Z-score normalisatie is er ook:

MaxAbsScaler: Dit schaalt elke functie op basis van de maximale absolute waarde, zodat de resulterende waarden tussen -1 en 1 liggen. Het is geschikt voor beperkte data waarbij het behoud van nul vermeldingen belangrijk is, zoals in tekstclassificatie- of aanbevelingssystemen.

RobuusteScaler: Dit maakt gebruik van statistieken die robuust zijn voor uitschieters, zoals de mediaan en het interkwartielbereik (IQR), om functies te schalen. Het is geschikt voor datasets met uitschieters of scheve distributies.

Richtlijnen voor het toepassen van functieschalen

Om functieschalen toe te passen:

  • Pas standaardisatie (Z-scorenormalisatie) toe wanneer de data een normale distributie volgen of wanneer algoritmen zoals lineaire regressie, logistieke regressie of K-means clustering worden gebruikt.
  • Pas normalisatie (min-max scaling) toe wanneer u de data binnen een specifiek bereik wilt hebben, zoals neurale netwerken of ondersteunende vectormachines.
  • Gebruik MaxAbsScaler bij het omgaan met beperkte data, zoals tekstdata of hoogdimensionale beperkte functies.
  • Gebruik RobustScaler bij het omgaan met datasets die uitschieters of niet-normaal gedistribueerde functies bevatten.

Houd er rekening mee dat categorische functies mogelijk moeten worden gecodeerd (bijv. one-hot-codering) voordat functieschalen worden toegepast, vooral als ze nominaal zijn (niet-geordende categorieën).

4. Omgaan met categorische data

Categorische variabelen vertegenwoordigen groepen of categorieën en zijn vaak niet-numeriek van aard, waardoor uitdagingen ontstaan tijdens modeltraining, waaronder:

  • Niet-numerieke representatie: Categorische variabelen worden doorgaans weergegeven met strings of labels, die de meeste machine learning-algoritmen niet direct kunnen verwerken. Algoritmes vereisen numerieke input voor training en voorspellingen.
  • Ordinale vs. nominale variabelen: Categorische variabelen kunnen ordinaal (met een zinvolle volgorde) of nominaal (zonder een specifieke volgorde) zijn. Het behandelen van ordinale variabelen als nominaal of omgekeerd kan leiden tot onjuiste modelinterpretaties of bevooroordeelde voorspellingen.
  • Vloek van dimensionaliteit: One-hot codering, een veelgebruikte techniek voor het omgaan met categorische data, kan leiden tot een toename van de dimensionaliteit van de dataset, vooral met een groot aantal unieke categorieën. Dit kan de prestaties van het model beïnvloeden en de complexiteit van de berekeningen vergroten.

Technieken voor het coderen van categorische variabelen

Technieken voor het coderen van categorische variabelen zijn onder meer:

Labelcodering: Labelcodering wijst een uniek numeriek label toe aan elke categorie in een categorische variabele. Het is geschikt voor ordinale variabelen waarbij er een zinvolle volgorde is tussen categorieën.

Hier is een voorbeeld van Python's scikit-learn:

van sklearn.preprocessing import LabelEncoder

le = LabelEncoder()

gecodeerde_labels = le.fit_transform(['cat', 'hond', 'konijn', 'hond'])

One-hot codering: One-hot codering creëert binaire kolommen voor elke categorie in een categorische variabele, waarbij elke kolom de aan- of afwezigheid van die categorie aangeeft. Het is geschikt voor nominale variabelen zonder een specifieke volgorde tussen categorieën.

Hier is een voorbeeld van het gebruik van panda's:

importeer panda's als pd

df = pd.DataFrame({'category': ['A', 'B', 'C', 'A']})

one_hot_encoded = pd.get_dummies(df['category'], prefix='category')

Dummy-codering: Dummy-codering is vergelijkbaar met one-hot-codering, maar laat een van de binaire kolommen vallen om multicollineariteitsproblemen in lineaire modellen te voorkomen. Het wordt vaak gebruikt in regressiemodellen waarbij één categorie dient als referentiecategorie.

Hier is een voorbeeld van het gebruik van panda's:

dummy_encoded = pd.get_dummies(df['category'], prefix='category', drop_first=True)

Richtlijnen voor het omgaan met categorische data

Om categorische data correct te verwerken, moet u:

Variabele types begrijpen: Bepaal of categorische variabelen ordinaal of nominaal zijn om de juiste coderingstechniek te kiezen.

Vermijd ordinale verkeerde interpretatie: Wees voorzichtig bij het gebruik van labelcodering voor nominale variabelen, omdat dit onbedoelde ordinaliteit in de data kan introduceren.

Omgaan met hoge kardinaliteit: Voor categorische variabelen met een groot aantal unieke categorieën kunt u technieken overwegen zoals frequentiecodering, doelcodering of dimensionaliteitsreductietechnieken zoals PCA.

Dit alles in aanvulling op de reeds genoemde afhandeling van ontbrekende waarden en het normaliseren van numerieke data. 

5. Omgaan met onevenwichtige data

Het omgaan met onevenwichtige data is een veelvoorkomende uitdaging bij machine learning, vooral bij classificatietaken waarbij het aantal instanties in de ene klasse (minderheidsklasse) aanzienlijk lager is dan in de andere klassen (meerderheidsklassen). Onevenwichtige data kunnen een grote impact hebben op modeltraining en -evaluatie, wat leidt tot bevooroordeelde modellen die de meerderheidsklasse bevoordelen en slecht presteren op minderheidsklassen. 

Hier zijn enkele belangrijke punten met betrekking tot onevenwichtige data en technieken om ermee om te gaan:

Impact van onevenwichtige data op modelprestaties

Modellen die zijn getraind op onevenwichtige data geven doorgaans prioriteit aan nauwkeurigheid in de meerderheidsklasse, terwijl de minderheidsklasse wordt verwaarloosd. Dit kan leiden tot slechte prestaties op voorspellingen van minderheidsklassen. Ook kunnen statistieken zoals nauwkeurigheid misleidend zijn in onevenwichtige datasets, omdat een hoge nauwkeurigheid kan voortvloeien uit het correct voorspellen van de meerderheidsklasse terwijl de minderheidsklasse wordt genegeerd. Evaluatiemetrieken zoals precisie, recall, F1-score en gebied onder de ROC-curve (AUC-ROC) zijn informatiever voor onevenwichtige datasets in vergelijking met alleen nauwkeurigheid.

Technieken voor het omgaan met onevenwichtige data

De meest voorkomende technieken voor het omgaan met onevenwichtige data zijn over- en ondersampling. Oversampling houdt in dat het aantal gevallen in de minderheidsklasse wordt verhoogd om het in evenwicht te brengen met de meerderheidsklasse. Ondersampling houdt in dat het aantal gevallen in de meerderheidsklasse wordt verminderd om het in evenwicht te brengen met de minderheidsklasse. U kunt ook een hybride aanpak kiezen door over- en ondersampling te combineren.

Er is ook klasseweging, waarbij u de klassegewichten tijdens modeltraining aanpast om fouten in de minderheidsklasse meer te bestraffen dan fouten in de meerderheidsklasse. Dit is alleen nuttig voor algoritmen die klasseweging ondersteunen, zoals logistische regressie of ondersteuning van vectormachines.

Richtlijnen voor het omgaan met onevenwichtige data

Om onevenwichtige data te verwerken, moet u:

Begrijp datadistributie: Analyseer de klasseverdeling in uw dataset om de ernst van de onbalans te bepalen.

Kies de juiste techniek: Selecteer de oversampling-, ondersampling- of hybridetechniek op basis van de grootte van uw dataset, onbalansverhouding en rekenmiddelen.

Evalueer statistieken: Gebruik geschikte evaluatiemetrieken zoals precisie, recall, F1-score of AUC-ROC-curve om de prestaties van het model in beide klassen te beoordelen.

Cross-valideren: Pas technieken toe binnen cross-validatievouwen om datalekken te voorkomen en betrouwbare modelprestatieschattingen te verkrijgen.

Conclusie

Data-voorverwerking helpt ervoor te zorgen dat ML-modellen worden getraind in hoogwaardige, goed geformatteerde data, wat rechtstreeks van invloed is op de prestaties, nauwkeurigheid en generalisatiecapaciteit van het model. Door problemen als ontbrekende waarden, uitschieters, categorische variabelen en klasse-onbalans aan te pakken, stelt data-voorverwerking modellen in staat om beter geïnformeerde en nauwkeurige voorspellingen te doen, wat leidt tot betere besluitvorming in real-world applicaties.

Met de juiste voorverwerking van data kunnen ML-professionals het volledige potentieel van hun data ontsluiten en nauwkeurigere en betrouwbaardere voorspellende modellen bouwen voor verschillende toepassingen in verschillende domeinen.

Om dat echt in de echte wereld te doen, moet u echter eerst een flexibele dataopslagoplossing zoals Pure Storage hebben die u helpt AI en machine learning te versnellen en vooruit te komen met uw AIAIinitiatieven.

09/2024
Seven Key Storage Considerations for Digital Pathology
Explore 7 key considerations your organization should consider when choosing data storage for digital pathology.
Whitepaper
4 pagina's
NEEM CONTACT MET ONS OP
Vragen, opmerkingen?

Hebt u een vraag of opmerking over Pure-producten of certificeringen?  Wij zijn er om te helpen.

Een demo inplannen

Plan een livedemo in en zie zelf hoe Pure kan helpen om jouw data in krachtige resultaten om te zetten. 

Bel ons: 31 (0) 20-201-49-65

Media: pr@purestorage.com

 

Pure Storage

Herikerbergweg 292

1101 CT . Amsterdam Zuidoost

The Netherlands

info@purestorage.com

Sluiten
Uw browser wordt niet langer ondersteund!

Oudere browsers vormen vaak een veiligheidsrisico. Om de best mogelijke ervaring te bieden bij het gebruik van onze site, dient u te updaten naar een van deze nieuwste browsers.