En djupgående guide till övervakad klassificering genom maskininlärning

Maskininlärning är vetenskapen (och konsten) att programmera datorer så att de kan lära sig av data.

Ett studieområde som ger datorer förmågan att lära sig utan att vara uttryckligen programmerade. – Arthur Samuel, 1959

En bättre definition:

Ett datorprogram sägs lära sig av erfarenhet E med avseende på en viss uppgift T och ett visst prestandamått P, om dess prestanda på T, mätt med P, förbättras med erfarenhet E. – Tom Mitchell, 1997

Till exempel är ditt skräppostfilter ett maskininlärningsprogram som kan lära sig att flagga skräppost efter att ha fått exempel på skräppost som flaggats av användare och exempel på vanlig skräppost som inte är skräppost (även kallad ”skinka”). De exempel som systemet använder för att lära sig kallas för träningsuppsättning. I det här fallet är uppgiften (T) att flagga skräppost för nya e-postmeddelanden, erfarenheten (E) är träningsdata och prestationsmåttet (P) måste definieras. Du kan till exempel använda förhållandet mellan korrekt klassificerade e-postmeddelanden som P. Detta särskilda prestationsmått kallas noggrannhet och används ofta i klassificeringsuppgifter eftersom det är en metod för övervakad inlärning.

Dyk djupareEn introduktion till maskininlärning för nybörjare

Övervakad inlärning

I övervakad inlärning lär sig algoritmerna från märkta data. Efter att ha förstått uppgifterna bestämmer algoritmen vilken etikett som ska ges till nya uppgifter genom att associera mönster till de omärkta nya uppgifterna.

Supervised learning kan delas in i två kategorier: klassificering och regression.

Klassificering förutsäger vilken kategori uppgifterna tillhör.

Några exempel på klassificering är upptäckt av skräppost, förutsägelse av churn, sentimentanalys, upptäckt av hundras och så vidare.

Regression förutsäger ett numeriskt värde baserat på tidigare observerade data.

Enskilda exempel på regression är förutsägelse av huspris, aktiekurs, höjd-vikt och så vidare.

Dyk djupareEn rundvandring bland de tio bästa algoritmerna för nybörjare inom maskininlärning

Klassificering

Klassificering är en teknik för att bestämma vilken klass som det beroende tillhör baserat på en eller flera oberoende variabler.

Klassificering används för att förutsäga diskreta svar.

övervakad maskininlärning illustration

Logistisk regression

Logistisk regression är ungefär som linjär regression, men används när den beroende variabeln inte är ett tal utan något annat (t.ex, ett ”ja/nej”-svar). Den kallas regression men utför klassificering baserat på regressionen och den klassificerar den beroende variabeln i någon av klasserna.

supervised machine learning logistic regression

Logistisk regression används för prediktion av utdata som är binära, enligt vad som anges ovan. Om till exempel ett kreditkortsföretag bygger en modell för att avgöra om det ska utfärda ett kreditkort till en kund eller inte, kommer det att modellera för om kunden kommer att ”försumma” eller ”inte försumma” sitt kort.

övervakad maskininlärning linjär regression
Linjär regression

För det första utförs linjär regression på förhållandet mellan variablerna för att få fram en modell. Tröskelvärdet för klassificeringslinjen antas ligga på 0,5.

supervised machine logistic sigmoid function
Logistic Sigmoid Function

Logistisk funktion tillämpas på regressionen för att få fram sannolikheterna för att den ska tillhöra någon av klasserna.

Den ger loggen av sannolikheten för att händelsen ska inträffa till loggen av sannolikheten att den inte ska inträffa. I slutändan klassificerar den variabeln utifrån den högre sannolikheten för att den tillhör någon av klasserna.

Supervised machine learning log

K-Nearest Neighbors (K-NN)

K-NN-algoritmen är en av de enklaste klassificeringsalgoritmerna och används för att identifiera datapunkterna som är uppdelade i flera klasser för att förutsäga klassificeringen av en ny provpunkt. K-NN är en icke-parametrisk, lat inlärningsalgoritm. Den klassificerar nya fall baserat på ett likhetsmått (dvs, distansfunktioner).

