Vill du komma igång med maskininlärning?
Jag har skapat en enkel och lätt handledning för nybörjare. Tillsammans kommer vi att gå igenom de grundläggande stegen för att träna en maskininlärningsmodell.
Samtidigt som jag förklarar stegen för att träna en modell en efter en, kommer jag också att ge ett mycket grundläggande exempel på ett maskininlärningsproblem. Så om du vill följa med kan du ladda ner denna exempeldatauppsättning från denna länk.
Detta är bara ett exempel på en datauppsättning som hjälper dig att komma igång med maskininlärning.
Vi har 18 värderingar för människor i olika åldrar och kön som har sin favoritmusik definierad. Genom att använda funktionerna "ålder" och "kön" kommer vi att försöka gissa vilken musikgenre som är deras favorit.
Obs: 1 och 0 är tilldelade kön som kvinnor och män i denna datauppsättning.
Men om du inte vill följa exemplet är det också helt okej. Jag kommer att förklara alla dessa steg i detalj. Så, låt oss dyka in!
Första saker att veta
Innan vi går in i stegen för att träna en modell, låt oss förtydliga några punkter. Maskininlärning är en artificiell intelligens disciplin som fokuserar på att utveckla algoritmer som kan lära av data.
För att göra detta tränas maskininlärningsmodeller på en datauppsättning som lär modellen hur man gör korrekta förutsägelser eller klassificeringar på färska, tidigare okända data.
Så, vad är dessa modeller? A maskininlärningsmodell liknar ett recept som en dator använder för att generera dataförutsägelser eller val.
En modell, som ett recept, följer en uppsättning instruktioner för att utvärdera data och generera förutsägelser eller bedömningar baserat på mönster som finns i data. Ju mer data modellen tränas på, desto mer exakta blir dess förutsägelser.
Vilken typ av modeller kan vi träna?
Låt oss se vad som är de grundläggande maskininlärningsmodellerna.
- Linjär regression: en modell som förutsäger en kontinuerlig målvariabel från en eller flera indatavariabler.
- Neurala nätverk: ett nätverk av länkade noder som kan lära sig att upptäcka komplicerade mönster i data.
- Beslutsträd: ett beslutsfattande tillvägagångssätt byggt på en kedja av förgrenade if-else-uttalanden.
- Clustering: en uppsättning modeller som grupperar jämförbara datapunkter baserat på likhet.
- Logistic Regression: en modell för binära klassificeringsproblem där målvariabeln har två potentiella värden.
- Beslutsträd: ett beslutsfattande tillvägagångssätt byggt på en kedja av förgrenade if-else-uttalanden.
- Random Forest: en ensemblemodell som består av många beslutsträd. De används ofta för klassificerings- och regressionsapplikationer.
- K-Nearest Neighbors: en modell som förutsäger målvariabeln med hjälp av de k-närmaste datapunkterna i träningsuppsättningen.
Beroende på vårt problem och vår datauppsättning bestämmer vi vilken maskininlärningsmodell som passar vår situation bäst. Ändå återkommer vi till detta senare. Nu ska vi börja träna vår modell. Jag hoppas att du redan har laddat ner dataset om du vill följa vårt exempel.
Dessutom rekommenderar jag att ha Jupyter Notebook installerad på din lokala maskin och använder den för dina maskininlärningsprojekt.
1: Definiera problemet
Första etappen i träna en maskininlärning modellen definierar problemet som ska lösas. Detta innebär att välja de variabler som du vill prognostisera (känd som målvariabeln) och de variabler som kommer att användas för att generera dessa förutsägelser (kända som funktioner eller prediktorer).
Du bör också bestämma vilken typ av maskininlärningsproblem du försöker lösa (klassificering, regression, klustring och så vidare) och vilken typ av data du behöver samla in eller få för att träna din modell.
Vilken typ av modell du använder kommer att bestämmas av typen av maskininlärningsproblem du siktar på att lösa. Klassificering, regression och klustring är de tre primära kategorierna av maskininlärningsutmaningar. När du vill förutsäga en kategorisk variabel, till exempel om ett e-postmeddelande är spam eller inte, använder du klassificering.
När du vill prognostisera en kontinuerlig variabel, som priset på ett hus, använder du regression. Clustering används för att sätta ihop jämförbara dataposter baserat på deras gemensamma egenskaper.
Om vi tittar på vårt exempel; vår utmaning är att bestämma en persons föredragna musikstil utifrån deras kön och ålder. Vi kommer att använda en datauppsättning med 18 personer för detta exempel och information om deras ålder, kön och favoritmusikstil.
2. Förbered data
När du har specificerat problemet måste du förbereda data för att träna modellen. Detta innebär rengöring och bearbetning av data. Så att vi kan säkerställa att det är i ett format som maskininlärningsalgoritm kan använda.
Detta kan inkludera aktiviteter som att ta bort saknade värden, omvandla kategoriska data till numeriska data och skala eller normalisera data för att säkerställa att alla egenskaper är på samma skala.
Så här tar du till exempel bort saknade värden:
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 notering: I raden o "import pandas as pd",
vi importerar Pandas-biblioteket och tilldelar det aliaset "pd" för att göra det lättare att referera till dess funktioner och objekt senare i koden.
Pandas är en välkänd modul för Python för datamanipulation och analys, särskilt när man arbetar med strukturerad eller tabellformig data.
I vårt exempel på att bestämma musikgenrer. Vi importerar först datamängden. Jag har döpt den till music.csv, men du kan namnge den hur du vill.
För att förbereda data för att träna en maskininlärningsmodell delade vi upp den i attribut (ålder och kön) och mål (musikgenre).
Vi delar dessutom upp data i 80:20 tränings- och testset för att bedöma prestandan hos vår modell och undvika överanpassning.
# 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. Välj en maskininlärningsmodell.
Efter att du har förberett datat måste du välja en maskininlärningsmodell som passar din uppgift.
Det finns flera algoritmer att välja på, såsom beslutsträd, logistisk regression, stödvektormaskiner, neurala nätverk och andra. Algoritmen du väljer kommer att avgöras av vilken typ av problem du försöker svara på, vilken typ av data du har och dina prestationsbehov.
Vi kommer att använda en beslutsträdsklassificerare för det här exemplet eftersom vi arbetar med ett klassificeringsproblem (förutsäga kategoriska data).
# Import necessary libraries
from sklearn.tree import DecisionTreeClassifier
Här är en visualisering av hur Decision Tree Classifier fungerar:
4. Träna modellen
Du kan börja träna modellen när du har valt en acceptabel maskininlärningsalgoritm. Detta innebär att man använder tidigare genererad data för att utbilda algoritmen om hur man gör förutsägelser om färska, tidigare osynliga data.
Algoritmen kommer att modifiera sina interna parametrar under träning för att minimera skillnaden mellan dess förutsagda värden och de faktiska värdena i träningsdatan. Mängden data som används för träning, såväl som algoritmens specifika parametrar, kan alla ha en effekt på noggrannheten hos den resulterande modellen.
I vårt specifika exempel, nu när vi har bestämt oss för en metod, kan vi träna vår modell med träningsdata.
# Train the decision tree classifier
model = DecisionTreeClassifier()
model.fit(X_train, y_train)
5. Utvärdera modellen
Efter att modellen har tränats måste den utvärderas på ny data för att säkerställa att den är korrekt och pålitlig. Detta innebär att testa modellen med data som inte användes under träningen och jämföra dess projicerade värden med de faktiska värdena i testdata.
Den här recensionen kan hjälpa till att identifiera eventuella modellfel, såsom övermontering eller underpassning, och kan leda till eventuella finjusteringar som kan behövas.
Med hjälp av testdata kommer vi att bedöma riktigheten av vår modell.
# 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)
Noggrannhetspoängen är inte så illa just nu. 🙂 För att förbättra din noggrannhetspoäng kan du alltid rensa data mer eller prova olika maskininlärningsmodeller för att se vilken som ger högst poäng.
6. Finjustera modellen
Om modellens effektivitet inte räcker till kan du finjustera den genom att ändra olika algoritmparametrar eller genom att helt experimentera med nya algoritmer.
Denna procedur kan inkludera att experimentera med alternativa inlärningshastigheter, modifiera regulariseringsinställningar eller ändra antalet eller storleken på dolda lager i ett neuralt nätverk.
7. Använd modellen
När du är nöjd med modellens prestanda kan du börja använda den för att generera förutsägelser om nya data.
Detta kan innebära att nya data matas in i modellen och att modellens inlärda parametrar används för att generera förutsägelser om dessa data, eller att modellen integreras i en bredare applikation eller ett bredare system.
Vi kan använda vår modell för att generera förutsägelser om nya data efter att vi är nöjda med dess noggrannhet. Du kan prova olika värderingar av kön och ålder.
# Test the model with new data
new_data = [[25, 1], [30, 0]]
predictions = model.predict(new_data)
print("Predictions: ", predictions)
Sammanfatta
Vi har utbildat vår första maskininlärningsmodell.
Jag hoppas att du har funnit det användbart. Du kan nu prova att använda olika maskininlärningsmodeller som Linear Regression eller Random Forest.
Det finns många datamängder och utmaningar i Kaggle om du vill förbättra din kodning och förståelse för maskininlärning.
Kommentera uppropet