Introductie tot Machine Learning in Python

Machine learning is het geven van computers de mogelijkheid om te leren zonder ze expliciet te programmeren. Dit gebeurt door gegevens aan computers te geven en ze om te zetten in beslissingsmodellen die vervolgens worden gebruikt voor toekomstige voorspellingen.

In deze tutorial zullen we het hebben over machine learning en enkele van de fundamentele concepten die nodig zijn om aan de slag te gaan met machine learning. We zullen ook een paar Python-voorbeelden verzinnen om bepaalde elementen of gebeurtenissen te voorspellen.

Introductie tot Machine Learning

Machinaal leren is een technologie die probeert te leren van ervaringen. Als een mens kun je bijvoorbeeld leren schaken gewoon door andere mensen te observeren die schaken. Op dezelfde manier worden computers geprogrammeerd door ze gegevens aan te bieden waaruit ze leren en kunnen ze toekomstige elementen of omstandigheden voorspellen.

Laten we bijvoorbeeld zeggen dat je een programma wilt schrijven dat kan vertellen of een bepaald type fruit een sinaasappel of een citroen is. Je zou het misschien gemakkelijk vinden om zo'n programma te schrijven en het zal de vereiste resultaten opleveren, maar je zou ook kunnen merken dat het programma niet effectief werkt voor grote datasets. Dit is waar machine learning in het spel komt.

Er zijn verschillende stappen betrokken bij machine learning:

  1. verzameling van gegevens
  2. filteren van gegevens
  3. gegevensanalyse
  4. algoritme training
  5. testen van het algoritme
  6. gebruik het algoritme voor toekomstige voorspellingen

Machinaal leren maakt gebruik van verschillende soorten algoritmen om patronen te vinden en deze algoritmen worden in twee groepen ingedeeld:

  • leren onder toezicht
  • onbewaakt leren

Leren onder toezicht

Begeleide leren is de wetenschap van het trainen van een computer om elementen te herkennen door het geven van voorbeeldgegevens. De computer leert er vervolgens van en is in staat om toekomstige datasets te voorspellen op basis van de geleerde gegevens.

U kunt bijvoorbeeld een computer trainen om spamberichten te filteren op basis van informatie uit het verleden.

Bewaakt leren is in veel toepassingen gebruikt, b.v. Facebook, om afbeeldingen te zoeken op basis van een bepaalde beschrijving. U kunt nu afbeeldingen op Facebook zoeken met woorden die de inhoud van de foto beschrijven. Omdat de sociale netwerksite al een database heeft met ondertitelde afbeeldingen, is het in staat om de beschrijving naar functies van foto's te zoeken en te matchen met een zekere nauwkeurigheid.

Er zijn slechts twee stappen betrokken bij gesuperviseerd leren:

  • opleiding
  • testing

Enkele van de bewaakte leeralgoritmen omvatten:

  • Beslissingsbomen
  • ondersteuning vectormachines
  • naïeve Bayes
  • k-dichtstbijzijnde buur
  • lineaire regressie

Voorbeeld

We gaan een eenvoudig programma schrijven om te demonstreren hoe begeleid leren werkt met de Sklearn-bibliotheek en de Python-taal. Sklearn is een machine-learningbibliotheek voor de Python-programmeertaal met een reeks functies zoals algoritmen voor meerdere analyses, regressie en clustering.

Sklearn werkt ook goed samen met de NumPy- en SciPy-bibliotheken.

Installeer Sklearn

De installatiehandleiding van Sklearn biedt een zeer eenvoudige manier om het voor meerdere platforms te installeren. Het vereist verschillende afhankelijkheden:

  • Python (> = 2.7 of> = 3.3),
  • NumPy (> = 1.82)
  • SciPy (> = 0.13.3)

Als u al deze afhankelijkheden heeft, kunt u Sklearn installeren op dezelfde manier als:

pip install -U scikit-learn

Een eenvoudigere manier is om eenvoudig Anaconda te installeren. Dit zorgt voor alle afhankelijkheden, zodat u zich geen zorgen hoeft te maken over het één voor één installeren.

Om te testen of Sklearn correct werkt, importeert u het eenvoudig als volgt vanuit een Python-interpreter:

importeer sklearn

Als er geen fout optreedt, bent u klaar om te gaan.

Nu we klaar zijn met de installatie, laten we teruggaan naar ons probleem. We willen onderscheid kunnen maken tussen verschillende dieren. Daarom zullen we een algoritme ontwerpen dat specifiek kan aangeven of een bepaald dier een paard of een kip is.

We moeten eerst enkele voorbeeldgegevens van elk type dier verzamelen. Sommige voorbeeldgegevens worden weergegeven in de onderstaande tabel.

Hoogte inches) Gewicht (kg)
Temperatuur (Celsius)
Label
7
0.6
40 Kip (0)
7
0.6 41
Kip (0)
37
0.8 37
Paard (1)
37
0.8 38
Paard (1)

De steekproefgegevens die we hebben verkregen, geven enkele van de gemeenschappelijke kenmerken van de twee dieren en gegevens van twee van de dieren. Hoe groter de voorbeeldgegevens, hoe nauwkeuriger en minder vertekend de resultaten zullen zijn.