övervakad maskininlärningsklassificering knn 1övervakad maskininlärningsklassificering knn 2övervakad maskininlärningsklassificering knn 3övervakad maskininlärningsklassificering knn 4övervakad maskininlärningsklassificering knn 5

K-NNN fungerar bra med ett litet antal ingångsvariabler (p), men har svårt att hävda sig när antalet ingångar är mycket stort.

Support Vector Machine (SVM)

Support Vector används för både regression och klassificering. Den bygger på begreppet beslutsplan som definierar beslutsgränser. Ett beslutsplan (hyperplan) är ett plan som skiljer mellan en uppsättning objekt som har olika klasstillhörighet.

Supervised machine learning support vectors

Den utför klassificering genom att hitta det hyperplan som maximerar marginalen mellan de två klasserna med hjälp av stödvektorer.

supervised machine learning classification svc

Inlärningen av hyperplanet i SVM görs genom att omvandla problemet med hjälp av viss linjär algebra (dvs, exemplet ovan är en linjär kärna som har en linjär separerbarhet mellan varje variabel).

För högdimensionella data används andra kärnor som punkter och kan inte klassificeras enkelt. De specificeras i nästa avsnitt.

Kernel SVM

Kernel SVM tar in en kärnfunktion i SVM-algoritmen och omvandlar den till den erforderliga formen som kartlägger data på en högre dimension som är separerbar.

Typer av kärnfunktion är:

Supervised machine learning classification kernel function types
Typ av kärnfunktioner
  1. Linjär SVM är den som vi diskuterade tidigare.
  2. I polynomkärnan ska graden av polynomet anges. Den möjliggör krökta linjer i inmatningsutrymmet.
  3. I den radiella basfunktionskärnan (RBF) används den för icke-linjärt separerbara variabler. För avstånd används metriskt kvadrerat euklidiskt avstånd. Användning av ett typiskt värde för parametern kan leda till överanpassning av våra data. Den används som standard i sklearn.
  4. Sigmoid kernel, som liknar logistisk regression, används för binär klassificering.

supervised machine learning classification kernel trick

Kernel trick använder kernelfunktionen för att omvandla data till ett högre dimensionellt egenskapsutrymme och gör det möjligt att utföra linjär separation för klassificering.

Radial Basis Function (RBF) Kernel

RBF-kärnans SVM-beslutsregion är faktiskt också en linjär beslutsregion. Vad RBF kernel SVM faktiskt gör är att skapa icke-linjära kombinationer av egenskaper för att lyfta upp proverna till ett högre dimensionellt egenskapsområde där en linjär beslutsgräns kan användas för att skilja klasser åt.

supervised machine learning classification radial basis function

Tumregeln är alltså: använd linjära SVM för linjära problem och icke-linjära kärnor som RBF-kärnan för icke-linjära problem.

Naive Bayes

Den naiva Bayes-klassificatorn bygger på Bayes’ teorem med antaganden om oberoende mellan prediktorerna (dvs, den antar att närvaron av en egenskap i en klass inte är relaterad till någon annan egenskap). Även om dessa egenskaper beror på varandra, eller på förekomsten av de andra egenskaperna, är alla dessa egenskaper oberoende av varandra. Därför namnet naive Bayes.

supervised machine learning classification bayes theorem

Baserat på naive Bayes används Gaussian naive Bayes för klassificering baserad på binomial (normal) fördelning av data.

supervised machine learning classification gaussian naive bayes

  • P(class|data) är den efterföljande sannolikheten för klass(mål) givet prediktor(attribut). Sannolikheten för att en datapunkt har endera klassen, givet datapunkten. Detta är det värde som vi vill beräkna.
  • P(class) är den tidigare sannolikheten för klass.
  • P(data|class) är sannolikheten, som är sannolikheten för prediktor givet klass.
  • P(data) är den tidigare sannolikheten för prediktor eller marginell sannolikhet.
supervised machine learning classification nb

Steg

1. Beräkna prioriterad sannolikhet

P(klass) = Antal datapunkter i klassen/Total antal observationer

