Construint el vostre primer classificador d'aprenentatge automàtic a Python



Aquest article us ajudarà a construir un classificador d'aprenentatge automàtic a Python des de Scratch. També us proporcionarà un coneixement detallat de la classificació.

és la paraula de moda ara mateix. Es fan algunes coses increïbles amb l’ajut de l’aprenentatge automàtic. De ser nostre assistenta personal , a decidir el nostre rutes de viatge , ajudant-nos a comprar, ajudant-nos a dirigir els nostres negocis, a tenir cura dels nostres salut i benestar, l’aprenentatge automàtic s’integra a la nostra existència diària a nivells tan fonamentals, que la majoria de les vegades ni ens adonem que hi confiem. En aquest article, seguirem un enfocament per a principiants per implementar un classificador d’aprenentatge automàtic estàndard a Python.

Visió general de l'aprenentatge automàtic

L’aprenentatge automàtic és un concepte que permet a la màquina aprendre d’exemples i experiències, i això també sense haver-lo programat explícitament. Per tant, en lloc d’escriure el codi, el que feu és alimentar dades a l’algorisme genèric, i l’algoritme / màquina construeix la lògica en funció de les dades donades.





Classificador d

L’aprenentatge automàtic implica la capacitat de les màquines per prendre decisions, avaluar els resultats de les seves accions i millorar el seu comportament per obtenir millors resultats successivament.



El procés d’aprenentatge té lloc de tres maneres principals

  • Aprenentatge supervisat
  • Aprenentatge sense supervisió
  • Aprenentatge de reforç

Una plantilla per a classificadors d'aprenentatge automàtic

Les eines d’aprenentatge automàtic es proporcionen de forma molt còmoda en una biblioteca de Python anomenada scikit-learn, de fàcil accés i aplicació.



Instal·leu scikit-learn mitjançant el símbol del sistema mitjançant:

pip install -U scikit-learn

Si sou usuari d’anaconda, a la sol·licitud d’anaconda podeu utilitzar:

conda install scikit-learn

La instal·lació requereix una instal·lació prèvia dels paquets NumPy i SciPy al vostre sistema.

Preprocessament: El primer pas més necessari en qualsevol anàlisi de dades basat en l’aprenentatge automàtic és la part de preprocessament. La representació i la neteja correctes de les dades són absolutament essencials perquè el model ML es formi bé i tingui el màxim rendiment.

Pas 1 - Importar biblioteques necessàries

importar numpy com np importar pandes com pd importar matplotlib.pyplot com plt

Pas 2 - Importeu el conjunt de dades

conjunt de dades = pd.read_csv ()

A continuació, dividim el conjunt de dades en variables independents i dependents. Les variables independents seran les dades d'entrada i la variable dependent les dades de sortida.

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

Pas 3 - Manejar les dades que falten

El conjunt de dades pot contenir valors en blanc o nuls, que poden provocar errors als nostres resultats. Per tant, hem de tractar aquestes entrades. Una pràctica habitual és substituir els valors nuls per un valor comú, com la mitjana o el valor més freqüent d’aquesta columna.

des de la importació sklearn.preprocessing Imputer imputer = Imputer (missing_values ​​= 'NaN', Strategy = 'mean', axis = 0) imputer = imputer.fit (X []) X [] = imputer.transform (X [])

Pas 4 - Convertir variables categòriques en variables numèriques

des de la importació de sklearn.preprocessing LabelEncoder le_X = LabelEncoder () X [] = le_X.fit_transform (X []) labelencoder_y = LabelEncoder () y = labelencoder_y.fit_transform (y)

Ara, després de la codificació, pot passar que la màquina assumeixi les dades numèriques com a classificació de les columnes codificades. Per tant, per proporcionar el mateix pes, hem de convertir els nombres a vectors d’un sol ús, mitjançant la classe OneHotEncoder.

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

Pas 5 - Realitzar escalat

