Wëllt Dir ufänken mat Maschinn léieren?
Ech hunn en einfachen an einfachen Tutorial fir komplett Ufänger erstallt. Zesummen wäerte mir iwwer d'Basis Schrëtt vun der Ausbildung vun engem Maschinn Léieren Modell goen.
Wärend d'Schrëtt fir e Modell een nom aneren z'erklären, wäert ech och e ganz Basis Beispill vun engem Maschinnléierproblem ginn. Also, wann Dir wëllt matmaachen, kënnt Dir dëse Probe Dateset vun dësem eroflueden Link.
Dëst ass just e Probe Datesaz fir Iech ze hëllefen mat Maschinnléieren unzefänken.
Mir hunn 18 Wäerter vu Leit vu verschiddenen Alter a Geschlechter déi hir Liiblingsmusek definéiert hunn. Andeems Dir d'Features vun "Alter" a "Geschlecht" benotzt, wäerte mir probéieren ze roden wéi ee Genre vun der Musek hire Liiblings ass.
Notiz: 1 an 0 ginn u Geschlechter als weiblech a männlech an dësem Dataset zougewisen.
Wéi och ëmmer, wann Dir d'Beispill net wëllt verfollegen, ass et och perfekt gutt. Ech wäert all dës Schrëtt am Detail erklären. Also, loosst eis tauchen!
Éischt Saachen ze wëssen
Ier Dir an d'Schrëtt vum Training e Modell geet, loosst eis e puer Punkte klären. Maschinn Léieren ass en Kënschtlech Intelligenz Disziplin déi sech op d'Entwécklung vun Algorithmen konzentréiert déi aus Daten léiere kënnen.
Fir dëst ze maachen, ginn Maschinnléiermodeller op engem Dataset trainéiert deen de Modell léiert wéi een korrekt Prognosen mécht oder Klassifikatiounen op frësch, virdrun onbekannt Donnéeën.
Also, wat sinn dës Modeller? A Maschinn Léiermodell ass ähnlech wéi e Rezept dat e Computer benotzt fir Dateprognosen oder Choixen ze generéieren.
E Modell, wéi e Rezept, follegt eng Rei vun Instruktiounen fir Daten ze evaluéieren an Prognosen oder Uerteeler ze generéieren baséiert op Mustere fonnt an den Daten. Wat méi Daten op de Modell trainéiert gëtt, wat méi genee seng Prognosen ginn.
Wéi eng Modeller kënne mir trainéieren?
Loosst eis kucken wat d'Basis Maschinn Léieren Modeller sinn.
- Linear Regressioun: e Modell deen eng kontinuéierlech Zilvariabel aus enger oder méi Inputvariablen virausgesot.
- Neural Netzwierker: e Netz vu verlinkte Wirbelen déi léiere kënnen komplizéiert Musteren an Daten z'entdecken.
- Decision Trees: eng Décisiouns-Approche gebaut op enger Kette vu Verzweigung if-else Aussoen.
- Clustering: eng Rei vu Modeller déi vergläichbar Datepunkte gruppéiere baséiert op Ähnlechkeet.
- Logistesch Regressioun: e Modell fir binär Klassifikatiounsproblemer, an deem d'Zilvariabel zwee potenziell Wäerter huet.
- Decision Trees: eng Décisiouns-Approche gebaut op enger Kette vu Verzweigung if-else Aussoen.
- Random Forest: en Ensembelmodell besteet aus ville Entscheedungsbeem. Si ginn dacks fir Klassifikatioun a Regressioun Uwendungen benotzt.
- K-Nearest Neighbors: e Modell deen d'Zilvariabel viraussetzt mat de k-noosten Datenpunkten am Trainingsset.
Ofhängeg vun eisem Problem an dem Dataset, entscheede mir wéi ee Maschinnléiermodell eis Situatioun am meeschte passt. Mir kommen awer nach méi spéit drop zréck. Elo, loosst eis eise Modell trainéieren. Ech hoffen Dir hutt schonn erofgeluede der Datebank wann Dir eist Beispill wëllt verfollegen.
Och ech recommandéieren ze hunn Jupyter Notizbuch installéiert op Ärer lokaler Maschinn a benotzt se fir Är Maschinnléiereprojeten.
1: Definéiert de Problem
Déi éischt Etapp an Formatioun eng Maschinn Léieren Modell definéiert de Problem ze léisen. Dëst beinhalt d'Auswiel vun de Variablen déi Dir wëllt viraussoen (bekannt als Zilvariabel) an d'Variabelen déi benotzt gi fir dës Prognosen ze generéieren (bekannt als Features oder Prognosen).
Dir sollt och entscheeden wéi eng Zort vu Maschinnléiereproblem Dir probéiert ze adresséieren (Klassifikatioun, Regressioun, Clustering, asw.) a wéi eng Zort Daten Dir braucht fir Äre Modell ze sammelen oder ze trainéieren.
D'Zort vum Modell, deen Dir benotzt, gëtt bestëmmt vun der Aart vu Maschinnléiereproblem, deen Dir sicht ze léisen. Klassifikatioun, Regressioun a Clustering sinn déi dräi primär Kategorien vun Maschinn Léieren Erausfuerderungen. Wann Dir eng kategoresch Variabel viraussoe wëllt, wéi zum Beispill ob eng E-Mail Spam ass oder net, benotzt Dir Klassifikatioun.
Wann Dir eng kontinuéierlech Variabel prognostizéiere wëllt, wéi de Präis vun engem Haus, benotzt Dir Regressioun. Clustering gëtt benotzt fir vergläichbar Dateartikelen op Basis vun hire Gemeinsamkeeten zesummenzestellen.
Wa mir eist Beispill kucken; eis Erausfuerderung ass fir eng Persoun säi beléifte musikalesche Stil aus hirem Geschlecht an Alter ze bestëmmen. Mir benotze en Dataset vun 18 Leit fir dëst Beispill an Informatioun iwwer hiren Alter, Geschlecht a Liiblingsmusekstil.
2. Preparéieren d'Donnéeën
Nodeems Dir de Problem uginn hutt, musst Dir d'Donnéeën virbereeden fir de Modell ze trainéieren. Dëst beinhalt d'Botzung an d'Veraarbechtung vun den Donnéeën. Also, datt mir suergen, datt et an engem Format ass, datt de Maschinn léieren Algorithmus benotze kann.
Dëst kéint Aktivitéiten enthalen wéi fehlend Wäerter läschen, kategoresch Donnéeën op numeresch Donnéeën transforméieren, an d'Daten skaléieren oder normaliséieren fir sécherzestellen datt all Charakteristiken op der selwechter Skala sinn.
Zum Beispill, dëst ass wéi Dir fehlend Wäerter läscht:
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())
Kleng Notiz: An der Linn o "import pandas as pd",
mir importéieren d'Pandas Bibliothéik an ginn et den Alias "pd" fir et méi einfach ze maachen hir Funktiounen an Objeten méi spéit am Code ze referenzéieren.
Pandas ass e bekannte Modul fir Python fir Datemanipulatioun an Analyse, besonnesch wann Dir mat strukturéierten oder tabulären Donnéeën schafft.
An eisem Beispill fir Museksgenren ze bestëmmen. Mir importéieren als éischt den Dataset. Ech hunn et music.csv genannt, Dir kënnt et awer nennen wéi Dir wëllt.
Fir d'Donnéeën ze preparéieren fir e Maschinnléiermodell ze trainéieren, hu mir se an Attributer (Alter a Geschlecht) an Ziler (Musekgenre) opgedeelt.
Mir verdeelen d'Donnéeën zousätzlech an 80:20 Trainings- an Testsets fir d'Performance vun eisem Modell ze bewäerten an Iwwerfitting ze vermeiden.
# 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. Wielt eng Maschinn Léieren Modell.
Nodeems Dir d'Donnéeën virbereet hutt, musst Dir e Maschinnléiermodell wielen deen op Är Aufgab passt.
Et gi verschidde Algorithmen fir aus ze wielen, sou wéi Entscheedungsbeem, logistesch Regressioun, Ënnerstëtzungsvektormaschinnen, neural Netzwierker, an anerer. Den Algorithmus, deen Dir wielt, gëtt bestëmmt vun der Aart vum Thema, deen Dir probéiert ze beäntweren, d'Zort vun Daten déi Dir hutt an Är Leeschtungsbedierfnesser.
Mir wäerten en Entscheedungsbam Klassifizéierer fir dëst Beispill benotzen well mir mat engem Klassifikatiounsproblem schaffen (kategoresch Daten viraussoen).
# Import necessary libraries
from sklearn.tree import DecisionTreeClassifier
Hei ass eng Visualiséierung vu wéi den Decision Tree Classifier funktionnéiert:
4. Trainéieren de Modell
Dir kënnt ufänken de Modell ze trainéieren wann Dir en akzeptablen Maschinnléieralgorithmus gewielt hutt. Dëst beinhalt d'Benotzung vun de virdru generéierten Donnéeën fir den Algorithmus ze educéieren wéi Dir Prognosen iwwer frësch, virdru onsiichten Donnéeën mécht.
Den Algorithmus ännert seng intern Parameteren wärend dem Training fir den Ënnerscheed tëscht senge virausgesote Wäerter an den aktuellen Wäerter an den Trainingsdaten ze minimiséieren. D'Quantitéit vun Daten, déi fir Training benotzt ginn, souwéi déi spezifesch Parameteren vum Algorithmus, kënnen all en Effekt op d'Genauegkeet vum resultéierende Modell hunn.
An eisem spezifesche Beispill, elo wou mir eng Method decidéiert hunn, kënne mir eise Modell mat Trainingsdaten trainéieren.
# Train the decision tree classifier
model = DecisionTreeClassifier()
model.fit(X_train, y_train)
5. Evaluéieren de Modell
Nodeems de Modell trainéiert gouf, muss et op nei Donnéeën evaluéiert ginn fir sécherzestellen datt et korrekt an zouverlässeg ass. Dëst beinhalt d'Test vum Modell mat Daten déi net während Training benotzt goufen a seng projizéiert Wäerter mat den aktuellen Wäerter an den Testdaten ze vergläichen.
Dës Iwwerpréiwung kann hëllefen all Modellfehler z'identifizéieren, sou wéi Iwwerfitting oder Underfitting, a kann zu all Feintuning féieren, déi erfuerderlech ass.
Mat den Testdaten bewäerte mir d'Korrektheet vun eisem 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)
D'Genauegkeet Score ass net sou schlecht fir de Moment. 🙂 Fir Är Genauegkeet Score ze verbesseren, kënnt Dir ëmmer d'Donnéeën méi botzen oder verschidde Maschinnléiere Modeller probéieren fir ze kucken wéi een den héchste Score gëtt.
6. Fine-tune de Modell
Wann d'Effizienz vum Modell net genuch genuch ass, kënnt Dir et feinjustéieren andeems Dir verschidde Algorithmusparameter verännert oder duerch ganz nei Algorithmen experimentéiert.
Dës Prozedur kann Experimentéiere mat alternativen Léierraten enthalen, Reguléierungsastellungen änneren oder d'Zuel oder d'Gréisst vun verstoppte Schichten an engem neurale Netzwierk änneren.
7. Benotzt de Modell
Wann Dir mat der Leeschtung vum Modell zefridde sidd, kënnt Dir ufänken et ze benotzen fir Prognosen op nei Donnéeën ze generéieren.
Dëst kéint dozou bäidroen datt frësch Donnéeën an de Modell fidderen an déi geléiert Parameter vum Modell benotzt ginn fir Prognosen op dës Donnéeën ze generéieren, oder de Modell an eng méi breet Applikatioun oder System z'integréieren.
Mir kënnen eise Modell benotze fir Prognosen iwwer nei Donnéeën ze generéieren nodeems mir mat senger Genauegkeet zefridde sinn. Dir kënnt verschidde Wäerter vu Geschlecht an Alter probéieren.
# Test the model with new data
new_data = [[25, 1], [30, 0]]
predictions = model.predict(new_data)
print("Predictions: ", predictions)
Apaken
Mir hunn eis éischt Maschinn Léiermodell fäerdeg gemaach.
Ech hoffen Dir hutt et nëtzlech fonnt. Dir kënnt elo probéieren verschidde Maschinnléiermodeller wéi Linear Regressioun oder Random Forest ze benotzen.
Et gi vill Datesätz an Erausfuerderungen an Kaggle wann Dir Är Kodéierung a Verständnis vu Maschinnléiere wëllt verbesseren.
Hannerlooss eng Äntwert