Herken je de No Free Lunch theorem nog? Nee, het gaat (nog) niet over eten. Maar als je honger hebt, neem dan een snack voordat je deze post leest – ik wil niet dat je over je toetsenbord kwijlt.

Ik zal je eraan herinneren – geen enkel algoritme is optimaal over de verzameling van alle mogelijke situaties. Machine learning-algoritmen zijn delicate instrumenten die je afstemt op basis van de probleemset, vooral in supervised machine learning.

Vandaag zullen we zien hoe populaire classificatiealgoritmen werken en ons helpen, bijvoorbeeld, om prachtige, sappige tomaten uit te zoeken en te sorteren.

Hoe classificatie werkt

We voorspellen elke dag of een ding naar een bepaalde klasse kan worden verwezen. Om een voorbeeld te geven: classificatie helpt ons beslissingen te nemen bij het plukken van tomaten in een supermarkt (“groen”, “perfect”, “rot”). In machine learning-termen kennen we een label van een van de klassen toe aan elke tomaat die we in onze handen houden.

De efficiëntie van uw Tomato Picking Contest (sommigen zouden het een classificatiemodel noemen) hangt af van de nauwkeurigheid van de resultaten. Hoe vaker u zelf naar de supermarkt gaat (in plaats van uw ouders of uw geliefde te sturen), hoe beter u zult worden in het uitzoeken van tomaten die vers en lekker zijn.

Computers zijn net zo! Om een classificatiemodel te leren uitkomsten nauwkeurig te voorspellen, heeft het veel trainingsvoorbeelden nodig.

4 soorten classificatie

4 soorten classificatietaken in machine learning

Binaire

Binaire classificatie betekent dat er twee klassen zijn om mee te werken die zich tot elkaar verhouden als waar en onwaar. Stel je voor dat je een enorme bak met gele en rode tomaten voor je hebt staan. Maar volgens het recept voor je Italiaanse pasta heb je alleen de rode nodig.

Wat doe je dan? Uiteraard gebruik je label-encoding en in dit geval wijs je 1 toe aan “rood” en 0 aan “niet rood”. Tomaten sorteren is nog nooit zo eenvoudig geweest.

Binaire classificatie

Multiklasse

Wat ziet u op deze foto?

tomaten

Rode biefstuktomaten. Cherrytomaten. Cocktailtomaten. Heirloomtomaten.

Er is hier geen zwart of wit, “normaal” of “abnormaal” zoals in een binaire classificatie. We verwelkomen alle soorten prachtige groenten (of bessen) op onze tafel.

Wat u waarschijnlijk niet weet als u geen fan bent van tomaten koken, is dat niet alle tomaten even goed zijn voor hetzelfde gerecht. Rode biefstuktomaten zijn perfect voor salsa, maar je pekelt ze niet in. Cherrytomaten werken voor salades maar niet voor pasta. Het is dus belangrijk om te weten waar je mee te maken hebt.

Multiklass classificatie helpt ons om alle tomaten uit de doos te sorteren, ongeacht hoeveel klassen er zijn.

Multiklass classificatie

Multi-label

Multi-label classificatie wordt toegepast wanneer één invoer tot meer dan één klasse kan behoren, zoals een persoon die onderdaan is van twee landen.

Om met dit type classificatie te werken, moet u een model bouwen dat meerdere outputs kan voorspellen.

U hebt een multi-label classificatie nodig voor objectherkenning in foto’s. Bijvoorbeeld wanneer u niet alleen tomaten moet identificeren, maar ook verschillende andere soorten objecten in dezelfde afbeelding: appels, courgettes, uien, enz.

Belangrijke opmerking voor alle tomatenliefhebbers: Je kunt niet zomaar een binair of multiclass classificatie algoritme nemen en het direct toepassen op multi-label classificatie. Maar u kunt wel:

Multi-label classificatie

U kunt ook proberen een apart algoritme voor elke klasse te gebruiken om labels voor elke categorie te voorspellen.

Imbalanced

