Wolle jo begjinne mei masine learen?
Ik haw in ienfâldige en maklike tutorial makke foar folsleine begjinners. Tegearre sille wy de basisstappen oergean fan it oplieden fan in masinelearmodel.
Wylst ik de stappen fan it oplieden fan in model ien foar ien útlizze, sil ik ek in heul basisfoarbyld jaan fan in masine-learenprobleem. Dus, as jo mei wolle folgje, kinne jo dizze foarbyldgegevensset hjirút downloade link.
Dit is gewoan in foarbylddataset om jo te helpen te begjinnen mei masine learen.
Wy hawwe 18 wearden fan minsken fan ferskillende leeftiden en geslachten dy't har favorite muzyk hawwe definieare. Troch de funksjes fan "leeftyd" en "geslacht" te brûken sille wy besykje te rieden hokker muzyksjenre har favoryt is.
Opmerking: 1 en 0 wurde tawiisd oan geslachten as froulik en manlik yn dizze dataset.
As jo lykwols it foarbyld net folgje wolle, is it ek perfekt. Ik sil al dizze stappen yn detail útlizze. Dus, lit ús dûke yn!
Earste dingen om te witten
Foardat wy yngeane op 'e stappen fan it oplieden fan in model, litte wy wat punten ferdúdlikje. Masine learen is in keunstmjittige yntelliginsje dissipline dy't him rjochtet op it ûntwikkeljen fan algoritmen dy't kinne leare fan gegevens.
Om dit te dwaan, wurde masine-learmodellen trainearre op in dataset dy't it model leart hoe't jo juste foarsizzings meitsje kinne as klassifikaasjes op farske, earder ûnbekende gegevens.
Dus, wat binne dizze modellen? IN masine learmodel is fergelykber mei in resept dat in kompjûter brûkt om gegevensfoarsizzings of karren te generearjen.
In model, lykas in resept, folget in set ynstruksjes om gegevens te evaluearjen en foarsizzingen of oardielen te generearjen basearre op patroanen fûn yn 'e gegevens. Hoe mear gegevens it model wurdt oplaat, hoe krekter de foarsizzings wurde.
Hokker soarten modellen kinne wy traine?
Litte wy sjen wat de basismodellen foar masine learen binne.
- Lineêre regression: in model dat in trochgeande doelfariabele foarseit út ien of mear ynfierfariabelen.
- Neurale netwurken: in netwurk fan keppele knopen dy't leare kinne om yngewikkelde patroanen yn gegevens te ûntdekken.
- Beslútbeammen: in beslútfoarmjende oanpak boud op in keatling fan fertakkende as-else-útspraken.
- Clustering: in set modellen dy't fergelykbere gegevenspunten groepearje op basis fan oerienkomst.
- Logistyske regression: in model foar binêre klassifikaasjeproblemen wêryn de doelfariabele twa potensjele wearden hat.
- Beslútbeammen: in beslútfoarmjende oanpak boud op in keatling fan fertakkende as-else-útspraken.
- Random Forest: in ensemble model gearstald út tal fan beslút beammen. Se wurde faak brûkt foar klassifikaasje- en regressionapplikaasjes.
- K-Nearest Neighbors: in model dat de doelfariabele foarsizze mei de k-nearste gegevenspunten yn 'e trainingset.
Ofhinklik fan ús probleem en dataset, beslute wy hokker masine-learenmodel it meast by ús situaasje past. Dochs komme wy hjir letter op werom. No litte wy ús model begjinne te trainen. Ik hoopje dat jo hawwe al ynladen de dataset as jo ús foarbyld folgje wolle.
Ek advisearje ik te hawwen Jupyter Notebook ynstalleare op jo lokale masine en it brûke foar jo projekten foar masinelearen.
1: Definiearje it probleem
De earste etappe yn training fan in masine learen model definiearret it probleem dat moat wurde oplost. Dit omfettet it selektearjen fan de fariabelen dy't jo wolle foarsizze (bekend as de doelfariabele) en de fariabelen dy't sille wurde brûkt om dy foarsizzingen te generearjen (bekend as funksjes of foarsizzers).
Jo moatte ek beslute hokker soarte fan masine-learenprobleem jo besykje oan te pakken (klassifikaasje, regression, klustering, ensfh.) en hokker type gegevens jo moatte sammelje of krije om jo model te trenen.
It soarte model dat jo brûke sil wurde bepaald troch it type masine-learenprobleem dat jo fan doel binne op te lossen. Klassifikaasje, regression en klustering binne de trije primêre kategoryen fan masine learen útdagings. As jo in kategoriale fariabele wolle foarsizze, lykas oft in e-post in spam is of net, brûke jo klassifikaasje.
As jo in trochgeande fariabele wolle foarsizze, lykas de priis fan in hûs, brûke jo regression. Clustering wurdt brûkt om fergelykbere gegevensitems te kombinearjen op basis fan har mienskiplikheden.
As wy nei ús foarbyld sjogge; ús útdaging is om de foarkar muzikale styl fan in persoan te bepalen fan har geslacht en leeftyd. Wy sille in dataset fan 18 minsken brûke foar dit foarbyld en ynformaasje oer har leeftyd, geslacht en favorite muzikale styl.
2. Tariede de gegevens
Nei't jo it probleem hawwe opjûn, moatte jo de gegevens tariede foar training fan it model. Dit omfettet it skjinmeitsjen en ferwurkjen fan de gegevens. Sa, dat wy kinne soargje dat it is yn in opmaak dat de masine learen algoritme kin brûke.
Dit kin aktiviteiten omfetsje lykas it wiskjen fan ûntbrekkende wearden, it transformearjen fan kategoaryske gegevens nei numerike gegevens, en it skaaljen of normalisearjen fan de gegevens om te garandearjen dat alle skaaimerken op deselde skaal binne.
Dit is bygelyks hoe't jo ûntbrekkende wearden wiskje:
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())
Lytse opmerking: yn 'e rigel o "import pandas as pd",
wy ymportearje de Pandas-bibleteek en jouwe it de alias "pd" ta om it makliker te meitsjen om har funksjes en objekten letter yn 'e koade te ferwizen.
Pandas is in bekende module foar Python foar gegevensmanipulaasje en -analyze, benammen by it wurkjen mei struktureare as tabelgegevens.
Yn ús foarbyld fan it bepalen fan muzyksjenres. Wy sille earst de dataset ymportearje. Ik haw it neamd music.csv, lykwols, jo kinne it neame lykas jo wolle.
Om de gegevens ta te rieden foar it oplieden fan in masine-learmodel, splitst it yn attributen (leeftyd en geslacht) en doelstellingen (muzyksjenre).
Wy sille de gegevens ek ferdiele yn 80:20 training- en testsets om de prestaasjes fan ús model te beoardieljen en overfitting te foarkommen.
# 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 in masine learen model.
Neidat jo de gegevens hawwe taret, moatte jo in masine-learmodel kieze dat geskikt is foar jo taak.
D'r binne ferskate algoritmen om út te kiezen, lykas beslútbeammen, logistyske regression, stipe fektormasines, neurale netwurken, en oaren. It algoritme dat jo kieze sil wurde bepaald troch it soarte probleem dat jo besykje te beantwurdzjen, it type gegevens dat jo hawwe, en jo prestaasjesbehoeften.
Wy sille in beslútbeamklassifikaasje brûke foar dit foarbyld, om't wy wurkje mei in klassifikaasjeprobleem (kategoaryske gegevens foarsizze).
# Import necessary libraries
from sklearn.tree import DecisionTreeClassifier
Hjir is in fisualisaasje fan hoe't de Decision Tree Classifier wurket:
4. Train it model
Jo kinne begjinne mei it trainen fan it model as jo in akseptabel masine-learalgoritme hawwe keazen. Dit omfettet it brûken fan de earder oanmakke gegevens om it algoritme op te learen oer hoe't jo foarsizzings kinne meitsje oer farske, earder net te sjen gegevens.
It algoritme sil syn ynterne parameters wizigje tidens training om it ferskil tusken syn foarseine wearden en de werklike wearden yn 'e trainingsgegevens te minimalisearjen. De kwantiteit fan gegevens brûkt foar training, lykas de spesifike parameters fan it algoritme, kinne allegear in effekt hawwe op 'e krektens fan it resultearjende model.
Yn ús spesifike foarbyld, no't wy in metoade hawwe besletten, kinne wy ús model traine mei de trainingsgegevens.
# Train the decision tree classifier
model = DecisionTreeClassifier()
model.fit(X_train, y_train)
5. Evaluearje it model
Neidat it model is oplaat, moat it wurde evaluearre op nije gegevens om te soargjen dat it krekt en betrouber is. Dit omfettet it testen fan it model mei gegevens dy't net waarden brûkt tidens training en it fergelykjen fan de projekteare wearden mei de werklike wearden yn 'e testgegevens.
Dizze resinsje kin helpe by it identifisearjen fan alle gebreken fan it model, lykas overfitting of underfitting, en kin liede ta alle fine-tuning dy't nedich binne.
Mei help fan de testgegevens sille wy de krektens fan ús model beoardielje.
# 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 krektens score is net sa min foar no. 🙂 Om jo krektensskoare te ferbetterjen, kinne jo de gegevens altyd mear skjinmeitsje of ferskate masine-learmodellen besykje om te sjen hokker de heechste skoare jout.
6. Fine-tune it model
As de effisjinsje fan it model net genôch genôch is, kinne jo it fine-tune troch ferskate algoritmeparameters te feroarjen of troch folslein te eksperimintearjen mei nije algoritmen.
Dizze proseduere kin eksperimintearje mei alternative learsifers, wizigjen fan regularisaasjeynstellingen, of feroarjen fan it oantal of grutte fan ferburgen lagen yn in neural netwurk.
7. Brûk it model
As jo ienris tefreden binne mei de prestaasjes fan it model, kinne jo it begjinne te brûken om foarsizzingen te generearjen oer nije gegevens.
Dit kin omfetsje it ynfieren fan nije gegevens yn it model en it brûken fan de learde parameters fan it model om foarsizzingen te generearjen oer dy gegevens, of it yntegrearjen fan it model yn in bredere applikaasje of systeem.
Wy kinne ús model brûke om foarsizzingen te generearjen oer nije gegevens nei't wy bliid binne mei de krektens. Jo kinne ferskate wearden fan geslacht en leeftyd besykje.
# Test the model with new data
new_data = [[25, 1], [30, 0]]
predictions = model.predict(new_data)
print("Predictions: ", predictions)
Gearfetsje
Wy hawwe ús earste masinelearmodel foltôge.
Ik hoopje dat jo it nuttich fûn hawwe. Jo kinne no besykje ferskate masine-learmodellen te brûken lykas Linear Regression of Random Forest.
D'r binne in protte datasets en útdagings yn Kaggle as jo jo kodearring en begryp fan masine learen wolle ferbetterje.
Leave a Reply