Har du lyst til å komme i gang med maskinlæring?
Jeg har laget en enkel og enkel opplæring for nybegynnere. Sammen vil vi gå gjennom de grunnleggende trinnene for å trene en maskinlæringsmodell.
Mens jeg forklarer trinnene for å trene en modell én etter én, vil jeg også gi et veldig grunnleggende eksempel på et maskinlæringsproblem. Så hvis du vil følge med, kan du laste ned dette eksempeldatasettet fra dette link.
Dette er bare et eksempeldatasett for å hjelpe deg i gang med maskinlæring.
Vi har 18 verdier for mennesker i forskjellige aldre og kjønn som har favorittmusikken sin definert. Ved å bruke funksjonene "alder" og "kjønn" vil vi prøve å gjette hvilken musikksjanger som er favoritten deres.
Merk: 1 og 0 er tilordnet kjønn som kvinne og mann i dette datasettet.
Men hvis du ikke vil følge eksemplet, er det også helt greit. Jeg vil forklare alle disse trinnene i detalj. Så, la oss dykke inn!
Første ting å vite
Før vi går inn i trinnene for å trene en modell, la oss avklare noen punkter. Maskinlæring er en kunstig intelligens disiplin som fokuserer på å utvikle algoritmer som kan lære av data.
For å gjøre dette trenes maskinlæringsmodeller på et datasett som lærer modellen hvordan den skal lage riktige spådommer eller klassifiseringer på ferske, tidligere ukjente data.
Så, hva er disse modellene? EN maskinlæringsmodell ligner på en oppskrift som en datamaskin bruker for å generere dataspådommer eller valg.
En modell, som en oppskrift, følger et sett med instruksjoner for å evaluere data og generere spådommer eller vurderinger basert på mønstre funnet i dataene. Jo mer data modellen er trent på, jo mer nøyaktige blir spådommene.
Hva slags modeller kan vi trene?
La oss se hva som er de grunnleggende maskinlæringsmodellene.
- Lineær regresjon: en modell som forutsier en kontinuerlig målvariabel fra en eller flere inngangsvariabler.
- Nevrale nettverk: et nettverk av koblede noder som kan lære å oppdage kompliserte mønstre i data.
- Decision Trees: en beslutningsmetode bygget på en kjede av forgrenende if-else-utsagn.
- Clustering: et sett med modeller som grupperer sammenlignbare datapunkter basert på likhet.
- Logistisk regresjon: en modell for binære klassifiseringsproblemer der målvariabelen har to potensielle verdier.
- Decision Trees: en beslutningsmetode bygget på en kjede av forgrenende if-else-utsagn.
- Random Forest: en ensemblemodell sammensatt av en rekke beslutningstrær. De brukes ofte til klassifiserings- og regresjonsapplikasjoner.
- K-Nearest Neighbors: en modell som forutsier målvariabelen ved å bruke de k-nærmeste datapunktene i treningssettet.
Avhengig av problemet og datasettet vårt, bestemmer vi hvilken maskinlæringsmodell som passer best for vår situasjon. Likevel kommer vi tilbake til dette senere. La oss nå begynne å trene modellen vår. Jeg håper du allerede har lastet ned datasett hvis du vil følge vårt eksempel.
Dessuten anbefaler jeg å ha Jupyter Notebook installert på din lokale maskin og bruke den til maskinlæringsprosjektene dine.
1: Definer problemet
Første etappe i trene en maskinlæring modellen definerer problemet som skal løses. Dette innebærer å velge variablene du ønsker å forutse (kjent som målvariabelen) og variablene som skal brukes til å generere disse spådommene (kjent som funksjoner eller prediktorer).
Du bør også bestemme hva slags maskinlæringsproblem du prøver å løse (klassifisering, regresjon, klynging og så videre) og hvilken type data du trenger for å samle inn eller få til å trene modellen din.
Hvilken modell du bruker vil bli bestemt av typen maskinlæringsproblem du har som mål å løse. Klassifisering, regresjon og klynging er de tre primære kategoriene av maskinlæringsutfordringer. Når du ønsker å forutsi en kategorisk variabel, for eksempel om en e-post er spam eller ikke, bruker du klassifisering.
Når du ønsker å forutsi en kontinuerlig variabel, som prisen på et hus, bruker du regresjon. Clustering brukes til å sette sammen sammenlignbare dataelementer basert på deres fellestrekk.
Hvis vi ser på vårt eksempel; Utfordringen vår er å bestemme en persons foretrukne musikalske stil ut fra kjønn og alder. Vi vil bruke et datasett med 18 personer for dette eksemplet og informasjon om deres alder, kjønn og favorittmusikalske stil.
2. Klargjør dataene
Etter at du har spesifisert problemet, må du forberede dataene for opplæring av modellen. Dette innebærer rengjøring og behandling av dataene. Så at vi kan sikre at det er i et format som maskin læring algoritme kan bruke.
Dette kan inkludere aktiviteter som sletting av manglende verdier, transformering av kategoriske data til numeriske data og skalering eller normalisering av dataene for å sikre at alle egenskaper er på samme skala.
Slik sletter du for eksempel manglende verdier:
import pandas as pd
# Load the data into a pandas DataFrame
data = pd.read_csv('data.csv')
# Check for missing values
print(data.isnull().sum())
# Drop rows with missing values
data.dropna(inplace=True)
# Check that all missing values have been removed
print(data.isnull().sum())
Liten merknad: I linjen o "import pandas as pd",
vi importerer Pandas-biblioteket og tildeler det aliaset "pd" for å gjøre det lettere å referere til funksjonene og objektene senere i koden.
Pandas er en velkjent modul for Python for datamanipulering og -analyse, spesielt når du arbeider med strukturerte eller tabellformede data.
I vårt eksempel på å bestemme musikksjangre. Vi importerer først datasettet. Jeg har kalt det music.csv, men du kan navngi det som du vil.
For å forberede dataene for opplæring av en maskinlæringsmodell, deler vi den inn i attributter (alder og kjønn) og mål (musikksjanger).
Vi deler i tillegg dataene inn i 80:20 trenings- og testsett for å vurdere ytelsen til modellen vår og unngå overtilpasning.
# Import necessary libraries
import pandas as pd
from sklearn.model_selection import train_test_split
# Load data from CSV file/code>
music_data = pd.read_csv('music.csv')
# Split data into features and target
X = music_data.drop(columns=['genre'])
y = music_data['genre']
# Split data into training and testing sets
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2)
3. Velg en maskinlæringsmodell.
Etter at du har forberedt dataene, må du velge en maskinlæringsmodell som passer til din oppgave.
Det er flere algoritmer å velge mellom, for eksempel beslutningstrær, logistisk regresjon, støttevektormaskiner, nevrale nettverk og andre. Algoritmen du velger vil bli bestemt av typen problem du prøver å svare på, typen data du har og ytelsesbehovene dine.
Vi bruker en beslutningstreklassifikator for dette eksemplet fordi vi jobber med et klassifiseringsproblem (forutsi kategoriske data).
# Import necessary libraries
from sklearn.tree import DecisionTreeClassifier
Her er en visualisering av hvordan Decision Tree Classifier fungerer:
4. Tren modellen
Du kan begynne å trene modellen når du har valgt en akseptabel maskinlæringsalgoritme. Dette innebærer å bruke de tidligere genererte dataene for å utdanne algoritmen om hvordan man kan lage spådommer på ferske, tidligere usett data.
Algoritmen vil modifisere sine interne parametere under trening for å minimere forskjellen mellom dens predikerte verdier og de faktiske verdiene i treningsdataene. Mengden data som brukes til trening, så vel som algoritmens spesifikke parametere, kan alle ha en effekt på nøyaktigheten til den resulterende modellen.
I vårt spesifikke eksempel, nå som vi har bestemt oss for en metode, kan vi trene modellen vår med treningsdataene.
# Train the decision tree classifier
model = DecisionTreeClassifier()
model.fit(X_train, y_train)
5. Vurder modellen
Etter at modellen har blitt opplært, må den evalueres på nye data for å sikre at den er nøyaktig og pålitelig. Dette innebærer å teste modellen med data som ikke ble brukt under trening og sammenligne dens projiserte verdier med de faktiske verdiene i testdataene.
Denne gjennomgangen kan hjelpe til med å identifisere eventuelle modellfeil, for eksempel overtilpasning eller undertilpasning, og kan føre til eventuell finjustering som kan være nødvendig.
Ved å bruke testdataene vil vi vurdere riktigheten av modellen vår.
# Import necessary libraries
from sklearn.metrics import accuracy_score
# Predict the music genre for the test data
predictions = model.predict(X_test)
# Evaluate the model's accuracy
accuracy = accuracy_score(y_test, predictions)
print("Accuracy: ", accuracy)
Nøyaktighetspoengene er ikke så verst foreløpig. 🙂 For å forbedre nøyaktighetsscore kan du alltid rense dataene mer eller prøve forskjellige maskinlæringsmodeller for å se hvilken som gir høyest poengsum.
6. Finjuster modellen
Hvis modellens effektivitet ikke er tilstrekkelig nok, kan du finjustere den ved å endre ulike algoritmeparametere eller ved å eksperimentere helt med nye algoritmer.
Denne prosedyren kan omfatte eksperimentering med alternative læringshastigheter, modifisering av regulariseringsinnstillinger eller endring av antall eller størrelse på skjulte lag i et nevralt nettverk.
7. Bruk modellen
Når du er fornøyd med modellens ytelse, kan du begynne å bruke den til å generere spådommer om nye data.
Dette kan innebære å mate inn ferske data i modellen og bruke modellens lærte parametere for å generere spådommer på disse dataene, eller integrere modellen i en bredere applikasjon eller et bredere system.
Vi kan bruke modellen vår til å generere spådommer om nye data etter at vi er fornøyd med nøyaktigheten. Du kan prøve forskjellige verdier av kjønn og alder.
# Test the model with new data
new_data = [[25, 1], [30, 0]]
predictions = model.predict(new_data)
print("Predictions: ", predictions)
Wrap Up
Vi har fullført opplæringen av vår første maskinlæringsmodell.
Jeg håper du har funnet det nyttig. Du kan nå prøve å bruke forskjellige maskinlæringsmodeller som Lineær regresjon eller Random Forest.
Det er mange datasett og utfordringer i kaggle hvis du ønsker å forbedre kodingen og forståelsen av maskinlæring.
Legg igjen en kommentar