Vytvorenie prvého klasifikátora strojového učenia v Pythone



Tento článok vám pomôže zostaviť klasifikátor strojového učenia v jazyku Python od spoločnosti Scratch. Poskytne vám tiež podrobné vedomosti o klasifikácii.

je práve teraz módne slovo. Niektoré neuveriteľné veci sa dejú pomocou strojového učenia. Z toho, že sme naši osobný asistent , k rozhodovaniu našich cestovné trasy , pomáha nám nakupovať, pomáha nám pri podnikaní a starostlivosti o nás zdravie a wellness, strojové učenie je integrované do našej každodennej existencie na takých základných úrovniach, že si väčšinou ani neuvedomujeme, že sa na to spoliehame. V tomto článku sa budeme riadiť prístupom začiatočníkov k implementácii štandardného klasifikátora strojového učenia v Pythone.

Prehľad strojového učenia

Machine Learning je koncept, ktorý umožňuje stroju učiť sa z príkladov a skúseností, a to tiež bez toho, aby bol výslovne naprogramovaný. Takže namiesto toho, aby ste písali kód, robíte to, že napájate údaje do všeobecného algoritmu a algoritmus / stroj vytvára logiku na základe daných údajov.





Klasifikátor strojového učenia

Strojové učenie zahŕňa schopnosť strojov prijímať rozhodnutia, hodnotiť výsledky svojich činov a zlepšovať svoje správanie s cieľom postupne dosahovať lepšie výsledky.



Proces výučby prebieha tromi hlavnými spôsobmi

  • Učenie pod dohľadom
  • Učenie bez dozoru
  • Výučba posilňovania

Šablóna pre klasifikátory strojového učenia

Nástroje strojového učenia sú celkom pohodlne poskytované v knižnici Pythonu pomenovanej ako scikit-learn, ku ktorej je veľmi jednoduchý prístup a použitie.



Nainštalujte program scikit-learn pomocou príkazového riadku pomocou:

pip install -U scikit-learn

Ak ste používateľom anakondy, na výzvu pre anakondu môžete použiť:

conda nainštalovať scikit-learn

Inštalácia vyžaduje predchádzajúcu inštaláciu balíkov NumPy a SciPy do vášho systému.

Predbežné spracovanie: Prvým a najdôležitejším krokom v akejkoľvek analýze dát založených na strojovom učení je predspracovateľská časť. Správne znázornenie a vyčistenie údajov je pre model ML úplne nevyhnutné, aby mohol dobre trénovať a využívať svoj potenciál.

Krok 1 - Importujte potrebné knižnice

importovať numpy ako np importovať pandy ako pd importovať matplotlib.pyplot ako plt

Krok 2 - Importujte množinu údajov

dataset = pd.read_csv ()

Potom sme dataset rozdelili na nezávislé a závislé premenné. Nezávislými premennými sú vstupné údaje a závislou premennou sú výstupné údaje.

X = hodnoty dataset.iloc []. Y = hodnoty dataset.iloc []

Krok 3 - Zaobchádzajte s chýbajúcimi údajmi

Sada údajov môže obsahovať prázdne alebo nulové hodnoty, čo môže spôsobiť chyby v našich výsledkoch. Preto sa musíme zaoberať takýmito záznamami. Bežnou praxou je nahradiť nulové hodnoty bežnou hodnotou, napríklad strednou alebo najčastejšou hodnotou v danom stĺpci.

z sklearn.preprocessing import Imputer imputer = Imputer (missing_values ​​= 'NaN', strategy = 'mean', axis = 0) imputer = imputer.fit (X []) X [] = imputer.transform (X [])

Krok 4 - Prevod kategorických premenných na číselné premenné

z sklearn.preprocessing import LabelEncoder le_X = LabelEncoder () X [] = le_X.fit_transform (X []) labelencoder_y = LabelEncoder () y = labelencoder_y.fit_transform (y)

Teraz, po kódovaní, sa môže stať, že stroj prevezme číselné údaje ako poradie pre kódované stĺpce. Aby sme teda zabezpečili rovnakú váhu, musíme čísla previesť na jednorazové vektory pomocou triedy OneHotEncoder.

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

Krok 5 - Vykonajte zmenu mierky

java rozdiel medzi hashmapou a hashtable

Tento krok je zameraný na riešenie nezrovnalostí vyplývajúcich z nezodpovedajúcich stupníc premenných. Z tohto dôvodu sme ich všetky zmenšili na rovnaký rozsah, aby pri vstupe do modelu dostali rovnakú váhu. Na tento účel používame objekt triedy StandardScaler.

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