P(gul) = 10/17

P(grön) = 7/17

2. Beräkna marginell sannolikhet

P(data) = Antal datapunkter som liknar observationen/Total antal observationer

P(?) = 4/17

Värdet finns i att kontrollera båda sannolikheterna.

3. Beräkna sannolikhet

P(data/klass) = Antal observationer som liknar klassen/Totalt antal punkter i klassen.

P(?/gult) = 1/7

P(?/grön) = 3/10

4. Posterior sannolikhet för varje klass

supervised machine learning classification posterior probability

5. Klassificering

supervised machine learning classification

Desto högre sannolikhet, desto mer hör klassen till den kategorin som från över 75 % sannolikhet hör punkten till klassen grön.

Multinomial, Bernoulli naive Bayes är andra modeller som används för att beräkna sannolikheter. En naiv Bayes-modell är alltså lätt att bygga, utan komplicerad iterativ parameteruppskattning, vilket gör den särskilt användbar för mycket stora datamängder.

Klassificering i form av beslutsträd

Det är lätt att bygga upp klassificerings- eller regressionsmodeller i form av en trädstruktur. Det bryter ner en datamängd i allt mindre delmängder samtidigt som ett tillhörande beslutsträd utvecklas stegvis. Slutresultatet är ett träd med beslutsnoder och bladnoder. Den följer Iterative Dichotomiser 3(ID3) algoritmstruktur för att bestämma uppdelningen.

supervised machine learning classification decision trees

Entropi och informationsvinst används för att konstruera ett beslutsträd.

Entropi

Entropi är graden eller mängden av osäkerhet i slumpmässigheten hos element. Med andra ord är det ett mått på orenhet.

supervised machine learning classification entropi

Intuitivt talar den om förutsägbarheten hos en viss händelse. Entropin beräknar homogeniteten hos ett prov. Om provet är helt homogent är entropin noll, och om provet är jämnt fördelat har det en entropi på ett.

Informationsvinst

Informationsvinsten mäter den relativa förändringen i entropin med avseende på det oberoende attributet. Den försöker uppskatta den information som varje attribut innehåller. Att konstruera ett beslutsträd handlar om att hitta det attribut som ger den högsta informationsvinsten (dvs, de mest homogena grenarna).

supervised machine learning classification information gain

Varvid Gain(T, X) är informationsvinsten genom att tillämpa funktionen X. Entropy(T) är entropin för hela uppsättningen, medan den andra termen beräknar entropin efter att funktionen X har tillämpats.

Informationsvinsten rangordnar attribut för filtrering vid en given nod i trädet. Rangordningen baseras på den högsta entropin för informationsvinst i varje delning.

Nackdelen med en beslutsträdsmodell är överanpassning, eftersom den försöker anpassa modellen genom att gå djupare in i träningsuppsättningen och därmed minska testnoggrannheten.

Supervised machine learning classification overfitting

Overfitting i beslutsträd kan minimeras genom att beskära noder.

Ensemblemetoder för klassificering

En ensemble-modell är ett team av modeller. Tekniskt sett består ensemblemodeller av flera övervakade inlärningsmodeller som tränas individuellt och resultaten slås samman på olika sätt för att uppnå den slutliga förutsägelsen. Detta resultat har högre prediktionskraft än resultaten av någon av de ingående inlärningsalgoritmerna oberoende av varandra.

Supervised machine learning classification ensemble methods

Random Forest Classification

Random forest classifier är en ensemblealgoritm som bygger på bagging dvs. bootstrap aggregation. Ensemblemetoder kombinerar mer än en algoritm av samma eller olika slag för att klassificera objekt (dvs, en ensemble av till exempel SVM, naive Bayes eller beslutsträd.)

supervised machine learning classification bagging

Den allmänna idén är att en kombination av inlärningsmodeller ökar det totala resultatet som väljs ut.

supervised machine learning classification random forrest

Djupa beslutsträd kan drabbas av överanpassning, men slumpmässiga skogar förhindrar överanpassning genom att skapa träd på slumpmässiga delmängder. Huvudskälet är att den tar genomsnittet av alla förutsägelser, vilket upphäver biaserna.

