Želite li započeti s stroj za učenje?
Napravio sam jednostavan i lak vodič za potpune početnike. Zajedno ćemo proći kroz osnovne korake obuke modela strojnog učenja.
Dok objašnjavam korake obuke modela jedan po jedan, također ću dati vrlo osnovni primjer problema strojnog učenja. Dakle, ako želite pratiti, možete preuzeti ovaj uzorak skupa podataka s ovoga link.
Ovo je samo ogledni skup podataka koji će vam pomoći da započnete sa strojnim učenjem.
Imamo 18 vrijednosti ljudi različite dobi i spola koji imaju definiranu svoju omiljenu glazbu. Pomoću obilježja “dob” i “spol” pokušat ćemo pogoditi koji im je glazbeni žanr najdraži.
Napomena: 1 i 0 dodijeljeni su spolovima kao ženski i muški u ovom skupu podataka.
Međutim, ako ne želite slijediti primjer, to je također sasvim u redu. Detaljno ću objasniti sve te korake. Dakle, zaronimo!
Prvo što treba znati
Prije nego krenemo u korake obuke modela, razjasnimo neke točke. Strojno učenje je umjetna inteligencija disciplina koja se usredotočuje na razvoj algoritama koji mogu učiti iz podataka.
Da bi se to postiglo, modeli strojnog učenja treniraju se na skupu podataka koji uči model kako napraviti točna predviđanja ili klasifikacije na svježim, dosad nepoznatim podacima.
Dakle, koji su to modeli? A model strojnog učenja sličan je receptu koji računalo koristi za generiranje predviđanja podataka ili izbora.
Model, kao i recept, slijedi skup uputa za procjenu podataka i generiranje predviđanja ili prosudbi na temelju uzoraka pronađenih u podacima. Što je više podataka model obučen, njegova predviđanja postaju točnija.
Kakve modele možemo trenirati?
Pogledajmo koji su osnovni modeli strojnog učenja.
- Linearna regresija: model koji predviđa kontinuiranu ciljnu varijablu iz jedne ili više ulaznih varijabli.
- Neuronske mreže: mreža povezanih čvorova koji mogu naučiti otkrivati komplicirane obrasce u podacima.
- Stabla odlučivanja: pristup odlučivanju izgrađen na lancu grananja if-else izjava.
- Grupiranje: skup modela koji grupiraju usporedive podatkovne točke na temelju sličnosti.
- Logistička regresija: model za probleme binarne klasifikacije u kojem ciljna varijabla ima dvije potencijalne vrijednosti.
- Stabla odlučivanja: pristup odlučivanju izgrađen na lancu grananja if-else izjava.
- Slučajna šuma: skupni model sastavljen od brojnih stabala odlučivanja. Često se koriste za klasifikacijske i regresijske aplikacije.
- K-najbliži susjedi: model koji predviđa ciljnu varijablu pomoću k-najbližih podatkovnih točaka 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, počnimo trenirati naš model. Nadam se da ste već preuzeli skup podataka ako želite slijediti naš primjer.
Također, preporučam imati Jupyterova bilježnica instaliran na vašem lokalnom računalu i koristite ga za svoje projekte strojnog učenja.
1: Definirajte problem
Prva faza u obuka strojnog učenja model definira problem koji treba riješiti. To podrazumijeva odabir varijabli koje želite prognozirati (poznatih kao ciljna varijabla) i varijabli koje će se koristiti za generiranje tih predviđanja (poznatih kao značajke ili prediktori).
Također biste trebali odlučiti kakvu vrstu problema strojnog učenja pokušavate riješiti (klasifikacija, regresija, grupiranje itd.) i koju ćete vrstu podataka trebati prikupiti ili nabaviti za obuku vašeg modela.
Vrsta modela koji koristite odredit će se prema vrsti problema strojnog učenja koji namjeravate riješiti. Klasifikacija, regresija i grupiranje tri su primarne kategorije izazove strojnog učenja. Kada želite predvidjeti kategoričku varijablu, primjerice je li e-pošta spam ili ne, koristite klasifikaciju.
Kada želite predvidjeti kontinuiranu varijablu, poput cijene kuće, koristite regresiju. Grupiranje se koristi za sastavljanje usporedivih podataka na temelju njihovih zajedničkih karakteristika.
Ako pogledamo naš primjer; naš je izazov odrediti preferirani glazbeni stil osobe prema njezinu spolu i dobi. Koristit ćemo skup podataka od 18 ljudi za ovaj primjer i podatke o njihovoj dobi, spolu i omiljenom glazbenom stilu.
2. Pripremite podatke
Nakon što navedete 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 algoritam strojnog učenja mogu koristiti.
To može uključivati aktivnosti poput brisanja vrijednosti koje nedostaju, pretvaranja kategoričkih podataka u numeričke podatke i skaliranja ili normaliziranja 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 retku o “import pandas as pd",
uvozimo biblioteku Pandas i dodjeljujemo joj pseudonim "pd" kako bismo kasnije u kodu lakše referencirali njene funkcije i objekte.
Pandas je dobro poznati modul za Python za manipulaciju i analizu podataka, posebno kada se radi sa strukturiranim ili tabličnim podacima.
U našem primjeru određivanja glazbenih žanrova. Prvo ćemo uvesti skup podataka. Nazvao sam ga music.csv, no vi ga možete nazvati kako god želite.
Kako bismo pripremili podatke za obuku modela strojnog učenja, podijelili smo ih na atribute (dob i spol) i ciljeve (glazbeni žanr).
Dodatno ćemo podijeliti podatke u skupove za obuku i testiranje u omjeru 80:20 kako bismo procijenili izvedbu našeg modela i izbjegli prekomjerno opremanje.
# 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 strojnog 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, vektorski strojevi podrške, 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 izvedbom.
Koristit ćemo klasifikator stabla odlučivanja za ovaj primjer jer radimo s problemom klasifikacije (predviđanje kategoričkih podataka).
# Import necessary libraries
from sklearn.tree import DecisionTreeClassifier
Evo vizualizacije kako radi Klasifikator stabla odlučivanja:
4. Vježbajte model
Možete početi obučavati model kada odaberete prihvatljiv algoritam strojnog učenja. To podrazumijeva korištenje prethodno generiranih podataka za edukaciju algoritma o tome kako napraviti predviđanja na svježim, prethodno neviđenim podacima.
Algoritam će modificirati svoje interne parametre tijekom obuke kako bi smanjio razliku između svojih predviđenih vrijednosti i stvarnih vrijednosti u podacima obuke. Količina podataka koja se koristi za obuku, kao i specifični parametri algoritma, mogu utjecati na točnost rezultirajućeg modela.
U našem konkretnom primjeru, sada kada smo se odlučili za metodu, možemo uvježbati naš model pomoću podataka uvježbavanja.
# 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 točan i pouzdan. To podrazumijeva testiranje modela s podacima koji nisu korišteni tijekom obuke i usporedbu njegovih projiciranih vrijednosti sa stvarnim vrijednostima u testnim podacima.
Ovaj pregled može pomoći u prepoznavanju bilo kakvih nedostataka modela, kao što je previše ili nedovoljno uklapanje, i može dovesti do finog podešavanja koje bi moglo biti potrebno.
Pomoću podataka 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)
Ocjena toč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 strojnog učenja da biste vidjeli koji daje najvišu ocjenu.
6. Fino podesite model
Ako učinkovitost modela nije dovoljna, možete ga fino podesiti mijenjanjem različitih parametara algoritma ili potpuno eksperimentiranjem s novim algoritmima.
Ovaj postupak može uključivati eksperimentiranje s alternativnim stopama učenja, modificiranje postavki regularizacije ili mijenjanje broja ili veličine skrivenih slojeva u neuronskoj mreži.
7. Koristite model
Nakon što budete zadovoljni izvedbom modela, možete ga početi koristiti za generiranje predviđanja na temelju novih podataka.
To može uključivati unošenje novih podataka u model i korištenje naučenih parametara modela za generiranje predviđanja na tim podacima ili integraciju modela u širu aplikaciju ili sustav.
Možemo koristiti naš model za generiranje predviđanja na novim podacima nakon što smo zadovoljni njihovom točnošću. Možete isprobati različite vrijednosti spola i dobi.
# 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 strojnog učenja.
Nadam se da vam je bilo od koristi. Sada možete pokušati koristiti različite modele strojnog učenja kao što su linearna regresija ili nasumična šuma.
Postoji mnogo skupova podataka i izazova Kaggle ako želite poboljšati svoje kodiranje i razumijevanje strojnog učenja.
Ostavi odgovor