Kommer du ihåg teoremet No Free Lunch? Nej, den handlar inte om mat (ännu). Men om du är hungrig ska du ta ett mellanmål innan du läser det här inlägget – jag vill inte att du ska dregla över hela tangentbordet.

Jag ska påminna dig om att ingen algoritm är optimal över mängden av alla möjliga situationer. Algoritmer för maskininlärning är känsliga instrument som du ställer in utifrån problemställningen, särskilt vid övervakad maskininlärning.

I dag ska vi se hur populära klassificeringsalgoritmer fungerar och hjälper oss till exempel att plocka ut och sortera underbara, saftiga tomater.

Hur klassificering fungerar

Vi förutspår varje dag om en sak kan hänföras till en viss klass. För att ge ett exempel hjälper klassificering oss att fatta beslut när vi plockar tomater i en stormarknad (”gröna”, ”perfekta”, ”ruttna”). I termer av maskininlärning tilldelar vi varje tomat som vi håller i handen en etikett i en av klasserna.

Effektiviteten hos din tomatplockningstävling (somliga skulle kalla den en klassificeringsmodell) beror på hur exakta resultaten är. Ju oftare du själv går till snabbköpet (i stället för att skicka dit dina föräldrar eller din partner), desto bättre kommer du att bli på att välja ut färska och goda tomater.

Datorer är precis likadana! För att en klassificeringsmodell ska lära sig att förutsäga resultat korrekt behöver den många träningsexempel.

4 typer av klassificering

4 typer av klassificeringsuppgifter inom maskininlärning

Binär

Binär klassificering innebär att det finns två klasser att arbeta med som förhåller sig till varandra som sant och falskt. Tänk dig att du har en stor lådan med gula och röda tomater framför dig. Men i ditt italienska pastarecept står det att du bara behöver de röda.

Vad gör du? Självklart använder du etikettkodning och i det här fallet tilldelar du 1 till ”röd” och 0 till ”inte röd”. Att sortera tomater har aldrig varit enklare.

Binär klassificering

Multiklass

Vad ser du på det här fotot?

tomater

Röda bifftomater. Körsbärstomater. Cocktailtomater. Heirloomtomater.

Det finns inget svart och vitt här, ”normalt” och ”onormalt” som i binär klassificering. Vi välkomnar alla sorters underbara grönsaker (eller bär) till vårt bord.

Vad du förmodligen inte vet om du inte är ett fan av tomatmatlagning är att alla tomater inte är lika bra till samma maträtt. Röda bifftomater är perfekta för salsa men man lägger dem inte i salt. Körsbärstomater fungerar till sallader men inte till pasta. Så det är viktigt att veta vad man har att göra med.

Multiklassklassificering hjälper oss att sortera alla tomater från lådan oavsett hur många klasser det finns.

Multiklassklassificering

Multiklassklassificering

Multiklassklassificering tillämpas när en indata kan tillhöra mer än en klass, som en person som är medborgare i två länder.

För att arbeta med den här typen av klassificering måste du bygga en modell som kan förutsäga flera utdata.

Du behöver en multi-label-klassificering för objektigenkänning i foton. Till exempel när du behöver identifiera inte bara tomater utan även olika andra typer av objekt i samma bild: äpplen, zucchini, lök osv.

Vettigt meddelande för alla tomatälskare: Det går inte att bara ta en algoritm för binär klassificering eller klassificering med flera klasser och tillämpa den direkt på klassificering med flera etiketter. Men du kan använda:

Multilabelklassificering

Du kan också försöka använda en separat algoritm för varje klass för att förutsäga etiketter för varje kategori.

Ombalanserad

Vi arbetar med obalanserad klassificering när exemplen i varje klass är ojämnt fördelade.

Ombalanserad klassificering används för programvaror för upptäckt av bedrägerier och medicinsk diagnos. Att hitta sällsynta och utsökta biologiskt odlade tomater som av misstag spillts i en stor hög med tomater från snabbköpet är ett exempel på obalanserad klassificering som erbjuds av Gints, vår grymma redaktör (om du har några andra exempel, twittra dem till oss).

Ombalanserad klassificering

Jag rekommenderar att du besöker den fantastiska bloggen Machine Learning Mastery där du kan läsa om de olika typerna av klassificering och studera många fler material om maskininlärning.

Steg för att bygga en klassificeringsmodell

När du vet vilken typ av klassificeringsuppgift du har att göra med är det dags att bygga en modell.

  1. Välj klassificeraren. Du måste välja en av de ML-algoritmer som du kommer att tillämpa på dina data.
  2. Träna den. Du måste förbereda en träningsdatamängd med märkta resultat (ju fler exempel, desto bättre).
  3. Förutsäga resultatet. Använd modellen för att få några resultat.
  4. Utvärdera klassificeringsmodellen. Det är en bra idé att förbereda en valideringsuppsättning med data som du inte har använt vid träningen för att kontrollera resultaten.

Låt oss nu ta en titt på de mest använda klassificeringsalgoritmerna.

De populäraste klassificeringsalgoritmerna

gemensamma klassificeringsalgoritmer

Scikit-Learn är ett av de bästa ML-biblioteken för Python. Så om du vill bygga din modell kan du kolla in det. Det ger tillgång till allmänt använda klassificerare.

Logistisk regression