Random forest lägger till ytterligare slumpmässighet till modellen medan träden växer. Istället för att söka efter den viktigaste funktionen när en nod delas upp, söker den efter den bästa funktionen bland en slumpmässig delmängd av funktioner. Detta resulterar i en stor mångfald som i allmänhet ger en bättre modell.

Gradient Boosting Classification

Gradient boosting classifier är en boosting ensemble-metod. Boosting är ett sätt att kombinera (ensemble) svaga inlärare, främst för att minska prediktionsbias. Istället för att skapa en pool av prediktorer, som i bagging, producerar boosting en kaskad av dem, där varje utdata är indata för den följande läraren. I en bagging-algoritm odlas träd vanligtvis parallellt för att få fram den genomsnittliga förutsägelsen för alla träd, där varje träd byggs på ett urval av originaldata. Gradient boosting å andra sidan använder ett sekventiellt tillvägagångssätt för att få fram förutsägelser i stället för att parallellisera trädbyggandet. I gradient boosting förutsäger varje beslutsträd felet i det föregående beslutsträdet – och ökar (förbättrar) därmed felet (gradienten).

supervised machine learning classification boosting

Working of Gradient Boosting

  1. Initialisera förutsägelser med ett enkelt beslutsträd.
  2. Beräkna restvärdet (faktiskt-prediktion).
  3. Bygg ett annat grunt beslutsträd som förutsäger restvärdet baserat på alla oberoende värden.
  4. Uppdatera den ursprungliga förutsägelsen med den nya förutsägelsen multiplicerad med inlärningshastigheten.
  5. Upprepa steg två till fyra för ett visst antal iterationer (antalet iterationer är antalet träd).
Supervised machine learning classification rf gb

Kolla in det här inlägget: Gradient Boosting From Scratch

Klassificeringsmodellens prestanda

Konfusionsmatris

En konfusionsmatris är en tabell som ofta används för att beskriva en klassificeringsmodells prestanda på en uppsättning testdata för vilka de sanna värdena är kända. Det är en tabell med fyra olika kombinationer av förutspådda och verkliga värden i fallet för en binär klassificerare.

supervised machine learning classification multiclass matrix

Förvirringsmatrisen för ett klassificeringsproblem med flera klasser kan hjälpa dig att bestämma felmönster.

För en binär klassificerare:

supervised machine learning classification binary confusion matrix

Ett sant positivt resultat är ett resultat där modellen korrekt förutsäger den positiva klassen. På samma sätt är en sann negativ ett resultat där modellen korrekt förutsäger den negativa klassen.

Falskt positivt &Falskt negativt

Uttrycken falskt positivt och falskt negativt används för att avgöra hur väl modellen förutsäger med avseende på klassificering. Ett falskt positivt resultat är ett resultat där modellen felaktigt förutsäger den positiva klassen. Och en falsk negativ är ett resultat där modellen felaktigt förutsäger den negativa klassen. Ju fler värden i huvuddiagonalen, desto bättre modell, medan den andra diagonalen ger det sämsta resultatet för klassificering.

Falskt positivt

Ett exempel där modellen felaktigt förutspådde den positiva klassen. Modellen har till exempel dragit slutsatsen att ett visst e-postmeddelande var skräppost (den positiva klassen), men det e-postmeddelandet var i själva verket inte skräppost. Det är som en varningssignal om att misstaget bör rättas till eftersom det inte är något större problem jämfört med falskt negativ.

Falskt positiv (typ I-fel) – när man förkastar en sann nollhypotes

supervised machine learning classification falskt positiv

Falskt negativ

Ett exempel där modellen felaktigt förutspådde den negativa klassen. Modellen har t.ex. dragit slutsatsen att ett visst e-postmeddelande inte var skräppost (den negativa klassen), men det e-postmeddelandet var faktiskt skräppost. Det är som en farosignal som innebär att misstaget bör rättas till tidigt eftersom det är allvarligare än ett falskt positivt resultat.

