Izdelajte svoj prvi klasifikator strojnega učenja v Pythonu



Ta članek vam bo pomagal zgraditi klasifikator strojnega učenja v Pythonu s strani Scratch. Prav tako vam bo zagotovil podrobno znanje o klasifikaciji.

je trenutno modna beseda. Nekaj ​​neverjetnih stvari se naredi s pomočjo strojnega učenja. Od tega, da smo naši osebni pomočnik , do odločanja o našem potovalne poti , pomoč pri nakupovanju, pomoč pri vodenju našega podjetja, skrb za naše zdravje in dobro počutje, strojno učenje je integrirano v naš vsakdan na tako temeljnih ravneh, da se večino časa sploh ne zavedamo, da se nanj zanašamo. V tem članku bomo sledili začetniškemu pristopu k uvajanju standardnega klasifikatorja strojnega učenja v Pythonu.

Pregled strojnega učenja

Strojno učenje je koncept, ki omogoča stroju, da se uči iz primerov in izkušenj, in to tudi brez izrecnega programiranja. Namesto da kode pišete, podatke pošiljate generičnemu algoritmu in algoritem / stroj gradi logiko na podlagi danih podatkov.





Klasifikator strojnega učenja

Strojno učenje vključuje sposobnost strojev, da sprejemajo odločitve, ocenjujejo rezultate svojih dejanj in izboljšajo svoje vedenje, da bi zaporedoma dosegali boljše rezultate.



posredovanje argumentov ukazne vrstice v javi

Učni proces poteka na tri glavne načine

  • Nadzorovano učenje
  • Nenadzorovano učenje
  • Okrepitveno učenje

Predloga za klasifikatorje strojnega učenja

Orodja za strojno učenje so zelo priročna v knjižnici Python, imenovani scikit-learn, ki je zelo enostavna za dostop in uporabo.



Namestite scikit-learn prek ukaznega poziva z uporabo:

pip install -U scikit-learn

Če ste uporabnik anaconde, lahko v pozivu za anaconda uporabite:

conda namestite scikit-learn

Namestitev zahteva predhodno namestitev paketov NumPy in SciPy v vaš sistem.

Predobdelava: Prvi in ​​najbolj potreben korak pri kateri koli analizi podatkov, ki temelji na strojnem učenju, je del predobdelave. Pravilna predstavitev in čiščenje podatkov je bistvenega pomena, da se model ML dobro uči in deluje v skladu s svojimi potenciali.

Korak 1 - Uvozite potrebne knjižnice

uvozi numpy kot np uvozi pande kot pd uvozi matplotlib.pyplot kot plt

2. korak - Uvozi nabor podatkov

nabor podatkov = pd.read_csv ()

Nato nabor podatkov razdelimo na neodvisne in odvisne spremenljivke. Neodvisne spremenljivke so vhodni podatki, odvisna spremenljivka pa izhodni podatki.

X = nabor podatkov.iloc []. Vrednosti y = nabor podatkov.iloc []. Vrednosti

3. korak - Obravnavajte manjkajoče podatke

Nabor podatkov lahko vsebuje prazne ali ničelne vrednosti, kar lahko povzroči napake v naših rezultatih. Zato moramo obravnavati takšne vnose. Običajna praksa je zamenjati ničelne vrednosti s skupno vrednostjo, kot je srednja vrednost ali najpogostejša vrednost v tem stolpcu.

iz sklearn.preprocessing import Imputer imputer = Imputer (manjkajoče vrednosti = 'NaN', strategija = 'pomeni', os = 0) imputer = imputer.fit (X []) X [] = imputer.transform (X [])

4. korak - Pretvorite kategorične spremenljivke v številske spremenljivke

podiplomsko spričevalo vs magistri
iz sklearn.preprocessing import LabelEncoder le_X = LabelEncoder () X [] = le_X.fit_transform (X []) labelencoder_y = LabelEncoder () y = labelencoder_y.fit_transform (y)

Po kodiranju se lahko zgodi, da naprava številske podatke prevzame kot uvrstitev za kodirane stolpce. Da bi zagotovili enako težo, moramo pretvoriti številke v vroče vektorje z uporabo razreda OneHotEncoder.

iz sklearn.preprocessing import OneHotEncoder oneHE = OneHotEncoder (categorical_features = []) X = oneHE.fit_transform (X) .toarray ()

5. korak - Izvedite skaliranje

