Construirea primului dvs. clasificator de învățare automată în Python



Acest articol vă va ajuta să construiți un clasificator de învățare automată în Python de la Scratch. De asemenea, vă va oferi o cunoaștere detaliată a clasificării.

este cuvântul cheie acum. Unele lucruri incredibile se fac cu ajutorul învățării automate. De la a fi a noastră asistent personal , la a ne decide trasee de călătorie , ajutându-ne să facem cumpărături, ajutându-ne în gestionarea afacerilor noastre, la îngrijirea noastră sănătate și wellness, învățarea automată este integrată existenței noastre de zi cu zi la niveluri atât de fundamentale, încât de cele mai multe ori nici nu ne dăm seama că ne bazăm pe ea. În acest articol, vom urma o abordare pentru începători pentru a implementa un clasificator standard de învățare automată în Python.

Prezentare generală a învățării automate

Învățarea automată este un concept care permite mașinii să învețe din exemple și experiență, și asta, fără a fi programat în mod explicit. Deci, în loc să scrieți codul, ceea ce faceți este să trimiteți date algoritmului generic, iar algoritmul / mașina construiește logica pe baza datelor date.





Clasificator de învățare automată

Învățarea automată implică capacitatea mașinilor de a lua decizii, de a evalua rezultatele acțiunilor lor și de a-și îmbunătăți comportamentul pentru a obține rezultate mai bune succesiv.



Procesul de învățare are loc în trei moduri majore

  • Învățare supravegheată
  • Învățare fără supraveghere
  • Consolidarea învățării

Un șablon pentru clasificatorii de învățare automată

Instrumentele de învățare automată sunt furnizate destul de convenabil într-o bibliotecă Python numită scikit-learn, care sunt foarte ușor de accesat și aplicat.



Instalați scikit-learn prin promptul de comandă folosind:

pip install -U scikit-learn

Dacă sunteți un utilizator anaconda, la solicitarea anaconda puteți utiliza:

conda instalează scikit-learn

Instalarea necesită instalarea prealabilă a pachetelor NumPy și SciPy pe sistemul dumneavoastră.

Preprocesare: Primul și cel mai necesar pas în orice analiză de date bazată pe învățarea automată este partea de preprocesare. Reprezentarea corectă și curățarea datelor este absolut esențială pentru ca modelul ML să se antreneze bine și să funcționeze la potențialul său.

Pasul 1 - Importați bibliotecile necesare

import numpy ca np import panda ca pd import matplotlib.pyplot ca plt

Pasul 2 - Importați setul de date

set de date = pd.read_csv ()

Apoi împărțim setul de date în variabile independente și dependente. Variabilele independente vor fi datele de intrare, iar variabila dependentă este datele de ieșire.

X = dataset.iloc []. Valori y = dataset.iloc []. Valori

Pasul 3 - Manipulați datele lipsă

Setul de date poate conține valori goale sau nule, ceea ce poate provoca erori în rezultatele noastre. Prin urmare, trebuie să ne ocupăm de astfel de intrări. O practică obișnuită este înlocuirea valorilor nule cu o valoare comună, cum ar fi media sau cea mai frecventă valoare din acea coloană.

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

Pasul 4 - Conversia variabilelor categorice în variabile numerice

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

Acum, după codificare, s-ar putea întâmpla ca aparatul să-și asume datele numerice ca un clasament pentru coloanele codificate. Astfel, pentru a oferi o greutate egală, trebuie să convertim numerele în vectori one-hot, utilizând clasa OneHotEncoder.

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

Pasul 5 - Efectuați scalarea

Acest pas este de a face față discrepanțelor care rezultă din scările nepotrivite ale variabilelor. Prin urmare, le scalăm pe toate la același interval, astfel încât să primească o greutate egală în timp ce sunt introduse în model. Folosim un obiect din clasa StandardScaler în acest scop.

din importul sklearn.preprocessing StandardScaler sc_X = StandardScaler () X = sc_X.fit_transform (X)

