Izrada vašeg prvog klasifikatora strojnog učenja u Pythonu



Ovaj članak pomoći će vam da izradite klasifikator strojnog učenja u Pythonu. Također će vam pružiti detaljno znanje o klasifikaciji.

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

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.





Klasifikator strojnog učenja

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.