Falskt negativt (typ II-fel) – när man accepterar en falsk nollhypotes.

supervised machine learning classification false negative

Den här bilden illustrerar helt enkelt ovanstående mätvärden. Mannens testresultat är falskt positivt eftersom en man inte kan vara gravid. Kvinnans testresultat är falskt negativa eftersom hon uppenbarligen är gravid.

Från förvirringsmatrisen kan vi härleda noggrannhet, precision, återkallelse och F-1-poäng.

Näringsnoggrannhet

Näringsnoggrannhet är den andel av förutsägelserna som vår modell fick rätt.

Supervised machine learning classification accuracy

Accuracy kan också skrivas som

supervised machine learning classification accuracy math

Accuracy alone doesn’t tell the full story when working with a class-imbalanced data set, where there is a significant disparity between the number of positive and negative labels. Precision och återkallelse är bättre mått för att utvärdera klassmässigt obalanserade problem.

Precision

Om alla klasser är precisionen hur mycket vi förutspådde korrekt.

supervised machine learning classification precision

Precisionen bör vara så hög som möjligt.

återkallelse

Om alla positiva klasser är återkallelsen hur mycket vi förutspådde korrekt. Det kallas också känslighet eller true positive rate (TPR).

supervised machine learning classification recall

Recall bör vara så hög som möjligt.

F-1 Score

Det är ofta bekvämt att kombinera precision och recall till ett enda mått som kallas F-1 score, särskilt om du behöver ett enkelt sätt att jämföra två klassificerare. F-1-poängen är det harmoniska medelvärdet av precision och recall.

Supervised machine learning classification f1 score

Det vanliga medelvärdet behandlar alla värden lika, medan det harmoniska medelvärdet ger mycket mer vikt åt låga värden och därmed straffar de extrema värdena mer. Detta leder till att klassificeraren endast får en hög F-1-poäng om både recall och precision är höga.

Receiver Operator Curve (ROC) & Area Under the Curve (AUC)

ROC-kurvan är ett viktigt utvärderingsmått för klassificering. Den talar om för oss hur väl modellen har förutsagt korrekt. ROC-kurvan visar klassificerarens känslighet genom att plotta andelen sant positiva resultat mot andelen falskt positiva resultat. Om klassificeraren är enastående kommer andelen sant positiva att öka och arean under kurvan kommer att ligga nära ett. Om klassificeraren liknar en slumpmässig gissning kommer andelen sant positiva att öka linjärt med andelen falskt positiva. Ju bättre AUC-måttet är, desto bättre modell.

Supervised machine learning classification roc

Cumulative Accuracy Profile Curve

CAP för en modell representerar det kumulativa antalet positiva utfall längs y-axeln jämfört med motsvarande kumulativa antal av en klassificerande parametrar längs x-axeln. CAP skiljer sig från Receiver Operating Characteristik (ROC), som visar den sant positiva frekvensen mot den falskt positiva frekvensen. CAP-kurvan används sällan jämfört med ROC-kurvan.

Supervised machine learning classification cap curve

Tänk på en modell som förutspår om en kund kommer att köpa en produkt. Om en kund väljs ut slumpmässigt finns det en 50-procentig chans att den kommer att köpa produkten. Det kumulativa antalet element för vilka kunden köper skulle stiga linjärt mot ett maximalt värde som motsvarar det totala antalet kunder. Denna fördelning kallas den ”slumpmässiga” CAP. Det är den blå linjen i diagrammet ovan. En perfekt förutsägelse, å andra sidan, bestämmer exakt vilken kund som kommer att köpa produkten, så att det maximala antalet kunder som köper egenskapen kommer att uppnås med ett minimalt antal kundval bland elementen. Detta ger en brant linje på CAP-kurvan som förblir platt när det maximala värdet väl är uppnått, vilket är den ”perfekta” CAP-kurvan. Den kallas också för den ”ideala” linjen och är den grå linjen i figuren ovan.

I slutändan bör en modell förutsäga där den maximerar de korrekta förutsägelserna och närmar sig en perfekt modelllinje.

Lämna ett svar

Din e-postadress kommer inte publiceras.