Logistisk regression används för binär klassificering.

Denna algoritm använder en logistisk funktion för att modellera sannolikheten för att ett resultat ska inträffa. Den är mest användbar när du vill förstå hur flera oberoende variabler påverkar en enda utfallsvariabel.

Exempelfråga: Kommer nederbördsnivåerna och jordens sammansättning att leda till att tomater blir välmående eller dör i förtid?

Logistisk regression har begränsningar; alla prediktorer bör vara oberoende och det bör inte finnas några saknade värden. Denna algoritm kommer att misslyckas när det inte finns någon linjär separation av värden.

Naive Bayes

Naive Bayes-algoritmen är baserad på Bayes’ teorem. Du kan använda den här algoritmen för binär och flerklassig klassificering och klassificera data baserat på historiska resultat.

Exempel på uppgift: Jag måste skilja ruttna tomater från färska tomater baserat på deras utseende.

Fördelarna med Naive Bayes är att dessa algoritmer är snabba att bygga: de kräver ingen omfattande träningsuppsättning och är också snabba jämfört med andra metoder. Men eftersom Bayes-algoritmernas prestanda beror på noggrannheten i dess starka antaganden kan resultaten potentiellt bli mycket dåliga.

Med hjälp av Bayes teorem är det möjligt att säga hur förekomsten av en händelse påverkar sannolikheten för en annan händelse.

k-nästa grannar

kNN står för ”k-nästa grannar” och är en av de enklaste klassificeringsalgoritmerna.

Algoritmen tilldelar objekten den klass som de flesta av dess närmaste grannar i det flerdimensionella egenskapsområdet tillhör. Talet k är antalet grannobjekt i egenskapsutrymmet som jämförs med det klassificerade objektet.

Exempel: Jag vill förutsäga tomatens art utifrån de arter av tomater som liknar den.

För att klassificera indata med hjälp av k-nästa grannar måste du utföra en uppsättning åtgärder:

  • Beräkna avståndet till vart och ett av objekten i träningsurvalet;
  • Välj k objekt i träningsurvalet, till vilka avståndet är minimalt;
  • Klassen för objektet som ska klassificeras är den klass som förekommer mest frekvent bland de k-nästa grannarna.

Debattsträd

Debattsträd är förmodligen det mest intuitiva sättet att visualisera en beslutsprocess. För att förutsäga en klassbeteckning för indata börjar vi från roten av trädet. Du måste dela upp möjlighetsrummet i mindre delmängder baserat på en beslutsregel som du har för varje nod.

Här är ett exempel:

beslutsträdexempel

Du fortsätter att dela upp möjlighetsrummet tills du når trädets botten. Varje beslutsnod har två eller flera grenar. Bladen i modellen ovan innehåller beslutet om huruvida en person är lämplig eller inte.

Exempel: Du har en korg med olika tomater och vill välja rätt tomat för att förbättra din maträtt.

Typer av beslutsträd

Det finns två typer av träd. De är baserade på målvariabelns karaktär:

  • Debattsträd med kategorisk variabel.
  • Debattsträd med kontinuerlig variabel.

Därmed fungerar beslutsträd ganska bra med både numeriska och kategoriska data. En annan fördel med att använda beslutsträd är att de kräver lite dataförberedelse.

Däremot kan beslutsträd bli för komplicerade, vilket leder till överanpassning. En betydande nackdel med dessa algoritmer är att små variationer i träningsdata gör dem instabila och leder till helt nya träd.

Random Forest

Random forest-klassificerare använder sig av flera olika beslutsträd på olika delprov av dataset. Det genomsnittliga resultatet används som modellens prediktion, vilket förbättrar modellens prediktiva noggrannhet i allmänhet och motverkar överanpassning.

Följaktligen kan slumpmässiga skogar användas för att lösa komplexa maskininlärningsproblem utan att kompromissa med resultatens noggrannhet. De kräver dock mer tid för att bilda en förutsägelse och är mer utmanande att implementera.

Läs mer om hur slumpmässiga skogar fungerar i bloggen Towards Data Science.

Stödvektormaskin

Stödvektormaskiner använder ett hyperplan i ett N-dimensionellt utrymme för att klassificera datapunkterna. N är här antalet funktioner. Det kan i princip vara vilket antal som helst, men ju större det är, desto svårare blir det att bygga en modell.

Man kan föreställa sig hyperplanet som en linje (för ett tvådimensionellt utrymme). När man passerar 3-dimensionellt utrymme blir det svårt för oss att visualisera modellen.

Datapunkter som faller på olika sidor av hyperplanet tillskrivs olika klasser.

Exempel: Ett automatiskt system som sorterar tomater utifrån deras form, vikt och färg.

Den hyperplan som vi väljer påverkar direkt resultatens noggrannhet. Så vi söker efter det plan som har det största avståndet mellan datapunkter i båda klasserna.

SVMs visar exakta resultat med minimal beräkningskraft när man har många funktioner.

Summering up

Som du ser kan maskininlärning vara lika enkelt som att plocka upp grönsaker i butiken. Men det finns många detaljer att tänka på om du inte vill ställa till det. Håll dig uppdaterad på vår blogg, Twitter och Medium för mer häftig läsning om maskininlärning.

Lämna ett svar

Din e-postadress kommer inte publiceras.