je modna riječ upravo sada. Neke nevjerojatne stvari rade se uz pomoć strojnog učenja. Od toga što smo naši osobni pomoćnik , do odlučivanja o našem putne rute , pomaže nam u kupovini, pomaže nam u vođenju našeg posla, brinemo o sebi zdravlje i dobrobit, strojno učenje integrirano je u naše svakodnevno postojanje na tako temeljnim razinama, da većinu vremena niti ne shvaćamo da se na njega oslanjamo. U ovom ćemo članku slijediti početnički pristup za implementaciju standardnog klasifikatora strojnog učenja u Pythonu.
- Pregled strojnog učenja
- Predložak za klasifikatore strojnog učenja
- Problem klasifikacije strojnog učenja
Pregled strojnog učenja
Strojno učenje koncept je koji omogućuje stroju da uči na primjerima i iskustvima, i to bez izričitog programiranja. Dakle, umjesto da pišete kôd, ono što radite je da podatke šaljete generičkom algoritmu, a algoritam / stroj gradi logiku na temelju danih podataka.
Strojno učenje uključuje sposobnost strojeva da donose odluke, procjenjuju rezultate svojih radnji i poboljšavaju svoje ponašanje kako bi uzastopno postizali bolje rezultate.
Proces učenja odvija se na tri glavna načina
- Nadzirano učenje
- Učenje bez nadzora
- Učenje s pojačanjem
Predložak za klasifikatore strojnog učenja
Alati za strojno učenje pružaju se vrlo povoljno u Python biblioteci nazvanoj scikit-learn koja je vrlo jednostavna za pristup i primjenu.
Instalirajte scikit-learn putem naredbenog retka koristeći:
pip install -U scikit-learn
Ako ste korisnik anaconde, u odzivu anaconda možete koristiti:
conda instalirati scikit-learn
Instalacija zahtijeva prethodnu instalaciju paketa NumPy i SciPy na vaš sustav.
Predobrada: Prvi i najpotrebniji korak u bilo kojoj analizi podataka temeljenoj na strojnom učenju je dio predobrade. Ispravno predstavljanje i čišćenje podataka od presudne je važnosti da bi se ML model dobro trenirao i izvodio u skladu sa svojim potencijalima.
Korak 1 - Uvezite potrebne knjižnice
import numpy as np import pandas as pd import matplotlib.pyplot as plt
Korak 2 - Uvezite skup podataka
skup podataka = pd.read_csv ()
Zatim skup podataka dijelimo na neovisne i ovisne varijable. Neovisne varijable bit će ulazni podaci, a ovisna varijabla izlazni podaci.
X = skup podataka.iloc []. Vrijednosti y = skup podataka.iloc []. Vrijednosti
3. korak - Obraditi nedostajuće podatke
Skup podataka može sadržavati prazne ili null vrijednosti, što može uzrokovati pogreške u našim rezultatima. Stoga se moramo baviti takvim unosima. Uobičajena je praksa zamjena null vrijednosti zajedničkom vrijednošću, poput srednje vrijednosti ili najčešće vrijednosti u tom stupcu.
from sklearn.preprocessing import Imputer imputer = Imputer (nedostajuće vrijednosti = 'NaN', strategija = 'znači', os = 0) imputer = imputer.fit (X []) X [] = imputer.transform (X [])
4. korak - Pretvori kategorijske varijable u numeričke varijable
iz sklearn.preprocessing import LabelEncoder le_X = LabelEncoder () X [] = le_X.fit_transform (X []) labelencoder_y = LabelEncoder () y = labelencoder_y.fit_transform (y)
Sada, nakon kodiranja, može se dogoditi da stroj pretpostavlja numeričke podatke kao rang za kodirane stupce. Stoga, da bismo osigurali jednaku težinu, moramo pretvoriti brojeve u jedno vruće vektore, koristeći klasu OneHotEncoder.
from sklearn.preprocessing import OneHotEncoder oneHE = OneHotEncoder (categorical_features = []) X = oneHE.fit_transform (X) .toarray ()
Korak 5 - Izvršite skaliranje
Ovaj korak odnosi se na neslaganja koja proizlaze iz neusklađenih ljestvica varijabli. Stoga ih sve skaliramo u isti raspon, tako da dobivaju jednaku težinu dok su ulazni u model. U tu svrhu koristimo objekt klase StandardScaler.
iz sklearn.preprocessing import StandardScaler sc_X = StandardScaler () X = sc_X.fit_transform (X)
Korak 6 - Podijelite skup podataka na podatke o obuci i testiranju
Kao posljednji korak predobrade, skup podataka treba podijeliti na set treninga i test set. Standardni omjer podjele vlaka i testa je 75% -25%. Možemo mijenjati prema zahtjevima. Funkcija train_test_split () to može učiniti za nas.
iz sklearn.model_selection uvoz train_test_split X_train, X_test, y_train, y_test = train_test_split (X, y, test_size = 0.25)
Izrada modela: Ovaj je korak zapravo vrlo jednostavan. Jednom kada odlučimo koji ćemo model primijeniti na podatke, možemo stvoriti objekt odgovarajuće klase i uklopiti objekt u naš set treninga, uzimajući u obzir X_train kao ulaz, a y_train kao izlaz.
od sklearn. uvoz klasifikator = () klasifikator.fit (X_train, y_train)
Model je sada obučen i spreman. Sada možemo primijeniti svoj model na testni skup i pronaći predviđeni izlaz.
y_pred = klasifikator.predvid (X_test)
Rezultati gledanja: Izvedba klasifikatora može se procijeniti parametrima točnosti, preciznosti, opoziva i f1-ocjene. Te se vrijednosti mogu vidjeti pomoću metode poznate pod nazivom klasifikacija_izvještaja (). t se također može promatrati kao matrica zbrke koja nam pomaže znati koliko je koje kategorije podataka ispravno klasificirano.
from sklearn.metrics import confusion_matrix cm = confusion_matrix (y_test, y_pred) print (cm) from sklearn.metrics import logistics_report target_names = [] print (klasifikacija_izvještaja (y_test, y_pred, target_names = target_names))
Problem klasifikatora strojnog učenja
Koristit ćemo vrlo popularan i jednostavan skup podataka Iris koji sadrži dimenzije cvijeća u 3 kategorije - Iris-setosa, Iris-versicolor i Iris-virginica. U skupu podataka nalazi se 150 unosa.
# Uvoz biblioteka import numpy kao np import matplotlib.pyplot kao plt import pandas kao pd # Uvoz skupa podataka skupa podataka = pd.read_csv ('iris.csv')
Pogledajmo skup podataka sada.
set podataka.head ()
Imamo 4 neovisne varijable (isključujući Id), naime brojevi stupaca 1-4, a stupac 5 je ovisna varijabla. Tako da ih možemo razdvojiti.
X = skup podataka.iloc [:, 1: 5] .values y = skup podataka.iloc [:, 5] .values
Sada skup podataka možemo podijeliti na trening i testiranje.
# Razdvajanje skupa podataka u set treninga i testnog skupa iz sklearn.model_selection import train_test_split X_train, X_test, y_train, y_test = train_test_split (X, y, test_size = 0,25)
Sada ćemo primijeniti klasifikator logističke regresije na skup podataka.
# Izgradnja i trening modela iz sklearn.linear_model import LogisticRegression klasifikator = LogisticRegression () klasifikator.fit (X_train, y_train) # Predviđanje rezultata skupa testova y_pred = klasifikator.predict (X_test)
Posljednji korak bit će analiza performansi uvježbanog modela.
# Izrada matrice zbrke iz sklearn.metrics uvoza confusion_matrix cm = confusion_matrix (y_test, y_pred) print (cm)
To nam pokazuje da je model točno predvidio 13 unosa prve kategorije, 11 druge i 9 treće kategorije.
# Generiranje točnosti, preciznosti, opoziva i f1-rezultata iz sklearn.metrics import logistics_report target_names = ['Iris-setosa', 'Iris-versicolor', 'Iris-virginica'] print (izvještaj_klasifikacije (y_test, y_pred, target_names = target_names) )
deklariranje niza objekata u javi
Izvješće prikazuje vrijednosti preciznosti, opoziva, f1-rezultata i točnosti modela na našem testnom skupu, koji se sastoji od 38 unosa (25% skupa podataka).
Čestitamo, uspješno ste stvorili i implementirali svoj prvi klasifikator strojnog učenja na Pythonu! Da biste stekli dubinsko znanje zajedno s raznim aplikacijama, možete se prijaviti za internetski trening Pythona uživo s podrškom 24/7 i doživotnim pristupom.