We werken met Imbalanced classificatie wanneer voorbeelden in elke klasse ongelijk verdeeld zijn.

Imbalanced classificatie wordt gebruikt voor fraudedetectiesoftware en medische diagnose. Het vinden van zeldzame en exquise biologisch geteelde tomaten die per ongeluk zijn gemorst in een grote stapel supermarkttomaten is een voorbeeld van onevenwichtige classificatie aangeboden door Gints, onze geweldige redacteur (als je nog andere voorbeelden hebt, tweet ze dan naar ons).

Ongebalanceerde classificatie

Ik raad je aan de fantastische blog van Machine Learning Mastery te bezoeken, waar je meer kunt lezen over de verschillende soorten classificatie en nog veel meer machine learning-materiaal kunt bestuderen.

Stappen om een classificatiemodel te bouwen

Als u eenmaal weet met wat voor soort classificatietaak u te maken hebt, is het tijd om een model te bouwen.

  1. Selecteer de classificator. U moet een van de ML-algoritmen kiezen die u op uw gegevens gaat toepassen.
  2. Train het. Je moet een training data set voor te bereiden met gelabelde resultaten (hoe meer voorbeelden, hoe beter).
  3. Voorspellen van de output. Gebruik het model om enkele resultaten te verkrijgen.
  4. Evalueer het classificatiemodel. Het is een goed idee om een validatieset van gegevens voor te bereiden die u niet in de training hebt gebruikt om de resultaten te controleren.

Laten we nu eens kijken naar de meest gebruikte classificatiealgoritmen.

De populairste classificatiealgoritmen

gewone classificatiealgoritmen

Scikit-Learn is een van de top ML-bibliotheken voor Python. Dus als je een model wilt bouwen, kijk er dan eens naar. Het biedt toegang tot veelgebruikte classifiers.

Logistische regressie

Logistische regressie wordt gebruikt voor binaire classificatie.

Dit algoritme maakt gebruik van een logistische functie om de waarschijnlijkheid te modelleren dat een uitkomst zich voordoet. Het is het nuttigst wanneer u wilt begrijpen hoe verschillende onafhankelijke variabelen een enkele uitkomstvariabele beïnvloeden.

Voorbeeldvraag: Zullen de neerslaghoeveelheden en de bodemsamenstelling leiden tot de bloei van tomaten of tot een vroegtijdige dood?

Logistische regressie heeft beperkingen; alle voorspellers moeten onafhankelijk zijn, en er mogen geen ontbrekende waarden zijn. Dit algoritme zal falen als er geen lineaire scheiding van waarden is.

Naive Bayes

Het Naive Bayes algoritme is gebaseerd op de stelling van Bayes. U kunt dit algoritme toepassen voor binaire en multiklasclassificatie en gegevens classificeren op basis van historische resultaten.

Voorbeeldtaak: ik moet rotte tomaten van de verse scheiden op basis van hun uiterlijk.

De voordelen van Naive Bayes zijn dat deze algoritmen snel te bouwen zijn: ze vereisen geen uitgebreide trainingsset en zijn ook snel in vergelijking met andere methoden. Maar omdat de prestaties van Bayesiaanse algoritmen afhangen van de nauwkeurigheid van de sterke aannames, kunnen de resultaten potentieel zeer slecht uitvallen.

Met behulp van de stelling van Bayes is het mogelijk om te vertellen hoe het optreden van een gebeurtenis de waarschijnlijkheid van een andere gebeurtenis beïnvloedt.

k-Nearest Neighbors

kNN staat voor “k-nearest neighbor” en is een van de eenvoudigste classificatiealgoritmen.

Het algoritme wijst objecten toe aan de klasse waartoe de meeste van zijn naaste buren in de multidimensionale kenmerkruimte behoren. Het getal k is het aantal naburige objecten in de kenmerkruimte dat wordt vergeleken met het geclassificeerde object.

Voorbeeld: Ik wil de soort van de tomaat voorspellen uit de soorten tomaten die erop lijken.

