Maskinlæring er videnskaben (og kunsten) at programmere computere, så de kan lære af data.
Et forskningsområde, der giver computere evnen til at lære uden at være eksplicit programmeret. – Arthur Samuel, 1959
En bedre definition:
Et computerprogram siges at lære af erfaring E med hensyn til en bestemt opgave T og et bestemt præstationsmål P, hvis dets præstation på T, som målt ved P, forbedres med erfaring E. – Tom Mitchell, 1997
For eksempel er dit spamfilter et maskinlæringsprogram, der kan lære at markere spam efter at have fået eksempler på spam-e-mails, der er markeret af brugere, og eksempler på almindelige ikke-spam-e-mails (også kaldet “skinke”). De eksempler, som systemet bruger til at lære, kaldes træningssættet. I dette tilfælde er opgaven (T) at markere spam for nye e-mails, erfaringerne (E) er træningsdataene, og det er nødvendigt at definere præstationsmålet (P). Du kan f.eks. bruge forholdet mellem korrekt klassificerede e-mails som P. Dette særlige præstationsmål kaldes nøjagtighed, og det bruges ofte i klassificeringsopgaver, da det er en tilgang til superviseret læring.
Dyk dybereEn introduktion til maskinlæring for begyndere
Superviseret læring
I superviseret læring lærer algoritmer fra mærkede data. Efter at have forstået dataene bestemmer algoritmen, hvilken etiket der skal gives til nye data ved at knytte mønstre til de umærkede nye data.
Supervised learning kan opdeles i to kategorier: klassifikation og regression.
Klassifikation forudsiger, hvilken kategori dataene tilhører.
Nogle eksempler på klassifikation omfatter spamdetektering, churn-forudsigelse, følelsesanalyse, detektering af hunderacer og så videre.
Regression forudsiger en numerisk værdi baseret på tidligere observerede data.
Nogle eksempler på regression omfatter forudsigelse af huspriser, forudsigelse af aktiekurser, forudsigelse af højde-vægt osv.
Dyk dybereEn rundtur i de 10 bedste algoritmer for nybegyndere inden for maskinlæring
Klassifikation
Klassifikation er en teknik til at bestemme, hvilken klasse det afhængige hører til på grundlag af en eller flere uafhængige variabler.
Klassifikation bruges til at forudsige diskrete svar.
Logistisk regression
Logistisk regression er lidt ligesom lineær regression, men bruges, når den afhængige variabel ikke er et tal, men noget andet (f.eks, et “ja/nej”-svar). Den kaldes regression, men udfører klassifikation baseret på regressionen, og den klassificerer den afhængige variabel i en af klasserne.
Logistisk regression bruges til forudsigelse af output, der er binært, som nævnt ovenfor. Hvis et kreditkortselskab f.eks. opbygger en model for at beslutte, om der skal udstedes et kreditkort til en kunde eller ej, vil den modellere for, om kunden vil “misligholde” eller “ikke misligholde” sit kort.
Først udføres lineær regression på forholdet mellem variabler for at få modellen. Tærsklen for klassifikationslinjen antages at være på 0,5.
K-Nærmeste Naboer (K-NN)
K-NN-algoritmen er en af de enkleste klassificeringsalgoritmer, og den bruges til at identificere de datapunkter, der er opdelt i flere klasser, for at forudsige klassificeringen af et nyt prøvepunkt. K-NN er en ikke-parametrisk, doven læringsalgoritme. Den klassificerer nye tilfælde på grundlag af et lighedsmål (dvs, afstandsfunktioner).
K-NNN fungerer godt med et lille antal inputvariabler (p), men kæmper, når antallet af input er meget stort.
Support Vector Machine (SVM)
Support vector anvendes til både regression og klassifikation. Den er baseret på begrebet beslutningsplaner, der definerer beslutningsgrænser. Et beslutningsplan (hyperplan) er et plan, der adskiller mellem et sæt objekter, der har forskellige klassetilhørsforhold.
Den udfører klassifikation ved at finde det hyperplan, der maksimerer margenen mellem de to klasser ved hjælp af supportvektorer.
Læringen af hyperplanet i SVM sker ved at transformere problemet ved hjælp af noget lineær algebra (dvs, eksemplet ovenfor er en lineær kerne, som har en lineær separabilitet mellem hver variabel).
For højere dimensionelle data anvendes andre kerner som punkter og kan ikke let klassificeres. De specificeres i næste afsnit.
Kernel SVM
Kernel SVM indtager en kernefunktion i SVM-algoritmen og omdanner den til den krævede form, der afbilder data på en højere dimension, som er separerbar.
Typer af kernefunktion er:
- Linear SVM er den, vi diskuterede tidligere.
- I polynomial kernel skal graden af polynomiet angives. Den giver mulighed for krumme linjer i inputrummet.
- I radial basisfunktions- (RBF-) kernen anvendes den til ikke-lineært separerbare variabler. Til afstand anvendes metrisk kvadreret euklidisk afstand. Anvendelse af en typisk værdi af parameteren kan føre til en overtilpasning af vores data. Den bruges som standard i sklearn.
- Sigmoid kernel, der ligner logistisk regression, bruges til binær klassifikation.
Kernel trick bruger kernefunktionen til at transformere data til et højere dimensionelt funktionsrum og gør det muligt at udføre den lineære adskillelse til klassifikation.
Radial Basis Function (RBF)-kernel
RBF-kernens SVM-beslutningsområde er faktisk også et lineært beslutningsområde. Det, som RBF-kernel SVM faktisk gør, er at skabe ikke-lineære kombinationer af funktioner for at løfte prøverne op i et højere dimensionelt funktionsrum, hvor en lineær beslutningsgrænse kan bruges til at adskille klasser.
Så tommelfingerreglen er: Brug lineære SVM’er til lineære problemer og ikke-lineære kerner som RBF-kernen til ikke-lineære problemer.
Naive Bayes
Den naive Bayes-klassifikator er baseret på Bayes’ teorem med uafhængighedsantagelserne mellem prædiktorerne (dvs, den antager, at tilstedeværelsen af en egenskab i en klasse ikke er relateret til nogen anden egenskab). Selv om disse egenskaber afhænger af hinanden, eller af eksistensen af de andre egenskaber, er alle disse egenskaber uafhængigt af hinanden. Derfor navnet naive Bayes.
Baseret på naive Bayes anvendes Gaussian naive Bayes til klassifikation baseret på binomial (normal) fordeling af data.
- P(class|data) er den efterfølgende sandsynlighed for klasse(mål) givet prædiktor(attribut). Sandsynligheden for, at et datapunkt har en af de to klasser, givet datapunktet. Dette er den værdi, som vi søger at beregne.
- P(class) er den forudgående sandsynlighed for klasse.
- P(data|klasse) er sandsynligheden, som er sandsynligheden for prædiktor givet klasse.
- P(data) er den forudgående sandsynlighed for prædiktor eller den marginale sandsynlighed.
Steps
1. Beregn den forudgående sandsynlighed
P(klasse) = antal datapunkter i klassen/samlet antal observationer
P(gul) = 10/17
P(grøn) = 7/17
2. Beregn Marginal Likelihood
P(data) = Antal datapunkter, der ligner observationen/Total antal observationer
P(?) = 4/17
Værdien er til stede ved at kontrollere begge sandsynligheder.
3. Beregn sandsynlighed
P(data/klasse) = Antal observationer, der ligner klassen/Total antal punkter i klassen.
P(? /gul) = 1/7
P(?/grøn) = 3/10
4. Posterior sandsynlighed for hver klasse
5. Klassifikation
Desto højere sandsynlighed, desto højere er sandsynligheden for, at klassen tilhører den pågældende kategori som fra over 75 % sandsynlighed for, at punktet tilhører klassen grøn.
Multinomial, Bernoulli naive Bayes er de andre modeller, der anvendes til at beregne sandsynligheder. En naiv Bayes-model er således let at opbygge, uden kompliceret iterativ parameterestimation, hvilket gør den særligt anvendelig til meget store datasæt.
Decision Tree Classification
Decision tree opbygger klassifikations- eller regressionsmodeller i form af en træstruktur. Det opdeler et datasæt i mindre og mindre delmængder, samtidig med at et tilhørende beslutningstræ udvikles trinvis. Det endelige resultat er et træ med beslutningsknuder og bladknuder. Den følger Iterative Dichotomiser 3(ID3) algoritmestruktur til bestemmelse af opdelingen.
Entropi og informationsgevinst anvendes til at konstruere et beslutningstræ.
Entropi
Entropi er graden eller mængden af usikkerhed i tilfældigheden af elementer. Med andre ord er det et mål for urenhed.
Intuitivt fortæller den os om forudsigeligheden af en bestemt begivenhed. Entropi beregner homogeniteten af en prøve. Hvis prøven er fuldstændig homogen, er entropien nul, og hvis prøven er ligeligt fordelt, har den en entropi på én.
Informationsgevinst
Informationsgevinsten måler den relative ændring i entropien med hensyn til den uafhængige egenskab. Den forsøger at vurdere den information, som hver attribut indeholder. Ved konstruktion af et beslutningstræ drejer det sig om at finde den attribut, der giver den højeste informationsgevinst (dvs, de mest homogene grene).
Hvor Gain(T, X) er informationsgevinsten ved at anvende egenskaben X. Entropy(T) er entropien for hele sættet, mens det andet udtryk beregner entropien efter anvendelse af egenskaben X.
Information gain rangerer attributter til filtrering ved en given knude i træet. Rangordningen er baseret på den højeste entropi for informationsgevinst i hvert split.
En ulempe ved en beslutningstræ-model er overtilpasning, da den forsøger at tilpasse modellen ved at gå dybere ned i træningsmængden og derved reducere testnøjagtigheden.
Overfitting i beslutningstræer kan minimeres ved at beskære knuder.
Ensemblemetoder til klassifikation
En ensemble-model er et hold af modeller. Teknisk set består ensemblemodeller af flere overvågede læringsmodeller, der trænes individuelt, og resultaterne sammenlægges på forskellige måder for at opnå den endelige forudsigelse. Dette resultat har en højere forudsigelseskraft end resultaterne af hver af de konstituerende læringsalgoritmer uafhængigt af hinanden.
Random Forest Classification
Random Forest classifier er en ensemblealgoritme baseret på bagging dvs. bootstrap aggregation. Ensemblemetoder kombinerer mere end én algoritme af samme eller forskellig art til klassificering af objekter (dvs, f.eks. et ensemble af SVM, naive Bayes eller beslutningstræer.)
Den generelle idé er, at en kombination af læringsmodeller øger det samlede valgte resultat.
Dybe beslutningstræer kan lide af overfitting, men random forests forhindrer overfitting ved at oprette træer på tilfældige delmængder. Hovedårsagen er, at den tager gennemsnittet af alle forudsigelser, hvilket ophæver skævhederne.
Random forest tilføjer yderligere tilfældighed til modellen, mens træerne vokser. I stedet for at søge efter den vigtigste funktion, mens den opdeler en knude, søger den efter den bedste funktion blandt en tilfældig delmængde af funktioner. Dette resulterer i en stor diversitet, der generelt resulterer i en bedre model.
Gradient Boosting Classification
Gradient boosting classifier er en boosting ensemble-metode. Boosting er en måde at kombinere (ensemble) svage lærere på, primært for at reducere forudsigelsesbias. I stedet for at skabe en pulje af prædiktorer, som i bagging, producerer boosting en kaskade af dem, hvor hvert output er input til den følgende læringspartner. I en bagging-algoritme vokser træerne typisk parallelt for at få den gennemsnitlige forudsigelse på tværs af alle træerne, hvor hvert træ er bygget på en prøve af de oprindelige data. Gradient Boosting anvender derimod en sekventiel tilgang til at opnå forudsigelser i stedet for at parallelisere træopbygningsprocessen. Ved gradient boosting forudsiger hvert beslutningstræ fejlen i det foregående beslutningstræ – og dermed boostes (forbedres) fejlen (gradienten).
Working of Gradient Boosting
- Initialisér forudsigelser med et simpelt beslutningstræ.
- Beregn restværdien (faktisk-prædiktion).
- Byg et andet overfladisk beslutningstræ, der forudsiger restværdien baseret på alle de uafhængige værdier.
- Ajourfør den oprindelige forudsigelse med den nye forudsigelse multipliceret med indlæringshastigheden.
- Gentag trin to til fire i et bestemt antal gentagelser (antallet af gentagelser vil være antallet af træer).
Se dette indlæg: Gradient Boosting From Scratch
Klassifikationsmodellens præstationer
Forvirringsmatrix
En forvirringsmatrix er en tabel, der ofte bruges til at beskrive en klassifikationsmodels præstationer på et sæt testdata, for hvilke de sande værdier er kendt. Det er en tabel med fire forskellige kombinationer af forudsagte og faktiske værdier i tilfældet for en binær klassifikator.
Forvirringsmatrixen for et klassifikationsproblem med flere klasser kan hjælpe dig med at bestemme fejlmønstre.
For en binær klassifikator:
Et sandt positivt er et resultat, hvor modellen korrekt forudsiger den positive klasse. Tilsvarende er et sandt negativt et resultat, hvor modellen korrekt forudsiger den negative klasse.
Falsk positiv &Falsk negativ
Tegnene falsk positiv og falsk negativ bruges til at bestemme, hvor godt modellen forudsiger med hensyn til klassifikation. Et falsk positivt er et resultat, hvor modellen fejlagtigt forudsiger den positive klasse. Og et falsk negativt resultat er et resultat, hvor modellen fejlagtigt forudsiger den negative klasse. Jo flere værdier i hoveddiagonalen, jo bedre er modellen, mens den anden diagonal giver det dårligste resultat med hensyn til klassificering.
Falsk positiv
Et eksempel, hvor modellen fejlagtigt forudsagde den positive klasse. Modellen konkluderede f.eks., at en bestemt e-mail-meddelelse var spam (den positive klasse), men den pågældende e-mail-meddelelse var faktisk ikke spam. Det er som et advarselstegn om, at fejlen bør rettes, da det ikke er så alvorligt i forhold til falsk negativ.
Falsk positiv (type I-fejl) – når man afviser en sand nulhypotese
Falsk negativ
Et eksempel, hvor modellen fejlagtigt forudsagde den negative klasse. Modellen konkluderede f.eks., at en bestemt e-mail-meddelelse ikke var spam (den negative klasse), men den pågældende e-mail-meddelelse var faktisk spam. Det er som et faresignal, at fejlen bør rettes tidligt, da den er mere alvorlig end en falsk positiv.
Falsk negativ (type II-fejl) – når man accepterer en falsk nulhypotese.
Dette billede illustrerer ganske let ovenstående målepunkter. Mandens testresultater er et falsk positivt resultat, da en mand ikke kan være gravid. Kvindens testresultater er falsk negative, da hun tydeligvis er gravid.
Fra forvirringsmatrixen kan vi udlede nøjagtighed, præcision, tilbagekaldelse og F-1 score.
Nøjagtighed
Nøjagtighed er den brøkdel af forudsigelser, som vores model fik ret.
Nøjagtighed kan også skrives som
Nøjagtighed alene fortæller ikke hele historien, når man arbejder med et datasæt med ubalancerede klasser, hvor der er en betydelig ulighed mellem antallet af positive og negative etiketter. Præcision og tilbagekaldelse er bedre målestokke til evaluering af klasseubalancerede problemer.
Præcision
Ud af alle klasser er præcisionen, hvor meget vi forudsagde korrekt.
Præcisionen bør være så høj som muligt.
R tilbagekaldelse
Ud af alle de positive klasser er tilbagekaldelse, hvor meget vi forudsagde korrekt. Det kaldes også følsomhed eller true positive rate (TPR).
Recall bør være så høj som muligt.
F-1 Score
Det er ofte praktisk at kombinere præcision og recall i en enkelt måleenhed kaldet F-1 score, især hvis du har brug for en enkel måde at sammenligne to klassifikatorer på. F-1-score er det harmoniske gennemsnit af præcision og tilbagekaldelse.
Det almindelige gennemsnit behandler alle værdier lige meget, mens det harmoniske gennemsnit giver meget mere vægt til lave værdier og dermed straffer de ekstreme værdier mere. Som følge heraf vil klassifikatoren kun få en høj F-1 score, hvis både recall og precision er høje.
Receiver Operator Curve (ROC) & Area Under the Curve (AUC)
ROC-kurven er en vigtig klassifikationsevalueringsmetrik. Den fortæller os, hvor godt modellen har forudsagt nøjagtigt. ROC-kurven viser klassifikatorens følsomhed ved at plotte andelen af rigtige positive resultater i forhold til andelen af falske positive resultater. Hvis klassifikatoren er fremragende, vil andelen af sande positive tal stige, og området under kurven vil ligge tæt på et. Hvis klassifikatoren svarer til et tilfældigt gæt, vil den rigtige positive rate stige lineært med den falske positive rate. Jo bedre AUC-målet er, jo bedre er modellen.
Cumulative Accuracy Profile Curve
Cap af en model repræsenterer det kumulative antal positive resultater langs y-aksen i forhold til det tilsvarende kumulative antal af en klassificerende parametre langs x-aksen. CAP’en adskiller sig fra den operationelle modtagerkarakteristik (ROC), som viser den sande positive rate i forhold til den falske positive rate. CAP-kurven anvendes sjældent i forhold til ROC-kurven.
Og tænk på en model, der forudsiger, om en kunde vil købe et produkt. Hvis en kunde udvælges tilfældigt, er der 50 % chance for, at han/hun vil købe produktet. Det kumulative antal elementer, som kunden køber, vil stige lineært mod en maksimalværdi, der svarer til det samlede antal kunder. Denne fordeling kaldes den “tilfældige” CAP. Det er den blå linje i ovenstående diagram. En perfekt forudsigelse bestemmer på den anden side nøjagtigt, hvilken kunde der vil købe produktet, således at den maksimale kunde, der køber ejendommen, vil blive nået med et minimum af kundevalg blandt elementerne. Dette giver en stejl linje på CAP-kurven, der forbliver flad, når det maksimale er nået, hvilket er den “perfekte” CAP. Den kaldes også den “ideelle” linje og er den grå linje i figuren ovenfor.
I sidste ende bør en model forudsige, hvor den maksimerer de korrekte forudsigelser og kommer tættere på en perfekt modellinje.