Ali želite začeti z strojno učenje?
Ustvaril sem preprosto in enostavno vadnico za popolne začetnike. Skupaj bomo preučili osnovne korake usposabljanja modela strojnega učenja.
Medtem ko bom enega za drugim razlagal korake usposabljanja modela, bom podal tudi zelo osnovni primer problema strojnega učenja. Torej, če želite slediti, lahko prenesete ta vzorčni nabor podatkov s tega mesta povezava.
To je samo vzorčni nabor podatkov, ki vam bo v pomoč pri začetku strojnega učenja.
Imamo 18 vrednot ljudi različnih starosti in spolov, ki imajo definirano svojo najljubšo glasbo. S pomočjo lastnosti »starost« in »spol« bomo poskušali uganiti, katera glasbena zvrst jim je najljubša.
Opomba: 1 in 0 sta v tem naboru podatkov dodeljena spoloma kot moški in ženski.
Če pa zgledu ne želite slediti, je tudi čisto v redu. Vse te korake bom podrobno razložil. Torej, potopimo se!
Najprej morate vedeti
Preden se lotimo korakov usposabljanja modela, razjasnimo nekaj točk. Strojno učenje je Umetna inteligenca disciplina, ki se osredotoča na razvoj algoritmov, ki se lahko učijo iz podatkov.
Da bi to naredili, se modeli strojnega učenja usposabljajo na naboru podatkov, ki model uči, kako narediti pravilne napovedi oz. klasifikacije na svežih, prej neznanih podatkih.
Torej, kateri so ti modeli? A model strojnega učenja je podoben receptu, ki ga računalnik uporablja za ustvarjanje podatkovnih napovedi ali izbir.
Model, podobno kot recept, sledi nizu navodil za ovrednotenje podatkov in ustvarjanje napovedi ali presoje na podlagi vzorcev, najdenih v podatkih. Več podatkov kot je model usposobljen, natančnejše so njegove napovedi.
Kakšne modele lahko treniramo?
Poglejmo, kateri so osnovni modeli strojnega učenja.
- Linearna regresija: model, ki napoveduje neprekinjeno ciljno spremenljivko iz ene ali več vhodnih spremenljivk.
- Nevronske mreže: omrežje povezanih vozlišč, ki se lahko naučijo odkrivati zapletene vzorce v podatkih.
- Odločitvena drevesa: pristop k odločanju, zgrajen na verigi razvejanih izjav if-else.
- Združevanje v gruče: niz modelov, ki združujejo primerljive podatkovne točke na podlagi podobnosti.
- Logistična regresija: model za probleme binarne klasifikacije, v katerem ima ciljna spremenljivka dve potencialni vrednosti.
- Odločitvena drevesa: pristop k odločanju, zgrajen na verigi razvejanih izjav if-else.
- Naključni gozd: model ansambla, sestavljen iz številnih odločitvenih dreves. Pogosto se uporabljajo za klasifikacijske in regresijske aplikacije.
- K-najbližji sosedje: model, ki napove ciljno spremenljivko z uporabo k-najbližjih podatkovnih točk v učnem nizu.
Glede na naš problem in nabor podatkov se odločimo, kateri model strojnega učenja najbolj ustreza naši situaciji. Vendar se bomo k temu vrnili kasneje. Zdaj pa začnimo učiti naš model. Upam, da ste že prenesli nabor podatkov če želite slediti našemu zgledu.
Prav tako priporočam, da imate Jupyter Notebook nameščen na vašem lokalnem računalniku in ga uporabljate za svoje projekte strojnega učenja.
1: Opredelite problem
Prva stopnja v usposabljanje strojnega učenja model definira problem, ki ga je treba rešiti. To vključuje izbiro spremenljivk, ki jih želite napovedati (znanih kot ciljna spremenljivka), in spremenljivk, ki bodo uporabljene za ustvarjanje teh napovedi (znanih kot funkcije ali napovedovalci).
Odločiti se morate tudi, kakšno vrsto težave s strojnim učenjem poskušate obravnavati (razvrstitev, regresija, združevanje v gruče itd.) in kakšno vrsto podatkov boste morali zbrati ali pridobiti za usposabljanje svojega modela.
Vrsta modela, ki ga boste uporabili, bo odvisna od vrste problema strojnega učenja, ki ga nameravate rešiti. Klasifikacija, regresija in združevanje v gruče so tri glavne kategorije izzive strojnega učenja. Ko želite predvideti kategorično spremenljivko, na primer, ali je e-poštno sporočilo vsiljena pošta ali ne, uporabite klasifikacijo.
Ko želite napovedati stalno spremenljivko, kot je cena hiše, uporabite regresijo. Združevanje v gruče se uporablja za sestavljanje primerljivih podatkovnih postavk na podlagi njihovih skupnih značilnosti.
Če pogledamo naš primer; naš izziv je določiti najljubši glasbeni slog osebe glede na njen spol in starost. Za ta primer bomo uporabili nabor podatkov 18 ljudi in podatke o njihovi starosti, spolu in najljubšem glasbenem slogu.
2. Pripravite podatke
Ko navedete težavo, boste morali pripraviti podatke za usposabljanje modela. To vključuje čiščenje in obdelavo podatkov. Torej, da lahko zagotovimo, da je v formatu, ki ga algoritem strojnega učenja lahko uporabi.
To lahko vključuje dejavnosti, kot je brisanje manjkajočih vrednosti, preoblikovanje kategoričnih podatkov v numerične podatke in skaliranje ali normaliziranje podatkov, da se zagotovi, da so vse značilnosti na istem merilu.
Manjkajoče vrednosti na primer izbrišete tako:
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())
Majhna opomba: V vrstici o “import pandas as pd",
uvozimo knjižnico Pandas in ji dodelimo vzdevek "pd", da olajšamo sklicevanje na njene funkcije in objekte pozneje v kodi.
Pandas je dobro znan modul za Python za obdelavo in analizo podatkov, zlasti pri delu s strukturiranimi ali tabelarnimi podatki.
V našem primeru določanja glasbenih zvrsti. Najprej bomo uvozili nabor podatkov. Poimenoval sem ga music.csv, vendar ga lahko poimenuješ kakor želiš.
Za pripravo podatkov za usposabljanje modela strojnega učenja jih razdelimo na atribute (starost in spol) in cilje (glasbena zvrst).
Podatke bomo dodatno razdelili v nabore za usposabljanje in testiranje v razmerju 80:20, da ocenimo učinkovitost našega modela in se izognemo prekomernemu opremljanju.
# 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. Izberite model strojnega učenja.
Ko pripravite podatke, morate izbrati model strojnega učenja, ki je primeren za vašo nalogo.
Izbirate lahko med številnimi algoritmi, kot so drevesa odločanja, logistična regresija, podporni vektorski stroji, nevronske mreže in drugi. Algoritem, ki ga izberete, bo odvisen od vrste težave, na katero poskušate odgovoriti, vrste podatkov, ki jih imate, in vaših potreb po zmogljivosti.
Za ta primer bomo uporabili klasifikator drevesa odločitev, ker delamo s problemom klasifikacije (napovedovanje kategoričnih podatkov).
# Import necessary libraries
from sklearn.tree import DecisionTreeClassifier
Tukaj je vizualizacija delovanja klasifikatorja odločitvenega drevesa:
4. Usposobite model
Model lahko začnete usposabljati, ko izberete sprejemljiv algoritem strojnega učenja. To vključuje uporabo predhodno ustvarjenih podatkov za izobraževanje algoritma o tem, kako narediti napovedi na svežih, prej nevidenih podatkih.
Algoritem bo med usposabljanjem spremenil svoje notranje parametre, da bi zmanjšal razliko med predvidenimi vrednostmi in dejanskimi vrednostmi v podatkih o usposabljanju. Količina podatkov, uporabljenih za usposabljanje, kot tudi specifični parametri algoritma lahko vplivajo na natančnost nastalega modela.
V našem specifičnem primeru lahko zdaj, ko smo se odločili za metodo, urimo naš model s podatki o urjenju.
# Train the decision tree classifier
model = DecisionTreeClassifier()
model.fit(X_train, y_train)
5. Ocenite model
Ko je model usposobljen, ga je treba ovrednotiti na novih podatkih, da se zagotovi, da je natančen in zanesljiv. To vključuje testiranje modela s podatki, ki niso bili uporabljeni med usposabljanjem, in primerjavo njegovih predvidenih vrednosti z dejanskimi vrednostmi v testnih podatkih.
Ta pregled lahko pomaga pri prepoznavanju kakršnih koli pomanjkljivosti modela, kot je prekomerna ali premajhna opremljenost, in lahko privede do kakršnega koli natančnega prilagajanja, ki je morda potrebno.
S pomočjo podatkov testiranja bomo ocenili pravilnost našega modela.
# 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)
Ocena točnosti za zdaj ni tako slaba. 🙂 Če želite izboljšati svojo oceno natančnosti, lahko vedno bolj očistite podatke ali preizkusite različne modele strojnega učenja, da vidite, kateri daje najvišjo oceno.
6. Natančno prilagodite model
Če učinkovitost modela ni zadostna, ga lahko natančno prilagodite s spreminjanjem različnih parametrov algoritma ali s povsem eksperimentiranjem z novimi algoritmi.
Ta postopek lahko vključuje eksperimentiranje z alternativnimi stopnjami učenja, spreminjanje nastavitev pravilne ureditve ali spreminjanje števila ali velikosti skritih plasti v nevronski mreži.
7. Uporabite model
Ko ste zadovoljni z delovanjem modela, ga lahko začnete uporabljati za ustvarjanje napovedi na podlagi novih podatkov.
To lahko vključuje vnos svežih podatkov v model in uporabo naučenih parametrov modela za ustvarjanje napovedi na teh podatkih ali integracijo modela v širšo aplikacijo ali sistem.
Naš model lahko uporabimo za ustvarjanje napovedi na podlagi novih podatkov, potem ko smo zadovoljni z njegovo natančnostjo. Poskusite lahko z različnimi vrednostmi spola in starosti.
# Test the model with new data
new_data = [[25, 1], [30, 0]]
predictions = model.predict(new_data)
print("Predictions: ", predictions)
Zaviti
Končali smo usposabljanje našega prvega modela strojnega učenja.
Upam, da vam je bilo koristno. Zdaj lahko poskusite uporabiti različne modele strojnega učenja, kot sta linearna regresija ali naključni gozd.
Obstaja veliko naborov podatkov in izzivov Kaggle če želite izboljšati svoje kodiranje in razumevanje strojnega učenja.
Pustite Odgovori