Želite li početi s mašinsko učenje?
Napravio sam jednostavan i lak tutorijal za potpune početnike. Zajedno ćemo proći kroz osnovne korake obuke modela mašinskog učenja.
Dok objašnjavam korake obuke modela jedan po jedan, dat ću i vrlo osnovni primjer problema mašinskog učenja. Dakle, ako želite da pratite, možete preuzeti ovaj uzorak skupa podataka sa ovoga link.
Ovo je samo primjer skupa podataka koji će vam pomoći da počnete s mašinskim učenjem.
Imamo 18 vrijednosti ljudi različitog uzrasta i spola koji imaju definiranu omiljenu muziku. Koristeći karakteristike “starosti” i “pola” pokušaćemo da pogodimo koji im je muzički žanr omiljeni.
Napomena: 1 i 0 su dodijeljeni spolovima kao ženski i muški u ovom skupu podataka.
Međutim, ako ne želite slijediti primjer, također je sasvim u redu. Detaljno ću objasniti sve ove korake. Dakle, uronimo!
Prve stvari koje treba znati
Prije nego što pređemo na korake obuke modela, razjasnimo neke stvari. Mašinsko učenje je umjetne inteligencije disciplina koja se fokusira na razvoj algoritama koji mogu učiti iz podataka.
Da bi to učinili, modeli mašinskog učenja se obučavaju na skupu podataka koji podučava model kako da napravi ispravna predviđanja ili klasifikacije na svježim, ranije nepoznatim podacima.
Dakle, koji su to modeli? A model mašinskog učenja je sličan receptu koji računar koristi za generisanje predviđanja podataka ili izbora.
Model, kao i recept, slijedi skup uputa za procjenu podataka i generiranje predviđanja ili prosuđivanja na osnovu obrazaca pronađenih u podacima. Što je model na više podataka obučen, njegova predviđanja postaju preciznija.
Kakve modele možemo trenirati?
Pogledajmo koji su osnovni modeli mašinskog učenja.
- Linearna regresija: model koji predviđa kontinuiranu ciljnu varijablu iz jedne ili više ulaznih varijabli.
- Neuralne mreže: mreža povezanih čvorova koji mogu naučiti da otkrivaju komplicirane obrasce u podacima.
- Stabla odlučivanja: pristup donošenju odluka izgrađen na lancu razgranatih if-else izjava.
- Grupiranje: skup modela koji grupiše uporedive tačke podataka na osnovu sličnosti.
- Logistička regresija: model za probleme binarne klasifikacije u kojem ciljna varijabla ima dvije potencijalne vrijednosti.
- Stabla odlučivanja: pristup donošenju odluka izgrađen na lancu razgranatih if-else izjava.
- Slučajna šuma: model ansambla sastavljen od brojnih stabala odlučivanja. Često se koriste za klasifikaciju i regresijske aplikacije.
- K-najbliži susjedi: model koji predviđa ciljnu varijablu koristeći k-najbliže podatke u skupu za obuku.
Ovisno o našem problemu i skupu podataka, odlučujemo koji model strojnog učenja najviše odgovara našoj situaciji. Ipak, na ovo ćemo se vratiti kasnije. Sada, krenimo da treniramo naš model. Nadam se da ste već preuzeli podataka ako želite da slijedite naš primjer.
Takođe, preporučujem da imate Jupyter Notebook instaliran na vašem lokalnom računalu i koristiti ga za svoje projekte strojnog učenja.
1: Definišite problem
Prva faza u obuka mašinskog učenja model definira problem koji treba riješiti. To podrazumijeva odabir varijabli koje želite predvidjeti (poznate kao ciljna varijabla) i varijabli koje će se koristiti za generiranje tih predviđanja (poznate kao karakteristike ili prediktori).
Također biste trebali odlučiti kakvu vrstu problema s mašinskim učenjem pokušavate riješiti (klasifikacija, regresija, grupisanje, itd.) i koju vrstu podataka ćete morati prikupiti ili dobiti da biste obučili svoj model.
Vrsta modela koji koristite bit će određena tipom problema strojnog učenja koji želite riješiti. Klasifikacija, regresija i grupisanje su tri primarne kategorije izazovi mašinskog učenja. Kada želite da predvidite kategoričku varijablu, kao što je da li je e-pošta neželjena pošta ili ne, koristite klasifikaciju.
Kada želite da predvidite kontinuiranu varijablu, kao što je cijena kuće, koristite regresiju. Grupiranje se koristi za sastavljanje uporedivih stavki podataka na osnovu njihovih zajedničkih karakteristika.
Ako pogledamo naš primjer; naš izazov je da odredimo nečiji preferirani muzički stil na osnovu pola i starosti. Koristit ćemo skup podataka od 18 ljudi za ovaj primjer i informacije o njihovoj dobi, spolu i omiljenom muzičkom stilu.
2. Pripremite podatke
Nakon što ste specificirali problem, morat ćete pripremiti podatke za obuku modela. To podrazumijeva čišćenje i obradu podataka. Dakle, da možemo osigurati da je u formatu koji je Algoritam mašinskog učenja mogu koristiti.
Ovo može uključivati aktivnosti poput brisanja nedostajućih vrijednosti, transformacije kategoričkih podataka u numeričke podatke i skaliranja ili normalizacije podataka kako bi se osiguralo da su sve karakteristike na istoj skali.
Na primjer, ovako brišete vrijednosti koje nedostaju:
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())
Mala napomena: U redu o “import pandas as pd",
uvozimo Pandas biblioteku i dodjeljujemo joj pseudonim “pd” kako bismo olakšali referenciranje njenih funkcija i objekata kasnije u kodu.
Pandas je dobro poznati modul za Python za manipulaciju i analizu podataka, posebno kada se radi sa strukturiranim ili tabelarnim podacima.
U našem primjeru određivanja muzičkih žanrova. Prvo ćemo uvesti skup podataka. Nazvao sam ga music.csv, međutim, možete ga imenovati kako god želite.
Da bismo pripremili podatke za obuku modela mašinskog učenja, podelili smo ih na atribute (starost i pol) i ciljeve (muzički žanr).
Dodatno ćemo podijeliti podatke u 80:20 skupove za obuku i testiranje kako bismo procijenili performanse našeg modela i izbjegli prenamjenu.
# 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. Odaberite model mašinskog učenja.
Nakon što ste pripremili podatke, morate odabrati model strojnog učenja koji odgovara vašem zadatku.
Postoji nekoliko algoritama za odabir, kao što su stabla odlučivanja, logistička regresija, mašine za podršku vektorima, neuronske mreže i drugi. Algoritam koji odaberete bit će određen vrstom problema na koji pokušavate odgovoriti, vrstom podataka koje imate i vašim potrebama za performansama.
Za ovaj primjer ćemo koristiti klasifikator stabla odluka jer radimo s problemom klasifikacije (predviđanje kategoričkih podataka).
# Import necessary libraries
from sklearn.tree import DecisionTreeClassifier
Evo vizualizacije kako radi klasifikator stabla odluka:
4. Obučite model
Možete započeti obuku modela kada odaberete prihvatljiv algoritam mašinskog učenja. Ovo podrazumijeva korištenje prethodno generiranih podataka za edukaciju algoritma o tome kako napraviti predviđanja na svježim, ranije nevidljivim podacima.
Algoritam će modificirati svoje interne parametre tokom treninga kako bi minimizirao razliku između svojih predviđenih vrijednosti i stvarnih vrijednosti u podacima o treningu. Količina podataka koji se koriste za obuku, kao i specifični parametri algoritma, svi mogu uticati na tačnost rezultujućeg modela.
U našem konkretnom primjeru, sada kada smo se odlučili za metodu, možemo trenirati naš model s podacima obuke.
# Train the decision tree classifier
model = DecisionTreeClassifier()
model.fit(X_train, y_train)
5. Procijenite model
Nakon što je model obučen, mora se procijeniti na novim podacima kako bi se osiguralo da je tačan i pouzdan. Ovo podrazumeva testiranje modela sa podacima koji nisu korišćeni tokom obuke i poređenje njegovih projektovanih vrednosti sa stvarnim vrednostima u podacima testa.
Ovaj pregled može pomoći u identifikaciji bilo kakvih nedostataka modela, kao što je prekomjerna ili nedovoljna oprema, i može dovesti do bilo kakvog finog podešavanja koje može biti potrebno.
Koristeći podatke testiranja, procijenit ćemo ispravnost našeg 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 tačnosti za sada nije tako loša. 🙂 Da biste poboljšali svoju ocjenu točnosti, uvijek možete više očistiti podatke ili isprobati različite modele mašinskog učenja da vidite koji daje najviši rezultat.
6. Fino podesite model
Ako efikasnost modela nije dovoljna, možete ga fino podesiti promjenom različitih parametara algoritama ili eksperimentiranjem s novim algoritmima u potpunosti.
Ovaj postupak može uključivati eksperimentiranje s alternativnim brzinama učenja, modificiranje postavki regularizacije ili promjenu broja ili veličine skrivenih slojeva u neuronskoj mreži.
7. Koristite model
Kada budete zadovoljni performansama modela, možete ga početi koristiti za generiranje predviđanja novih podataka.
Ovo može uključivati unos svježih podataka u model i korištenje naučenih parametara modela za generiranje predviđanja na tim podacima ili integraciju modela u širu aplikaciju ili sistem.
Možemo koristiti naš model za generiranje predviđanja novih podataka nakon što budemo zadovoljni njegovom preciznošću. Možete isprobati različite vrijednosti spola i godina.
# Test the model with new data
new_data = [[25, 1], [30, 0]]
predictions = model.predict(new_data)
print("Predictions: ", predictions)
Zamotati
Završili smo obuku našeg prvog modela mašinskog učenja.
Nadam se da ste ga smatrali korisnim. Sada možete pokušati koristiti različite modele strojnog učenja kao što su linearna regresija ili slučajna šuma.
Postoji mnogo skupova podataka i izazova Kaggle ako želite poboljšati svoje kodiranje i razumijevanje mašinskog učenja.
Ostavite odgovor