Met dit type gegevens kunnen we een algoritme coderen en trainen om een ​​dier te herkennen op basis van de getrainde waarden en het classificeren als een paard of een kip. Nu gaan we verder en schrijven we het algoritme dat de klus zal klaren.

Importeer eerst de boommodule van Sklearn.

van sklearn import tree

Definieer de functies die u wilt gebruiken om de dieren te classificeren.

kenmerken = [[7, 0.6, 40], [7, 0.6, 41], [37, 600, 37], [37, 600, 38]]

Definieer de uitvoer die elke classificator zal geven. Een kip wordt vertegenwoordigd door 0, terwijl een paard wordt vertegenwoordigd door 1.

#labels = [kip, kip, paard, paard] # we gebruiken 0 om een ​​kip voor te stellen en 1 om een ​​paardetiket te vertegenwoordigen = [0, 0, 1, 1] 

Vervolgens definiëren we de classifier die gebaseerd zal zijn op een beslissingsboom.

classifier = tree.DecisionTreeClassifier ()

Voer of plaats uw gegevens aan de classifier.

classifier.fit (functies, labels) 

De volledige code voor het algoritme wordt hieronder weergegeven.

van sklearn import tree kenmerken = [[7, 0.6, 40], [7, 0.6, 41], [37, 600, 37], [37, 600, 38]] #labels = [kip, kip, paard, paard ] labels = [0, 0, 1, 1] classif = tree.DecisionTreeClassifier () classif.fit (functies, labels)

We kunnen nu een gegeven reeks gegevens voorspellen. Hier leest u hoe u een dier met een hoogte van 7 inch, een gewicht van 0,6 kg en een temperatuur van 41 kunt voorspellen:

van sklearn import tree kenmerken = [[7, 0.6, 40], [7, 0.6, 41], [37, 600, 37], [37, 600, 38]] #labels = [kip, kip, paard, paard ] labels = [0, 0, 1, 1] classif = tree.DecisionTreeClassifier () classif.fit (functies, labels) print classif.predict ([[7, 0.6, 41]]) #output # [0] of een Kip

Hier leest u hoe u een dier met een hoogte van 38 inch, een gewicht van 600 kg en een temperatuur van 37,5 kunt voorspellen:

van sklearn import tree kenmerken = [[7, 0.6, 40], [7, 0.6, 41], [37, 600, 37], [37, 600, 38]] #labels = [kip, kip, paard, paard ] labels = [0, 0, 1, 1] classif = tree.DecisionTreeClassifier () classif.fit (functies, labels) print classif.predict ([[38, 600, 37.5]]) # uitvoer # [1] of een Paard 

Zoals je hierboven kunt zien, heb je het algoritme getraind om alle kenmerken en namen van de dieren te leren, en de kennis van deze gegevens wordt gebruikt voor het testen van nieuwe dieren.

Niet-gecontroleerd leren

Niet-gesuperviseerd leren is wanneer u uw machine traint met alleen een aantal ingangen. De machine kan dan een verband vinden tussen de invoergegevens en andere gegevens die u mogelijk wilt voorspellen. Anders dan bij gesuperviseerd leren, waarbij u een machine presenteert met wat gegevens om op te trainen, is onbewaakt leren bedoeld om de computer patronen of relaties tussen verschillende gegevensreeksen te laten vinden.

Niet-gesuperviseerd leren kan verder worden onderverdeeld in:

  • clustering
  • vereniging

clustering: Clustering betekent het inherent groeperen van gegevens. U kunt bijvoorbeeld het winkelgedrag van consumenten classificeren en gebruiken voor reclame door de consument te targeten op basis van zijn aankopen en winkelgewoontes..

Vereniging: Association is waar u regels identificeert die grote sets van uw gegevens beschrijven. Dit type leren kan van toepassing zijn bij het koppelen van boeken op basis van auteur of categorie, of het nu gaat om motiverende, fictieve of educatieve boeken.

Enkele populaire unsupervised het leren algoritmen omvatten:

  • k betekent clusteren
  • hiërarchische clustering

Niet-gecontroleerd leren zal in de nabije toekomst een belangrijke technologie worden. Dit komt door het feit dat er veel niet-gefilterde gegevens zijn die nog niet zijn gedigitaliseerd.

Conclusie

Ik hoop dat deze tutorial je heeft geholpen om aan de slag te gaan met machine learning. Dit is slechts een introductie-machine. Leren heeft veel te bieden, en dit is slechts een fractie van wat machine learning kan doen.

Aarzel ook niet om te zien wat we beschikbaar hebben voor de verkoop en om te studeren in de Envato-markt, en aarzel niet om vragen te stellen en uw waardevolle feedback te geven met behulp van de onderstaande feed.

Uw beslissing om een ​​geautomatiseerd algoritme onder toezicht of zonder toezicht te gebruiken, is afhankelijk van verschillende factoren, zoals de structuur en de grootte van de gegevens..

Machinaal leren kan worden toegepast op bijna alle gebieden van ons leven, bijvoorbeeld op het gebied van fraudepreventie, het personaliseren van nieuwsfeeds in sociale mediasites om te voldoen aan de voorkeuren van gebruikers, filtering van e-mail en malware, weersvoorspellingen en zelfs in de e-commercesector om het koopgedrag van consumenten te voorspellen.