Ta korak je namenjen obravnavi neskladnosti, ki izhajajo iz neusklajenih lestvic spremenljivk. Zato jih prilagajamo na isti obseg, tako da dobijo enako težo, medtem ko so vloženi v model. V ta namen uporabljamo objekt razreda StandardScaler.

iz sklearn.preprocessing import StandardScaler sc_X = StandardScaler () X = sc_X.fit_transform (X)

6. korak - Razdelite nabor podatkov na podatke o usposabljanju in testiranju

Kot zadnji korak predobdelave je treba nabor podatkov razdeliti na vadbeni in preskusni niz. Standardno razmerje med vlakom in preskusom je 75% -25%. Lahko spremenimo v skladu z zahtevami. Funkcija train_test_split () lahko to stori namesto 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)

Model Building: Ta korak je pravzaprav precej preprost. Ko se odločimo, kateri model bomo uporabili na podatkih, lahko ustvarimo objekt ustreznega razreda in ga namestimo na naš učni niz, pri čemer upoštevamo X_train kot vhod in y_train kot izhod.

iz sklearn. uvoz klasifikator = () klasifikator.fit (X_train, y_train)

Model je zdaj usposobljen in pripravljen. Zdaj lahko svoj model uporabimo za testni niz in najdemo predvideni izhod.

y_pred = klasifikator.predict (X_test)

Ogled rezultatov: Uspešnost klasifikatorja je mogoče oceniti s parametri natančnosti, natančnosti, odpoklica in ocene f1. Te vrednosti je mogoče videti z metodo, imenovano klasifikacija_report (). Na to lahko gledamo tudi kot na matrico zmede, ki nam pomaga vedeti, koliko katere kategorije podatkov je bilo pravilno razvrščenih.

iz sklearn.metrics import confusion_matrix cm = confusion_matrix (y_test, y_pred) print (cm) iz sklearn.metrics import logistics_report target_names = [] print (klasifikacija_poročila (y_test, y_pred, target_names = target_names))

Problem klasifikatorja strojnega učenja

Uporabili bomo zelo priljubljen in preprost nabor podatkov Iris, ki vsebuje dimenzije cvetov v treh kategorijah - Iris-setosa, Iris-versicolor in Iris-virginica. V naboru podatkov je 150 vnosov.

# Uvoz knjižnic uvoz numpy kot np import matplotlib.pyplot kot plt import pandas kot pd # Uvoz nabora podatkovnih nizov = pd.read_csv ('iris.csv')

Oglejmo si nabor podatkov zdaj.

tutorial o orodju talend etl pdf
nabor podatkov.head ()

Imamo 4 neodvisne spremenljivke (brez Id), in sicer številke stolpcev 1-4, stolpec 5 pa je odvisna spremenljivka. Tako jih lahko ločimo.

X = nabor podatkov.iloc [:, 1: 5] .vrednosti y = nabor podatkov.iloc [:, 5] .values

Zdaj lahko nabor podatkov razdelimo na usposabljanje in testiranje.

# Razdelitev nabora podatkov v vadbeni in preizkusni niz 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)

Zdaj bomo za nabor podatkov uporabili klasifikator logistične regresije.

# Izdelava in usposabljanje modela iz sklearn.linear_model import LogisticRegression klasifikator = LogisticRegression () klasifikator.fit (X_train, y_train) # Predvidevanje rezultatov preskusnega niza y_pred = klasifikator.predict (X_test)

Zadnji korak bo analiza uspešnosti izurjenega modela.

# Izdelava matrice zmede iz sklearn.metrics import confusion_matrix cm = confusion_matrix (y_test, y_pred) print (cm)

To nam kaže, da model pravilno predvideva 13 vnosov prve kategorije, 11 druge in 9 tretje kategorije.

# Ustvarjanje natančnosti, natančnosti, odpoklica in rezultata f1 iz sklearn.metrics import logistics_report target_names = ['Iris-setosa', 'Iris-versicolor', 'Iris-virginica'] print (report_class_port (y_test, y_pred, target_names = target_names) )

Poročilo prikazuje vrednosti natančnosti, odpoklica, ocene f1 in natančnosti modela na našem testnem naboru, ki je sestavljen iz 38 vnosov (25% nabora podatkov).

Čestitamo, v Pythonu ste uspešno ustvarili in implementirali svoj prvi klasifikator strojnega učenja! Za poglobljeno znanje skupaj z različnimi aplikacijami se lahko prijavite za spletno usposabljanje Python v živo s podporo 24 ur na dan in 7 dni v tednu.