Machine learning is the science (and art) of programming computers so they can learn from data.
vakgebied dat computers het vermogen geeft om te leren zonder expliciet geprogrammeerd te worden. – Arthur Samuel, 1959
Een betere definitie:
Een computerprogramma leert van ervaring E met betrekking tot een of andere taak T en een of andere prestatiemaatstaf P, als de prestaties van het programma met betrekking tot T, zoals gemeten door P, verbeteren met ervaring E. – Tom Mitchell, 1997
Zo is uw spamfilter een machine-leerprogramma dat kan leren om spam te markeren nadat het voorbeelden heeft gekregen van spam-e-mails die door gebruikers zijn gemarkeerd, en voorbeelden van gewone niet-spam-e-mails (ook wel “hammails” genoemd). De voorbeelden die het systeem gebruikt om te leren, worden de trainingsset genoemd. In dit geval is de taak (T) het markeren van spam voor nieuwe e-mails, de ervaring (E) is de trainingsdata, en de prestatiemaatstaf (P) moet worden gedefinieerd. U kunt bijvoorbeeld het percentage correct geclassificeerde e-mails als P gebruiken. Deze specifieke prestatiemaat wordt nauwkeurigheid genoemd en wordt vaak gebruikt bij classificatietaken omdat het een benadering met supervised learning is.
Dive DeeperAn Introduction to Machine Learning for Beginners
Supervised Learning
In supervised learning leren algoritmen van gelabelde gegevens. Na de gegevens te hebben begrepen, bepaalt het algoritme welk label aan nieuwe gegevens moet worden gegeven door patronen te associëren met de ongelabelde nieuwe gegevens.
Supervised learning kan worden onderverdeeld in twee categorieën: classificatie en regressie.
Classificatie voorspelt de categorie waartoe de gegevens behoren.
Enige voorbeelden van classificatie zijn spamdetectie, churn-voorspelling, sentimentanalyse, detectie van hondenrassen, enzovoort.
Regressie voorspelt een numerieke waarde op basis van eerder waargenomen gegevens.
Enige voorbeelden van regressie zijn voorspelling van de huizenprijs, voorspelling van de aandelenkoers, voorspelling van lengte-gewicht, enzovoort.
Dive DeeperA Tour of the Top 10 Algorithms for Machine Learning Newbies
Classificatie
Classificatie is een techniek om te bepalen tot welke klasse de afhankelijke behoort op basis van een of meer onafhankelijke variabelen.
Classificatie wordt gebruikt voor het voorspellen van discrete responsen.
Logistische regressie
Logistische regressie lijkt een beetje op lineaire regressie, maar wordt gebruikt wanneer de afhankelijke variabele geen getal is maar iets anders (bijv, een “ja/nee” antwoord). Het wordt regressie genoemd, maar het voert classificatie uit op basis van de regressie en het classificeert de afhankelijke variabele in een van de klassen.
Logistische regressie wordt gebruikt voor voorspelling van uitvoer die binair is, zoals hierboven vermeld. Als een creditcardbedrijf bijvoorbeeld een model opstelt om te beslissen of een klant al dan niet een creditcard krijgt, zal het model aangeven of de klant al dan niet in gebreke blijft bij het gebruik van zijn kaart.
Eerst wordt lineaire regressie uitgevoerd op de relatie tussen variabelen om het model te krijgen. De drempel voor de classificatielijn wordt verondersteld 0,5 te zijn.
K-Nearest Neighbors (K-NN)
K-NN-algoritme is een van de eenvoudigste classificatiealgoritmen en wordt gebruikt om de gegevenspunten te identificeren die in verschillende klassen zijn onderverdeeld om de classificatie van een nieuw monsterpunt te voorspellen. K-NN is een niet-parametrisch, lui lerend algoritme. Het classificeert nieuwe gevallen op basis van een gelijksoortigheidsmaat (d.w.z, afstandsfuncties).
K-NN werkt goed met een klein aantal invoervariabelen (p), maar heeft het moeilijk als het aantal ingangen erg groot is.
Support Vector Machine (SVM)
Support vector wordt zowel voor regressie als classificatie gebruikt. Het is gebaseerd op het concept van beslissingsvlakken die beslissingsgrenzen definiëren. Een beslissingsvlak (hypervlak) is een vlak dat een scheiding maakt tussen een reeks objecten met verschillende klasse-indelingen.
Het voert classificatie uit door het hypervlak te vinden dat de marge tussen de twee klassen maximaliseert met behulp van support vectors.
Het leren van de hyperplane in SVM wordt gedaan door het probleem te transformeren met behulp van wat lineaire algebra (d.w.z, het bovenstaande voorbeeld is een lineaire kernel die een lineaire scheidbaarheid tussen elke variabele heeft).
Voor gegevens met een hogere dimensie worden andere kernels als punten gebruikt die niet gemakkelijk kunnen worden geclassificeerd. Zij worden in de volgende sectie gespecificeerd.
Kernel SVM
Kernel SVM neemt in het SVM-algoritme een kernelfunctie op en transformeert deze in de vereiste vorm die gegevens op een hogere dimensie in kaart brengt die scheidbaar is.
Typen kernelfuncties zijn:
- Lineaire SVM is de SVM die we eerder hebben besproken.
- In polynomiale kernel moet de graad van de polynoom worden gespecificeerd. Deze maakt gebogen lijnen in de invoerruimte mogelijk.
- In de radiale basisfunctie (RBF)-kernel wordt deze gebruikt voor niet-lineair scheidbare variabelen. Voor de afstand wordt de metrische gekwadrateerde Euclidische afstand gebruikt. Het gebruik van een typische waarde van de parameter kan leiden tot overfitting van onze gegevens. Deze wordt standaard gebruikt in sklearn.
- Sigmoid kernel, vergelijkbaar met logistische regressie, wordt gebruikt voor binaire classificatie.
Kernel trick gebruikt de kernel functie om gegevens te transformeren naar een hogere dimensionale feature space en maakt het mogelijk om de lineaire scheiding uit te voeren voor classificatie.
Radial Basis Function (RBF) Kernel
Het beslissingsgebied van de RBF-kernel SVM is eigenlijk ook een lineair beslissingsgebied. Wat RBF kernel SVM in feite doet, is niet-lineaire combinaties van kenmerken creëren om de steekproeven naar een hoger-dimensionale kenmerkruimte te tillen waar een lineaire beslissingsgrens kan worden gebruikt om klassen te scheiden.
Dus de vuistregel is: gebruik lineaire SVM’s voor lineaire problemen, en niet-lineaire kernels zoals de RBF-kernel voor niet-lineaire problemen.
Naive Bayes
De naïeve Bayes-classifier is gebaseerd op het theorema van Bayes met de veronderstelling van onafhankelijkheid tussen voorspellers (d.w.z, het gaat ervan uit dat de aanwezigheid van een kenmerk in een klasse niet gerelateerd is aan een ander kenmerk). Zelfs als deze kenmerken afhankelijk zijn van elkaar, of van het bestaan van de andere kenmerken, zijn al deze eigenschappen onafhankelijk van elkaar. Vandaar de naam naïeve Bayes.
Gebaseerd op naïeve Bayes, wordt Gaussian naive Bayes gebruikt voor classificatie op basis van de binomiale (normale) verdeling van gegevens.
- P(klasse|data) is de posterieure waarschijnlijkheid van klasse(doel) gegeven predictor(kenmerk). De waarschijnlijkheid dat een gegevenspunt een van beide klassen heeft, gegeven het gegevenspunt. Dit is de waarde die wij willen berekenen.
- P(class) is de voorafgaande waarschijnlijkheid van class.
- P(data|class) is de waarschijnlijkheid, dat is de waarschijnlijkheid van predictor gegeven class.
- P(data) is de voorafgaande waarschijnlijkheid van de voorspeller of de marginale waarschijnlijkheid.
Stappen
1. Bereken prioritaire waarschijnlijkheid
P(klasse) = aantal gegevenspunten in de klasse/totaal aantal waarnemingen
P(geel) = 10/17
P(groen) = 7/17
2. Bereken Marginale Waarschijnlijkheid
P(data) = Aantal datapunten dat lijkt op waarneming/Totaal aantal waarnemingen
P(?) = 4/17
De waarde is aanwezig in het controleren van beide waarschijnlijkheden.
3. Bereken de waarschijnlijkheid
P(gegevens/klasse) = Aantal waarnemingen dat op de klasse lijkt/Totaal aantal punten in de klasse.
P(?/geel) = 1/7
P(?/groen) = 3/10
4. Posterior waarschijnlijkheid voor elke klasse
5. Classificatie
Hoe hoger de waarschijnlijkheid, hoe meer de klasse tot die categorie behoort, zoals vanaf 75% waarschijnlijkheid het punt tot klasse groen behoort.
Multinomiaal, Bernoulli naïeve Bayes zijn de andere modellen die worden gebruikt voor het berekenen van waarschijnlijkheden. Een naïef Bayes-model is dus eenvoudig op te bouwen, zonder ingewikkelde iteratieve parameterschatting, waardoor het bijzonder nuttig is voor zeer grote datasets.
Decision Tree Classification
Decision tree bouwt classificatie- of regressiemodellen op in de vorm van een boomstructuur. Een dataset wordt opgesplitst in steeds kleinere deelverzamelingen, terwijl tegelijkertijd incrementeel een bijbehorende beslisboom wordt ontwikkeld. Het eindresultaat is een boom met beslissingsknooppunten en bladknooppunten. Het volgt de Iterative Dichotomiser 3(ID3) algoritmestructuur voor het bepalen van de splitsing.
Entropie en informatiewinst worden gebruikt om een beslissingsboom te construeren.
Entropie
Entropie is de mate of hoeveelheid van onzekerheid in de willekeurigheid van elementen. Met andere woorden, het is een maatstaf voor de onzuiverheid.
Intuïtief zegt het ons iets over de voorspelbaarheid van een bepaalde gebeurtenis. Entropie berekent de homogeniteit van een steekproef. Als de steekproef volledig homogeen is, is de entropie nul, en als de steekproef gelijk verdeeld is, heeft deze een entropie van één.
Informatiewinst
Informatiewinst meet de relatieve verandering in entropie ten opzichte van het onafhankelijke attribuut. Het probeert de informatie te schatten die elk attribuut bevat. Bij het construeren van een beslissingsboom gaat het erom het attribuut te vinden dat de hoogste informatiewinst oplevert (d.w.z,
Waarbij Gain(T, X) de informatiewinst is door toepassing van kenmerk X. Entropy(T) is de entropie van de gehele verzameling, terwijl de tweede term de entropie berekent na toepassing van kenmerk X.
Information gain rangschikt attributen voor filtering op een gegeven knooppunt in de boom. De rangschikking is gebaseerd op de hoogste entropie van de informatiewinst in elke splitsing.
Het nadeel van een beslisboommodel is overfitting, omdat wordt geprobeerd het model in te passen door dieper in de trainingsset te gaan en daardoor de testnauwkeurigheid te verminderen.
Overfitting bij beslisbomen kan worden geminimaliseerd door knooppunten te snoeien.
Ensemble-methoden voor classificatie
Een ensemble-model is een team van modellen. Technisch gezien bestaan ensemblemodellen uit verschillende supervised learning-modellen die afzonderlijk worden getraind en waarvan de resultaten op verschillende manieren worden samengevoegd om tot de uiteindelijke voorspelling te komen. Dit resultaat heeft een hogere voorspellende kracht dan de resultaten van elk van de samenstellende leeralgoritmen afzonderlijk.
Random Forest Classification
Random forest classifier is een ensemble-algoritme op basis van bagging, d.w.z. bootstrap aggregatie. Ensemble-methoden combineren meer dan één algoritme van dezelfde of verschillende soort voor het classificeren van objecten (d.w.z, een ensemble van SVM, naive Bayes of beslisbomen, bijvoorbeeld.)
Het algemene idee is dat een combinatie van leermodellen het totale geselecteerde resultaat verhoogt.
Diepe beslisbomen kunnen last hebben van overfitting, maar random forests voorkomen overfitting door bomen te maken op willekeurige subsets. De belangrijkste reden hiervoor is dat het gemiddelde van alle voorspellingen wordt genomen, waardoor de vertekeningen worden gecompenseerd.
Random forest voegt extra willekeurigheid toe aan het model tijdens het groeien van de bomen. In plaats van te zoeken naar het belangrijkste kenmerk bij het splitsen van een knooppunt, zoekt het naar het beste kenmerk uit een willekeurige subset van kenmerken. Dit resulteert in een grote diversiteit die over het algemeen in een beter model resulteert.
Gradient Boosting Classification
Gradient boosting classifier is een boosting ensemble methode. Boosting is een manier om (ensemble) zwakke leerders te combineren, in de eerste plaats om de bias van de voorspelling te verminderen. In plaats van een pool van voorspellers te maken, zoals bij bagging, produceert boosting een cascade van voorspellers, waarbij elke output de input is voor de volgende learner. In een bagging algoritme worden bomen parallel gegroeid om de gemiddelde voorspelling over alle bomen te krijgen, waarbij elke boom is gebouwd op een monster van de oorspronkelijke gegevens. Gradient boosting daarentegen kiest voor een sequentiële aanpak om voorspellingen te verkrijgen in plaats van het proces van bomen bouwen te parallelliseren. Bij gradient boosting voorspelt elke beslissingsboom de fout van de vorige beslissingsboom – waardoor de fout (gradiënt) wordt versterkt (verbeterd).
Werking van Gradient Boosting
- Voorspellingen initialiseren met een eenvoudige beslissingsboom.
- Bereken de residuele waarde (feitelijke voorspelling).
- Bouw een andere ondiepe beslisboom die de residuele waarde voorspelt op basis van alle onafhankelijke waarden.
- Bewerk de oorspronkelijke voorspelling bij met de nieuwe voorspelling vermenigvuldigd met de leersnelheid.
- Herhaal stappen twee tot en met vier voor een bepaald aantal iteraties (het aantal iteraties is het aantal bomen).
Kijk ook eens naar deze post: Gradient Boosting From Scratch
Classificatiemodelprestaties
Confusion Matrix
Een confusion matrix is een tabel die vaak wordt gebruikt om de prestaties van een classificatiemodel te beschrijven op een reeks testgegevens waarvan de ware waarden bekend zijn. Het is een tabel met vier verschillende combinaties van voorspelde en werkelijke waarden in het geval van een binaire classificator.
De verwarringsmatrix voor een classificatieprobleem met meerdere klassen kan u helpen foutpatronen te bepalen.
Voor een binaire classificator:
Een echt positief is een uitkomst waarbij het model de positieve klasse correct voorspelt. Evenzo is een echte negatieve uitkomst een uitkomst waarbij het model de negatieve klasse correct voorspelt.
Vals-positief & Vals-negatief
De termen vals-positief en vals-negatief worden gebruikt om te bepalen hoe goed het model voorspelt met betrekking tot de classificatie. Een vals-positief is een uitkomst waarbij het model de positieve klasse onjuist voorspelt. En vals-negatief is een uitkomst waarbij het model ten onrechte de negatieve klasse voorspelt. Hoe meer waarden in de hoofddiagonaal, hoe beter het model, terwijl de andere diagonaal het slechtste resultaat voor de classificatie geeft.
Vals-positief
Een voorbeeld waarbij het model ten onrechte de positieve klasse voorspelde. Het model leidde bijvoorbeeld af dat een bepaald e-mailbericht spam was (de positieve klasse), maar dat e-mailbericht was in werkelijkheid geen spam. Het is als een waarschuwingsteken dat de fout moet worden hersteld, want het is niet zo erg als vals-negatief.
Vals-positief (type I-fout) – wanneer u een ware nulhypothese verwerpt
Vals-negatief
Een voorbeeld waarbij het model ten onrechte de negatieve klasse heeft voorspeld. Het model leidde bijvoorbeeld af dat een bepaald e-mailbericht geen spam was (de negatieve klasse), maar dat e-mailbericht was wel degelijk spam. Het is als een gevaarsteken dat de fout vroegtijdig moet worden hersteld, omdat deze ernstiger is dan een vals-positief.
Vals-negatief (type II-fout) – wanneer u een valse nulhypothese accepteert.
Deze afbeelding illustreert heel gemakkelijk de bovenstaande metriek. De testresultaten van de man zijn vals-positief omdat een man niet zwanger kan zijn. De testresultaten van de vrouw zijn vals-negatief omdat ze duidelijk zwanger is.
Uit de verwarringsmatrix kunnen we de nauwkeurigheid, precisie, recall en F-1 score afleiden.
Nauwkeurigheid
Nauwkeurigheid is het deel van de voorspellingen dat ons model goed heeft.
Nauwkeurigheid kan ook worden geschreven als
Nauwkeurigheid alleen vertelt niet het volledige verhaal wanneer u werkt met een gegevensreeks met ongebalanceerde klassen, waarbij er een aanzienlijk verschil is tussen het aantal positieve en negatieve labels. Precisie en recall zijn betere maatstaven voor het evalueren van klasse-ongebalanceerde problemen.
Precisie
Uit alle klassen is precisie hoeveel we correct hebben voorspeld.
Precisie moet zo hoog mogelijk zijn.
Recall
Uit alle positieve klassen is recall hoeveel we correct hebben voorspeld. Het wordt ook wel gevoeligheid of true positive rate (TPR) genoemd.
De recall moet zo hoog mogelijk zijn.
F-1 Score
Het is vaak handig om precisie en recall te combineren tot een enkele metric, de F-1 score, vooral als u een eenvoudige manier nodig hebt om twee classifiers te vergelijken. De F-1-score is het harmonische gemiddelde van precisie en recall.
Het gewone gemiddelde behandelt alle waarden gelijk, terwijl het harmonische gemiddelde veel meer gewicht geeft aan lage waarden, waardoor de extreme waarden zwaarder worden gestraft. Het resultaat is dat de classificeerder alleen een hoge F-1-score krijgt als zowel recall als precisie hoog zijn.
Receiver Operator Curve (ROC) & Area Under the Curve (AUC)
ROC-curve is een belangrijke classificatie-evaluatiemetriek. Zij vertelt ons hoe goed het model nauwkeurig heeft voorspeld. De ROC-curve toont de gevoeligheid van de classificator door het aantal ware positieven uit te zetten tegen het aantal fout-positieven. Als de classificeerder uitstekend is, zal het percentage waar-positieven toenemen en zal het gebied onder de curve dicht bij één liggen. Als de classificator vergelijkbaar is met willekeurig gokken, zal het percentage waar-positieven lineair toenemen met het percentage fout-positieven. Hoe beter de AUC-maatstaf, hoe beter het model.
Cumulative Accuracy Profile Curve
Het CAP van een model vertegenwoordigt het cumulatieve aantal positieve uitkomsten langs de y-as versus het overeenkomstige cumulatieve aantal van een classificerende parameters langs de x-as. De CAP is te onderscheiden van de receiver operating characteristic (ROC), die het percentage waar-positieven uitzet tegen het percentage vals-positieven. De CAP-curve wordt zelden gebruikt in vergelijking met de ROC-curve.
Bedenk een model dat voorspelt of een klant een product zal kopen. Als een klant willekeurig wordt geselecteerd, is er een kans van 50% dat hij het product zal kopen. Het cumulatieve aantal elementen waarvoor de klant koopt, zou lineair stijgen naar een maximumwaarde die overeenkomt met het totale aantal klanten. Deze verdeling wordt het “willekeurige” CAP genoemd. Het is de blauwe lijn in het bovenstaande diagram. Bij een perfecte voorspelling daarentegen wordt precies bepaald welke klant het product zal kopen, zodat het maximum aantal klanten dat het product koopt, wordt bereikt met een minimum aantal klanten dat uit de elementen kan worden gekozen. Dit levert een steile lijn op de CAP-curve op die vlak blijft zodra het maximum is bereikt, wat de “perfecte” CAP is. Het wordt ook wel de “ideale” lijn genoemd en is de grijze lijn in de figuur hierboven.
Eindelijk zou een model moeten voorspellen waar het de juiste voorspellingen maximaliseert en dichter bij een perfecte modellijn komt.