Aquest pas consisteix a fer front a les discrepàncies derivades de les escales de les variables que no coincideixen. Per tant, els escalem tots al mateix rang, de manera que rebin el mateix pes mentre s’introdueixen al model. Utilitzem un objecte de la classe StandardScaler per a aquest propòsit.

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

Pas 6 - Dividiu el conjunt de dades en dades de formació i proves

Com a darrer pas del processament previ, cal dividir el conjunt de dades en un conjunt d’entrenament i un conjunt de proves. La proporció estàndard de la divisió de la prova del tren és del 75% al ​​25%. Podem modificar segons els requisits. La funció train_test_split () ho pot fer per nosaltres.

com trobar palíndrom a Java
des de sklearn.model_selection importació train_test_split X_train, X_test, y_train, y_test = train_test_split (X, y, test_size = 0,25)

Construcció de models: Aquest pas és realment bastant senzill. Un cop decidim quin model aplicar a les dades, podem crear un objecte de la seva classe corresponent i ajustar l’objecte al nostre conjunt d’entrenament, considerant X_train com a entrada i y_train com a sortida.

de sklearn. import classifier = () classifier.fit (X_train, y_train)

El model ja està entrenat i llest. Ara podem aplicar el nostre model al conjunt de proves i trobar la sortida prevista.

y_pred = classifier.predict (X_test)

Visualització de resultats: El rendiment d'un classificador es pot avaluar mitjançant els paràmetres de precisió, precisió, recuperació i puntuació f1. Aquests valors es poden veure utilitzant un mètode conegut com classification_report (). t també es pot veure com una matriu de confusió que ens ajuda a saber quantes categories de dades s'han classificat correctament.

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

Problema del classificador d'aprenentatge automàtic

Utilitzarem el conjunt de dades Iris, molt popular i senzill, que conté dimensions de flors en 3 categories: Iris-setosa, Iris-versicolor i Iris-virginica. Hi ha 150 entrades al conjunt de dades.

# La importació de les biblioteques importa numpy com np import matplotlib.pyplot com plt import pandas com pd # Importació del conjunt de dades = pd.read_csv ('iris.csv')

Vegem ara el conjunt de dades.

dataset.head ()

Tenim 4 variables independents (excloent l'identificador), és a dir, els números de columna 1-4, i la columna 5 és la variable dependent. Així els podem separar.

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

Ara podem dividir el conjunt de dades en formació i proves.

# Divisió del conjunt de dades al conjunt de formació i conjunt de proves des de sklearn.model_selection import train_test_split X_train, X_test, y_train, y_test = train_test_split (X, y, test_size = 0,25)

Ara aplicarem un classificador de regressió logística al conjunt de dades.

# Creació i formació del model a partir de la importació de sklearn.linear_model LogisticRegression classifier = LogisticRegression () classifier.fit (X_train, y_train) # Predicció dels resultats del conjunt de proves y_pred = classifier.predict (X_test)

L’últim pas serà analitzar el rendiment del model entrenat.

# Creació de la matriu de confusió a partir d'importació sklearn.metrics confusion_matrix cm = confusion_matrix (y_test, y_pred) print (cm)

Això ens mostra que el model prediu correctament 13 entrades de la primera categoria, 11 de la segona i 9 de la tercera categoria.

# Generació de precisió, precisió, recuperació i puntuació f1 a partir d'importació sklearn.metrics classification_report target_names = ['Iris-setosa', 'Iris-versicolor', 'Iris-virginica'] imprimir (classification_report (y_test, y_pred, target_names = target_names) )

L’informe mostra els valors de precisió, recordatori, puntuació f1 i precisió del model del nostre conjunt de proves, que consta de 38 entrades (el 25% del conjunt de dades).

Enhorabona, heu creat i implementat el vostre primer classificador d'aprenentatge automàtic a Python. Aprofundir en coneixements juntament amb les seves diverses aplicacions, podeu inscriure-us a formació en línia de Python en directe amb assistència 24/7 i accés de per vida.