Krok 6 - Rozdelte súbor údajov na údaje o tréningu a testovaní

Ako posledný krok predspracovania je potrebné súbor údajov rozdeliť na tréningovú sadu a testovaciu sadu. Štandardný pomer rozdelenia skúšky na vlak je 75% - 25%. Môžeme upraviť podľa požiadaviek. Môže to za nás urobiť funkcia train_test_split ().

z sklearn.model_selection import train_test_split X_train, X_test, y_train, y_test = train_test_split (X, y, test_size = 0,25)

Budova modelu: Tento krok je v skutočnosti celkom jednoduchý. Keď sa rozhodneme, ktorý model použijeme na dáta, môžeme vytvoriť objekt zodpovedajúcej triedy a umiestniť tento objekt na našu cvičnú množinu, pričom X_train považujeme za vstup a y_train za výstup.

od sklearn. importovať klasifikátor = () classifier.fit (X_train, y_train)

Model je teraz vyškolený a pripravený. Teraz môžeme náš model použiť na testovaciu súpravu a nájsť predpokladaný výstup.

y_pred = classifier.predict (X_test)

Prezeranie výsledkov: Výkonnosť klasifikátora sa dá hodnotiť pomocou parametrov presnosti, presnosti, vyvolania a skóre f1. Tieto hodnoty je možné vidieť pomocou metódy známej ako classification_report (). Na t sa dá pozerať aj ako na zmätočnú maticu, ktorá nám pomáha zistiť, koľko z ktorých kategórií údajov bolo klasifikovaných správne.

ako nainštalovať php na Windows 7
z sklearn.metrics import confusion_matrix cm = confusion_matrix (y_test, y_pred) print (cm) z sklearn.metrics import classification_report target_names = [] print (classification_report (y_test, y_pred, target_names = target_names))

Problém klasifikátora strojového učenia

Použijeme veľmi populárny a jednoduchý súbor údajov Iris obsahujúci rozmery kvetov v 3 kategóriách - Iris-setosa, Iris-versicolor a Iris-virginica. V datasete je 150 záznamov.

# Import knižníc importujte numpy ako np import matplotlib.pyplot ako plt importujte pandy ako pd # Importujte dataset dataset = pd.read_csv ('iris.csv')

Pozrime sa teraz na množinu údajov.

dataset.head ()

Máme 4 nezávislé premenné (okrem Id), konkrétne čísla stĺpcov 1-4 a stĺpec 5 je závislá premenná. Môžeme ich teda oddeliť.

X = dataset.iloc [:, 1: 5] .hodnoty y = dataset.iloc [:, 5] .hodnoty

Teraz môžeme rozdeliť množinu údajov na školenie a testovanie.

# Rozdelenie množiny údajov na cvičnú a testovaciu množinu zo sklearn.model_selection import train_test_split X_train, X_test, y_train, y_test = train_test_split (X, y, test_size = 0,25)

Teraz použijeme klasifikátor logistickej regresie na množinu údajov.

# Budovanie a výcvik modelu z sklearn.linear_model import LogisticRegression classifier = LogisticRegression () classifier.fit (X_train, y_train) # Predpovedanie výsledkov testovacej sady y_pred = classifier.predict (X_test)

Posledným krokom bude analýza výkonu trénovaného modelu.

# Tvorba Matice zmätku z sklearn.metrics import confusion_matrix cm = confusion_matrix (y_test, y_pred) tlač (cm)

To nám ukazuje, že model správne predpovedá 13 položiek prvej kategórie, 11 druhej a 9 tretej kategórie.

# Generovanie presnosti, precíznosti, opätovného vyvolania a skóre f1 z sklearn.metrics import classification_report target_names = ['Iris-setosa', 'Iris-versicolor', 'Iris-virginica'] print (classification_report (y_test, y_pred, target_names = target_names) )

Správa zobrazuje hodnoty presnosti, vyvolania, skóre f1 a presnosti modelu na našej testovacej sade, ktorá pozostáva z 38 záznamov (25% súboru údajov).

Gratulujeme, úspešne ste vytvorili a implementovali svoj prvý klasifikátor strojového učenia v Pythone! Ak chcete získať podrobné informácie o spolu s rôznymi aplikáciami sa môžete zaregistrovať na živé online školenie v jazyku Python s podporou 24/7 a doživotným prístupom.