Introduktion till maskinlärning i Python

Maskininlärning handlar om att ge datorer möjlighet att lära sig utan att uttryckligen programmera dem. Detta görs genom att ge data till datorer och få dem att omvandla data till beslutsmodeller som sedan används för framtida förutsägelser.

I denna handledning kommer vi att tala om maskininlärning och några av de grundläggande begreppen som krävs för att komma igång med maskininlärning. Vi kommer också att utforma några Python-exempel för att förutse vissa element eller händelser.

Introduktion till maskinlärande

Maskininlärning är en typ av teknik som syftar till att lära av erfarenhet. Som en människa kan du till exempel lära dig att spela schack genom att observera andra som spelar schack. På samma sätt programmeras datorer genom att ge dem data från vilka de lär sig och sedan kan förutsäga framtida element eller villkor.

Låt oss exempelvis säga att du vill skriva ett program som kan berätta om en viss typ av frukt är en apelsin eller en citron. Det kan hända att du enkelt skriver ett sådant program och det ger de önskade resultaten, men det kan också hända att programmet inte fungerar effektivt för stora dataset. Här kommer maskininlärning i spel.

Det finns olika steg involverade i maskininlärning:

  1. insamling av data
  2. filtrering av data
  3. dataanalys
  4. algoritmsträning
  5. testning av algoritmen
  6. Använda algoritmen för framtida förutsägelser

Maskininlärning använder olika typer av algoritmer för att hitta mönster, och dessa algoritmer är indelade i två grupper:

  • övervakat lärande
  • oövervakat lärande

Övervakad lärande

Övervakat lärande är vetenskapen om att träna en dator för att identifiera element genom att ge provdata. Datorn lär sig då och kan förutsäga framtida dataset baserat på de lärdata.

Till exempel kan du träna en dator för att filtrera bort skräppostmeddelanden baserat på tidigare information.

Övervakat lärande har använts i många applikationer, t.ex. Facebook, för att söka bilder baserat på en viss beskrivning. Du kan nu söka bilder på Facebook med ord som beskriver innehållet på fotot. Eftersom den sociala nätverkssidan redan har en databas med bildtexter, kan den söka och matcha beskrivningen till funktioner från bilder med viss noggrannhet.

Det finns bara två steg involverade i övervakat lärande:

  • Träning
  • testning

Några av de övervakade inlärningsalgoritmerna innefattar:

  • beslut träd
  • stöd vektor maskiner
  • naiva Bayes
  • k-närmaste granne
  • linjär regression

Exempel

Vi ska skriva ett enkelt program för att visa hur övervakat lärande fungerar med Sklearn-biblioteket och Python-språket. Sklearn är ett maskininlärningsbibliotek för Python-programmeringsspråket med en rad funktioner som flera analys-, regressions- och klustringsalgoritmer.

Sklearn samverkar också bra med NumPy och SciPy-biblioteken.

Installera Sklearn

Installationsguiden för Sklearn erbjuder ett mycket enkelt sätt att installera det för flera plattformar. Det kräver flera beroenden:

  • Python (> = 2,7 eller> = 3,3),
  • NumPy (> = 1,82)
  • SciPy (> = 0,13,3)

Om du redan har dessa beroenden kan du installera Sklearn så enkelt som:

pip installera -U scikit-learn

Ett enklare sätt är att helt enkelt installera Anaconda. Detta tar hand om alla beroenden så att du inte behöver oroa dig för att installera dem en efter en.

För att testa om Sklearn körs ordentligt, importerar du det enkelt från en Python tolk enligt följande:

importera sklearn

Om inget fel inträffar är det bra att gå.

Nu när vi är färdiga med installationen, låt oss komma tillbaka till vårt problem. Vi vill kunna skilja mellan olika djur. Så vi kommer att designa en algoritm som kan berätta specifikt om ett visst djur är antingen en häst eller en kyckling.

Vi behöver först samla några provdata från varje typ av djur. Vissa provdata visas i tabellen nedan.

Höjd (tum) vikt (kg)
Temperatur (Celsius)
Märka
7
0,6
40 Kyckling (0)
7
0,6 41
Kyckling (0)
37
0,8 37
Häst (1)
37
0,8 38
Häst (1)

De provdata vi har erhållit ger några av de gemensamma egenskaperna hos de två djuren och data från två av djuren. Ju större provdata, desto mer exakta och mindre partiella blir resultatet.

Med denna typ av data kan vi koda en algoritm och träna den för att identifiera ett djur baserat på de utbildade värdena och klassificera det antingen som en häst eller en kyckling. Nu ska vi gå vidare och skriva den algoritm som kommer att få jobbet gjort.