Om de ingangen met behulp van k-nearest neighbors te classificeren, moet u een aantal acties uitvoeren:

  • Bereken de afstand tot elk van de objecten in het trainingsmonster;
  • Selecteer k objecten van het trainingsmonster, waarvan de afstand tot het object minimaal is;
  • De klasse van het object dat moet worden geclassificeerd, is de klasse die het vaakst voorkomt bij de k-nearest neighbors.

Decision Tree

Decision trees zijn waarschijnlijk de meest intuïtieve manier om een besluitvormingsproces te visualiseren. Om een klasse-etiket van input te voorspellen, beginnen we bij de wortel van de boom. U moet de mogelijke ruimte in kleinere deelverzamelingen verdelen op basis van een beslissingsregel die u voor elk knooppunt hebt.

Hier volgt een voorbeeld:

beslissingsboomvoorbeeld

U blijft de mogelijke ruimte opdelen totdat u de bodem van de boom bereikt. Elk beslissingsknooppunt heeft twee of meer takken. De bladeren in het bovenstaande model bevatten de beslissing of een persoon geschikt is of niet.

Voorbeeld: U hebt een mand met verschillende tomaten en wilt de juiste kiezen om uw gerecht te verbeteren.

Typen Beslissingsbomen

Er zijn twee soorten bomen. Ze zijn gebaseerd op de aard van de doelvariabele:

  • Categorische Variabele Beslisboom.
  • Continue Variabele Beslisboom.

Daarom werken beslisbomen vrij goed met zowel numerieke als categorische gegevens. Een ander voordeel van beslisbomen is dat ze weinig voorbereiding van de gegevens vereisen.

Beslisbomen kunnen echter te ingewikkeld worden, wat tot overfitting leidt. Een belangrijk nadeel van deze algoritmen is dat kleine variaties in de trainingsgegevens ze onstabiel maken en tot geheel nieuwe bomen leiden.

Random Forest

Random forest classifiers gebruiken verschillende beslisbomen op verschillende deelmonsters van datasets. Het gemiddelde resultaat wordt genomen als de voorspelling van het model, wat de voorspellende nauwkeurigheid van het model in het algemeen verbetert en overfitting tegengaat.

Random Forests kunnen bijgevolg worden gebruikt om complexe machine-leerproblemen op te lossen zonder de nauwkeurigheid van de resultaten in het gedrang te brengen. Niettemin vragen ze meer tijd om een voorspelling te vormen en zijn ze uitdagender om te implementeren.

Lees meer over hoe random forests werken in de Towards Data Science blog.

Support Vector Machine

Support vector machines gebruiken een hyperplane in een N-dimensionale ruimte om de datapunten te classificeren. N is hier het aantal kenmerken. Het kan in principe elk getal zijn, maar hoe groter het is, des te moeilijker wordt het om een model te bouwen.

Je kunt je het hypervlak voorstellen als een lijn (voor een 2-dimensionale ruimte). Zodra je de 3-dimensionale ruimte passeert, wordt het voor ons moeilijk om het model te visualiseren.

Datapunten die aan verschillende kanten van het hypervlak vallen, worden aan verschillende klassen toegeschreven.

Voorbeeld: Een automatisch systeem dat tomaten sorteert op basis van hun vorm, gewicht en kleur.

Het hypervlak dat we kiezen, beïnvloedt direct de nauwkeurigheid van de resultaten. We zoeken dus naar het vlak dat de maximale afstand tussen datapunten van beide klassen heeft.

SVM’s laten nauwkeurige resultaten zien met minimale rekenkracht wanneer je veel features hebt.

Samenvattend

Zoals je ziet, kan machine learning zo eenvoudig zijn als het oprapen van groenten in de winkel. Maar er zijn veel details om in gedachten te houden als je het niet wilt verknoeien. Houd onze blog, Twitter en Medium in de gaten voor meer leuke dingen over machine learning.

Geef een antwoord

Het e-mailadres wordt niet gepubliceerd.