Wil je aan de slag met machine learning?
Ik heb een eenvoudige en gemakkelijke tutorial gemaakt voor complete beginners. Samen bespreken we de basisstappen van het trainen van een machine learning-model.
Terwijl ik de stappen voor het een voor een trainen van een model uitleg, zal ik ook een heel eenvoudig voorbeeld geven van een machine-learning probleem. Dus als u mee wilt volgen, kunt u deze voorbeelddataset hiervan downloaden link.
Dit is slechts een voorbeelddataset om u te helpen aan de slag te gaan met machine learning.
We hebben 18 waarden van mensen van verschillende leeftijden en geslachten die hun favoriete muziek hebben gedefinieerd. Door de kenmerken "leeftijd" en "geslacht" te gebruiken, zullen we proberen te raden welk muziekgenre hun favoriet is.
Opmerking: 1 en 0 zijn toegewezen aan geslachten als vrouwelijk en mannelijk in deze dataset.
Als u echter het voorbeeld niet wilt volgen, is dat ook prima. Ik zal al deze stappen in detail uitleggen. Dus, laten we erin duiken!
Eerste dingen om te weten
Laten we, voordat we ingaan op de stappen van het trainen van een model, enkele punten verduidelijken. Machine learning is een kunstmatige intelligentie discipline die zich richt op het ontwikkelen van algoritmen die kunnen leren van data.
Hiervoor worden machine learning-modellen getraind op een dataset die het model leert hoe het juiste voorspellingen kan doen of classificaties op nieuwe, voorheen onbekende gegevens.
Dus, wat zijn deze modellen? A machine learning-model is vergelijkbaar met een recept dat een computer gebruikt om gegevensvoorspellingen of keuzes te genereren.
Een model volgt, net als een recept, een reeks instructies om gegevens te evalueren en voorspellingen of beoordelingen te genereren op basis van patronen die in de gegevens zijn gevonden. Hoe meer gegevens het model traint, hoe nauwkeuriger de voorspellingen worden.
Wat voor modellen kunnen we trainen?
Laten we eens kijken wat de basismodellen voor machine learning zijn.
- Lineaire regressie: een model dat een continue doelvariabele voorspelt uit een of meer invoervariabelen.
- Neurale netwerken: een netwerk van gekoppelde knooppunten die kunnen leren ingewikkelde patronen in gegevens te detecteren.
- Beslisbomen: een besluitvormingsbenadering die is gebaseerd op een keten van vertakkende if-else-statements.
- Clustering: een reeks modellen die vergelijkbare datapunten groeperen op basis van gelijkenis.
- Logistische regressie: een model voor binaire classificatieproblemen waarbij de doelvariabele twee potentiële waarden heeft.
- Beslisbomen: een besluitvormingsbenadering die is gebaseerd op een keten van vertakkende if-else-statements.
- Random Forest: een ensemblemodel dat is samengesteld uit talloze beslissingsbomen. Ze worden vaak gebruikt voor classificatie- en regressietoepassingen.
- K-Nearest Neighbours: een model dat de doelvariabele voorspelt met behulp van de k-dichtstbijzijnde gegevenspunten in de trainingsset.
Afhankelijk van ons probleem en onze dataset beslissen we welk machine learning model het beste bij onze situatie past. Toch komen we hier later op terug. Laten we nu beginnen met het trainen van ons model. Ik hoop dat je het al hebt gedownload dataset als je ons voorbeeld wilt volgen.
Ik raad ook aan om te hebben Jupyter Notebook op uw lokale computer geïnstalleerd en gebruikt voor uw machine learning-projecten.
1: Definieer het probleem
De eerste etappe binnen het trainen van een machine learning model definieert het probleem dat moet worden opgelost. Dit omvat het selecteren van de variabelen die u wilt voorspellen (bekend als de doelvariabele) en de variabelen die zullen worden gebruikt om die voorspellingen te genereren (bekend als kenmerken of voorspellers).
U moet ook beslissen wat voor soort machine-learningprobleem u probeert aan te pakken (classificatie, regressie, clustering, enzovoort) en welk type gegevens u nodig heeft om uw model te trainen of te verzamelen.
Het soort model dat u gebruikt, wordt bepaald door het type machine learning-probleem dat u wilt oplossen. Classificatie, regressie en clustering zijn de drie primaire categorieën van machine learning uitdagingen. Wanneer u een categorische variabele wilt voorspellen, bijvoorbeeld of een e-mail spam is of niet, gebruikt u classificatie.
Wanneer u een continue variabele wilt voorspellen, zoals de prijs van een huis, gebruikt u regressie. Clustering wordt gebruikt om vergelijkbare gegevensitems samen te stellen op basis van hun overeenkomsten.
Als we naar ons voorbeeld kijken; onze uitdaging is om iemands favoriete muziekstijl te bepalen op basis van geslacht en leeftijd. Voor dit voorbeeld gebruiken we een dataset van 18 mensen en informatie over hun leeftijd, geslacht en favoriete muziekstijl.
2. Bereid de gegevens voor
Nadat u het probleem hebt gespecificeerd, moet u de gegevens voorbereiden voor het trainen van het model. Dit omvat het opschonen en verwerken van de gegevens. Zodat we ervoor kunnen zorgen dat het in een formaat is dat de machine learning algoritme kan gebruiken.
Dit kunnen activiteiten zijn zoals het verwijderen van ontbrekende waarden, het transformeren van categorische gegevens naar numerieke gegevens en het schalen of normaliseren van de gegevens om ervoor te zorgen dat alle kenmerken op dezelfde schaal liggen.
Zo verwijdert u bijvoorbeeld ontbrekende waarden:
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())
Kleine opmerking: In de regel o "import pandas as pd",
we importeren de Pandas-bibliotheek en kennen deze de alias "pd" toe om het gemakkelijker te maken om later in de code naar de functies en objecten te verwijzen.
Pandas is een bekende module voor Python voor gegevensmanipulatie en -analyse, met name bij het werken met gestructureerde of tabelgegevens.
In ons voorbeeld van het bepalen van muziekgenres. We importeren eerst de dataset. Ik heb het music.csv genoemd, maar je kunt het noemen zoals je wilt.
Om de gegevens voor te bereiden voor het trainen van een machine learning-model, hebben we deze opgesplitst in attributen (leeftijd en geslacht) en doelstellingen (muziekgenre).
We verdelen de gegevens bovendien in 80:20 trainings- en testsets om de prestaties van ons model te beoordelen en overfitting te voorkomen.
# 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. Kies een machine learning-model.
Nadat u de gegevens hebt voorbereid, moet u een machine-learningmodel kiezen dat geschikt is voor uw taak.
Er zijn verschillende algoritmen om uit te kiezen, zoals beslissingsbomen, logistische regressie, ondersteunende vectormachines, neurale netwerken en andere. Het algoritme dat u kiest, wordt bepaald door het soort probleem dat u probeert te beantwoorden, het type gegevens dat u heeft en uw prestatiebehoeften.
We gebruiken een beslissingsboomclassificatie voor dit voorbeeld omdat we werken met een classificatieprobleem (het voorspellen van categorische gegevens).
# Import necessary libraries
from sklearn.tree import DecisionTreeClassifier
Hier is een visualisatie van hoe de Decision Tree Classifier werkt:
4. Train het model
U kunt beginnen met het trainen van het model wanneer u een acceptabel algoritme voor machine learning hebt gekozen. Dit houdt in dat de eerder gegenereerde gegevens worden gebruikt om het algoritme te leren hoe het voorspellingen kan doen op nieuwe, voorheen ongeziene gegevens.
Het algoritme wijzigt zijn interne parameters tijdens de training om het verschil tussen de voorspelde waarden en de werkelijke waarden in de trainingsgegevens te minimaliseren. De hoeveelheid gegevens die wordt gebruikt voor training, evenals de specifieke parameters van het algoritme, kunnen allemaal van invloed zijn op de nauwkeurigheid van het resulterende model.
In ons specifieke voorbeeld kunnen we, nu we een methode hebben gekozen, ons model trainen met de trainingsgegevens.
# Train the decision tree classifier
model = DecisionTreeClassifier()
model.fit(X_train, y_train)
5. Evalueer het model
Nadat het model is getraind, moet het worden geëvalueerd op nieuwe gegevens om ervoor te zorgen dat het nauwkeurig en betrouwbaar is. Dit houdt in dat het model wordt getest met gegevens die niet zijn gebruikt tijdens de training en dat de geprojecteerde waarden worden vergeleken met de werkelijke waarden in de testgegevens.
Deze beoordeling kan helpen bij het identificeren van modelfouten, zoals overfitting of underfitting, en kan leiden tot eventuele fijnafstemming die nodig kan zijn.
Aan de hand van de testgegevens beoordelen we de juistheid van ons model.
# 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)
De nauwkeurigheidsscore valt voorlopig mee. 🙂 Om uw nauwkeurigheidsscore te verbeteren, kunt u de gegevens altijd meer opschonen of verschillende machine-learningmodellen uitproberen om te zien welke de hoogste score geeft.
6. Verfijn het model
Als de efficiëntie van het model niet voldoende is, kunt u het verfijnen door verschillende algoritmeparameters te wijzigen of door volledig met nieuwe algoritmen te experimenteren.
Deze procedure kan bestaan uit het experimenteren met alternatieve leersnelheden, het wijzigen van regularisatie-instellingen of het wijzigen van het aantal of de grootte van verborgen lagen in een neuraal netwerk.
7. Gebruik het model
Zodra u tevreden bent met de prestaties van het model, kunt u het gaan gebruiken om voorspellingen over nieuwe gegevens te genereren.
Dit kan inhouden dat nieuwe gegevens in het model worden ingevoerd en de geleerde parameters van het model worden gebruikt om voorspellingen op basis van die gegevens te genereren, of dat het model wordt geïntegreerd in een bredere toepassing of een breder systeem.
We kunnen ons model gebruiken om voorspellingen te doen over nieuwe gegevens nadat we tevreden zijn met de nauwkeurigheid ervan. U kunt verschillende waarden van geslacht en leeftijd proberen.
# Test the model with new data
new_data = [[25, 1], [30, 0]]
predictions = model.predict(new_data)
print("Predictions: ", predictions)
verpakken
We zijn klaar met het trainen van ons eerste machine learning-model.
Ik hoop dat je het nuttig vond. U kunt nu verschillende modellen voor machine learning proberen, zoals lineaire regressie of willekeurig bos.
Er zijn veel datasets en uitdagingen in Kaggle als u uw codering en begrip van machine learning wilt verbeteren.
Laat een reactie achter