Huskede du teoremet om ingen gratis frokost? Nej, det handler ikke om mad (endnu). Men hvis du er sulten, så få dig en snack, før du læser dette indlæg – jeg vil ikke have, at du savler ud over hele dit tastatur.

Jeg vil minde dig om, at ingen algoritme er optimal over mængden af alle mulige situationer. Maskinlæringsalgoritmer er delikate instrumenter, som du indstiller på baggrund af problemsættet, især i overvåget maskinlæring.

I dag vil vi se, hvordan populære klassifikationsalgoritmer fungerer og hjælper os f.eks. med at udvælge og sortere vidunderlige, saftige tomater.

Hvordan klassifikation fungerer

Vi forudsiger hver dag, om en ting kan henføres til en bestemt klasse. For at give et eksempel hjælper klassifikation os med at træffe beslutninger, når vi plukker tomater i et supermarked (“grønne”, “perfekte”, “rådne”). I maskinlæringstermer tildeler vi hver tomat, vi holder i hånden, en etiket af en af klasserne.

Effektiviteten af din tomatplukningskonkurrence (nogle ville kalde den en klassifikationsmodel) afhænger af nøjagtigheden af dens resultater. Jo oftere du selv går i supermarkedet (i stedet for at sende dine forældre eller din kæreste), jo bedre bliver du til at udvælge friske og lækre tomater.

Computere er lige så gode! For at en klassifikationsmodel kan lære at forudsige resultater præcist, har den brug for en masse træningseksempler.

4 typer af klassifikation

4 typer af klassifikationsopgaver i maskinlæring

Binær

Binær klassifikation betyder, at der er to klasser at arbejde med, der relaterer sig til hinanden som sandt og falsk. Forestil dig, at du har en stor kasse med gule og røde tomater foran dig. Men din smarte italienske pastaopskrift siger, at du kun skal bruge de røde.

Hvad gør du? Du bruger naturligvis label-kodning og tildeler i dette tilfælde 1 til “rød” og 0 til “ikke rød”. Det har aldrig været nemmere at sortere tomater.

Binær klassifikation

Multiklasse

Hvad ser du på dette billede?

tomater

Røde beefsteak-tomater. Kirsebærtomater. Cocktailtomater. Heirloom-tomater.

Der er ikke sort og hvidt her, “normalt” og “unormalt” som i binær klassifikation. Vi byder alle slags vidunderlige grøntsager (eller bær) velkommen på vores bord.

Hvad du sikkert ikke ved, hvis du ikke er fan af tomater i madlavningen, er, at ikke alle tomater er lige gode til den samme ret. Røde beefsteak-tomater er perfekte til salsa, men man sylter dem ikke. Kirsebærtomater fungerer til salater, men ikke til pasta. Så det er vigtigt at vide, hvad man har med at gøre.

Multiklasseklassifikation hjælper os med at sortere alle tomaterne fra kassen, uanset hvor mange klasser der er.

Multiklasseklassifikation

Multi-label

Multi-labelklassifikation anvendes, når et input kan tilhøre mere end én klasse, som f.eks. en person, der er statsborger i to lande.

For at arbejde med denne type klassifikation skal du opbygge en model, der kan forudsige flere outputs.

Du har brug for en multi-label-klassifikation til genkendelse af objekter i fotos. For eksempel når du skal identificere ikke kun tomater, men også forskellige andre typer objekter i det samme billede: æbler, zucchini, løg osv.

Vigtig note til alle tomatelskere: Det er ikke muligt at tage en binær klassifikationsalgoritme eller en klassifikationsalgoritme med flere klasser og anvende den direkte på klassifikation med flere mærker. Men du kan bruge:

Multi-label-klassifikation

Du kan også prøve at bruge en separat algoritme for hver klasse til at forudsige etiketter for hver kategori.

Imbalanceret

Vi arbejder med Imbalanceret klassifikation, når eksemplerne i hver klasse er ulige fordelt.

Imbalanceret klassifikation bruges til software til afsløring af svig og medicinsk diagnose. At finde sjældne og udsøgte biologisk dyrkede tomater, der ved et uheld er blevet spildt i en stor bunke supermarkedstomater, er et eksempel på ubalanceret klassifikation, som Gints, vores fantastiske redaktør, har tilbudt (hvis du har andre eksempler, så tweet dem til os).

Imbalanceret klassifikation

Jeg vil anbefale dig at besøge den fantastiske blog Machine Learning Mastery, hvor du kan læse om de forskellige typer af klassifikation og studere mange flere materialer om maskinlæring.

Stræk til opbygning af en klassifikationsmodel

Når du ved, hvilken type klassifikationsopgave du har med at gøre, er det tid til at opbygge en model.

  1. Vælg klassifikator. Du skal vælge en af de ML-algoritmer, som du vil anvende på dine data.
  2. Træn den. Du skal forberede et træningsdatasæt med mærkede resultater (jo flere eksempler, jo bedre).
  3. Forudsig output. Brug modellen til at få nogle resultater.
  4. Evaluer klassifikatormodellen. Det er en god idé at forberede et valideringssæt af data, som du ikke har brugt i træningen, for at kontrollere resultaterne.

Lad os nu se på de mest udbredte klassifikationsalgoritmer.

De mest populære klassifikationsalgoritmer

almindelige klassifikationsalgoritmer

Scikit-Learn er et af de bedste ML-biblioteker til Python. Så hvis du vil bygge din model, skal du tjekke det ud. Det giver adgang til almindeligt anvendte klassifikatorer.