Först importera trädmodulen från Sklearn.

från sklearn import träd

Definiera de funktioner du vill använda för att klassificera djuren.

funktioner = [[7, 0,6, 40], [7, 0,6, 41], [37, 600, 37], [37, 600, 38]]

Definiera utgången som varje klassificerare ska ge. En kyckling representeras av 0, medan en häst representeras av 1.

#labels = [kyckling, kyckling, häst, häst] # vi använder 0 för att representera en kyckling och 1 för att representera en hästlabel = [0, 0, 1, 1] 

Vi definierar sedan klassificeringsenheten som kommer att baseras på ett beslutsträd.

classifier = tree.DecisionTreeClassifier ()

Mata in eller anpassa din data till klassificeringsenheten.

classifier.fit (funktioner, etiketter) 

Den fullständiga koden för algoritmen visas nedan.

från sklearn importera trädegenskaper = [[7, 0,6, 40], [7, 0,6, 41], [37, 600, 37], [37, 600, 38]] #labels = [kyckling, kyckling, häst, häst ] etiketter = [0, 0, 1, 1] classif = tree.DecisionTreeClassifier () classif.fit (funktioner, etiketter)

Vi kan nu förutsäga en viss uppsättning data. Så här förutspår du ett djur med en höjd av 7 tum, en vikt på 0,6 kg och en temperatur på 41:

från sklearn importera trädegenskaper = [[7, 0,6, 40], [7, 0,6, 41], [37, 600, 37], [37, 600, 38]] #labels = [kyckling, kyckling, häst, häst ] etiketter = [0, 0, 1, 1] classif = tree.DecisionTreeClassifier () classif.fit (funktioner, etiketter) skriv ut classif.predict ([[7, 0,6, 41]]) #output # [0] eller a Kyckling

Så här förutspår du ett djur med en höjd av 38 tum, en vikt på 600 kg och en temperatur på 37,5:

från sklearn importera trädegenskaper = [[7, 0,6, 40], [7, 0,6, 41], [37, 600, 37], [37, 600, 38]] #labels = [kyckling, kyckling, häst, häst ] etiketter = [0, 0, 1, 1] classif = tree.DecisionTreeClassifier () classif.fit (funktioner, etiketter) print classif.predict ([[38, 600, 37.5]]) # utdata # [1] eller Häst 

Som du kan se ovan har du utbildat algoritmen för att lära dig alla egenskaper och namn på djuren och kunskapen om dessa data används för att testa nya djur.

Unsupervised Learning

Unsupervised lärande är när du tränar din maskin med bara en uppsättning ingångar. Maskinen kommer då att kunna hitta en relation mellan ingångsdata och alla andra som du kanske vill förutsäga. Till skillnad från underlättad inlärning, där du presenterar en maskin med viss data för att träna på, är oövervakat lärande menat att datorn ska hitta mönster eller relationer mellan olika dataset.

Oövervakat lärande kan vidare indelas i:

  • klustring
  • förening

kluster: Clustering innebär att data grupperas i sig. Du kan till exempel klassificera konsumenternas shoppingvanor och använda den för reklam genom att rikta in konsumenterna baserat på deras inköp och shoppingvanor.

Förening: Föreningen är där du identifierar regler som beskriver stora uppsättningar av dina data. Denna typ av inlärning kan användas i att associera böcker baserat på författare eller kategori, oavsett motivation, fiktiv eller pedagogisk böcker.

Några av de populära oövervakade inlärningsalgoritmerna innefattar:

  • k-betyder klustring
  • hierarkisk klustring

Oövervakat lärande kommer att vara en viktig teknik inom en snar framtid. Detta beror på det faktum att det finns mycket ofiltrerad data som ännu inte har digitaliserats.

Slutsats

Jag hoppas att denna handledning har hjälpt dig att komma igång med maskininlärning. Det här är bara en introduktionsmaskin lärande har mycket att täcka, och det här är bara en bråkdel av vad maskininlärning kan göra.

Tveka inte heller att se vad vi har till salu och studera på Envato Market, och tveka inte att ställa några frågor och ge din värdefulla feedback genom att använda foderet nedan.

Ditt beslut att använda antingen en övervakad eller oövervakad maskininlärningsalgoritm beror på olika faktorer, såsom dataens struktur och storlek.

Maskininlärning kan tillämpas på nästan alla delar av våra liv, t.ex. i förebyggande av bedrägerier, anpassning av nyhetsflöden på sociala medier, för att passa användarnas preferenser, e-post och malwarefiltrering, väderprognoser och även i e-handelssektorn för att förutsäga konsumenthandelsvanor.