Pasul 6 - Împărțiți setul de date în date de formare și testare

Ca ultim pas al preprocesării, setul de date trebuie împărțit într-un set de antrenament și un set de testare. Raportul standard al repartizării tren-test este de 75% -25%. Putem modifica conform cerințelor. Funcția train_test_split () poate face acest lucru pentru noi.

cum se creează fișiere jurnal în java
din sklearn.model_selection import train_test_split X_train, X_test, y_train, y_test = train_test_split (X, y, test_size = 0,25)

Construirea modelului: Acest pas este de fapt destul de simplu. Odată ce decidem ce model să aplicăm pe date, putem crea un obiect din clasa sa corespunzătoare și putem încadra obiectul pe setul nostru de antrenament, considerând X_train ca intrare și y_train ca ieșire.

de la sklearn. import clasificator = () clasificator.fit (X_train, y_train)

Modelul este acum pregătit și pregătit. Acum putem aplica modelul nostru setului de testare și putem găsi rezultatul estimat.

y_pred = clasificator.predict (X_test)

Vizualizarea rezultatelor: Performanța unui clasificator poate fi evaluată prin parametrii de acuratețe, precizie, rechemare și scor f1. Aceste valori pot fi văzute folosind o metodă cunoscută sub numele de classification_report (). t poate fi privit și ca o matrice de confuzie care ne ajută să știm câte dintre categoriile de date au fost clasificate corect.

din sklearn.metrics import confusion_matrix cm = confusion_matrix (y_test, y_pred) print (cm) din sklearn.metrics import classification_report target_names = [] print (classification_report (y_test, y_pred, target_names = target_names))

Problema clasificatorului de învățare automată

Vom folosi setul de date Iris foarte popular și simplu, care conține dimensiuni ale florilor în 3 categorii - Iris-setosa, Iris-versicolor și Iris-virginica. Există 150 de intrări în setul de date.

# Importarea bibliotecilor importă numpy ca np import matplotlib.pyplot ca plt import panda ca pd # Importarea setului de date = pd.read_csv ('iris.csv')

Să vedem acum setul de date.

dataset.head ()

Avem 4 variabile independente (cu excepția Id-ului), și anume numerele de coloane 1-4, iar coloana 5 este variabila dependentă. Deci le putem separa.

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

Acum putem împărți setul de date în instruire și testare.

# Împărțirea setului de date în setul de instruire și setul de testare din sklearn.model_selection import train_test_split X_train, X_test, y_train, y_test = train_test_split (X, y, test_size = 0.25)

Acum vom aplica un clasificator de regresie logistică setului de date.

# Construirea și instruirea modelului din importul sklearn.linear_model LogisticRegression classifier = LogisticRegression () classifier.fit (X_train, y_train) # Prezicerea rezultatelor setului de testare y_pred = classifier.predict (X_test)

Ultimul pas va fi analiza performanței modelului instruit.

# Realizarea matricei de confuzie din importul sklearn.metrics import confusion_matrix cm = confusion_matrix (y_test, y_pred) print (cm)

Acest lucru ne arată că 13 intrări din prima categorie, 11 din a doua și 9 din a treia categorie sunt corect prezise de model.

# Generarea preciziei, preciziei, rechemării și scorului 1 din sklearn.metrics import classification_report target_names = ['Iris-setosa', 'Iris-versicolor', 'Iris-virginica'] print (classification_report (y_test, y_pred, target_names = target_names) )

Raportul prezintă valorile de precizie, rechemare, scor 1 și precizie ale modelului din setul nostru de testare, care constă din 38 de intrări (25% din setul de date).

Felicitări, ați creat și implementat cu succes primul dvs. clasificator de învățare automată în Python! Pentru a obține cunoștințe aprofundate împreună cu diversele sale aplicații, vă puteți înscrie pentru instruire online Python live cu asistență 24/7 și acces pe viață.