Logistisk regression

Logistisk regression bruges til binær klassifikation.

Denne algoritme anvender en logistisk funktion til at modellere sandsynligheden for, at et resultat indtræffer. Den er mest nyttig, når man ønsker at forstå, hvordan flere uafhængige variabler påvirker en enkelt udfaldsvariabel.

Eksempel på spørgsmål:

Logistisk regression har begrænsninger; alle prædiktorer skal være uafhængige, og der må ikke være manglende værdier. Denne algoritme vil fejle, når der ikke er nogen lineær adskillelse af værdierne.

Naive Bayes

Naive Bayes-algoritmen er baseret på Bayes’ teorem. Du kan anvende denne algoritme til binær og multiklasseklassifikation og klassificere data på baggrund af historiske resultater.

Eksempelopgave: Jeg skal adskille rådne tomater fra de friske på baggrund af deres udseende.

Fordelene ved Naive Bayes er, at disse algoritmer er hurtige at opbygge: De kræver ikke et omfattende træningssæt og er også hurtige i forhold til andre metoder. Men da Bayes-algoritmernes ydeevne afhænger af nøjagtigheden af deres stærke antagelser, kan resultaterne potentielt blive meget dårlige.

Med Bayes’ teorem er det muligt at fortælle, hvordan forekomsten af en begivenhed påvirker sandsynligheden for en anden begivenhed.

k-Nærmeste naboer

kNN står for “k-nearest neighbor” og er en af de enkleste klassifikationsalgoritmer.

Algoritmen tildeler objekter til den klasse, som de fleste af deres nærmeste naboer i det flerdimensionelle funktionsrum tilhører. Tallet k er antallet af naboobjekter i funktionsrummet, der sammenlignes med det klassificerede objekt.

Eksempel: Jeg ønsker at forudsige tomatens art ud fra de arter af tomater, der ligner den.

For at klassificere input ved hjælp af k-nærmeste naboer skal du udføre en række handlinger:

  • Beregn afstanden til hvert af objekterne i træningsprøven;
  • Vælg k objekter i træningsprøven, hvor afstanden til dem er minimal;
  • Klassen af det objekt, der skal klassificeres, er den klasse, der forekommer hyppigst blandt de k-nærmeste naboer.

Beslutningstræ

Beslutningstræer er nok den mest intuitive måde at visualisere en beslutningsproces på. For at forudsige en klasselabel for input starter vi fra træets rod. Du skal opdele mulighedsrummet i mindre delmængder baseret på en beslutningsregel, som du har for hver knude.

Her er et eksempel:

Ekempel på beslutningstræ

Du bliver ved med at opdele mulighedsrummet, indtil du når bunden af træet. Hver beslutningsknude har to eller flere grene. Bladene i modellen ovenfor indeholder beslutningen om, hvorvidt en person er egnet eller ej.

Eksempel: Du har en kurv med forskellige tomater og ønsker at vælge den rigtige til at forbedre din ret.

Typer af beslutningstræer

Der findes to typer af træer. De er baseret på arten af målvariablen:

  • Categorisk variabel beslutningstræ.
  • Kontinuerlig variabel beslutningstræ.

Der er derfor beslutningstræer, der fungerer ganske godt med både numeriske og kategoriske data. Et andet plus ved at bruge beslutningstræer er, at de kræver lidt forberedelse af data.

Derimod kan beslutningstræer blive for komplicerede, hvilket fører til overfitting. En væsentlig ulempe ved disse algoritmer er, at små variationer i træningsdata gør dem ustabile og fører til helt nye træer.

Random Forest

Random Forest-klassifikatorer anvender flere forskellige beslutningstræer på forskellige delprøver af datasæt. Det gennemsnitlige resultat tages som modellens forudsigelse, hvilket forbedrer modellens forudsigelsesnøjagtighed generelt og bekæmper overfitting.

Som følge heraf kan tilfældige skove bruges til at løse komplekse maskinlæringsproblemer uden at gå på kompromis med nøjagtigheden af resultaterne. Ikke desto mindre kræver de mere tid til at danne en forudsigelse og er mere udfordrende at implementere.

Læs mere om, hvordan randomforests fungerer i bloggen Towards Data Science.

Support Vector Machine

Support vector machines bruger en hyperplan i et N-dimensionelt rum til at klassificere datapunkterne. N er her antallet af funktioner. Det kan i princippet være et hvilket som helst tal, men jo større det er, jo sværere bliver det at opbygge en model.

Man kan forestille sig hyperplanet som en linje (for et 2-dimensionelt rum). Når man passerer det 3-dimensionelle rum, bliver det svært for os at visualisere modellen.

Datapunkter, der falder på forskellige sider af hyperplanet, henføres til forskellige klasser.

Eksempel: Et automatisk system, der sorterer tomater ud fra deres form, vægt og farve.

Den hyperplan, som vi vælger, påvirker direkte nøjagtigheden af resultaterne. Så vi søger efter det plan, der har den største afstand mellem datapunkter fra begge klasser.

SVM’er viser præcise resultater med minimal beregningskraft, når man har mange funktioner.

Summen

Som du kan se, kan maskinlæring være lige så simpelt som at samle grøntsager op i butikken. Men der er mange detaljer, som man skal være opmærksom på, hvis man ikke vil ødelægge det. Hold dig opdateret på vores blog, Twitter og Medium for at få mere cool læsning om maskinlæring.

Skriv et svar

Din e-mailadresse vil ikke blive publiceret.