Creazione del tuo primo classificatore di machine learning in Python



Questo articolo ti aiuterà a creare un classificatore di machine learning in Python da zero. Ti fornirà anche una conoscenza dettagliata della classificazione.

è la parola d'ordine in questo momento. Alcune cose incredibili vengono fatte con l'aiuto dell'apprendimento automatico. Dall'essere nostro assistente personale , per decidere il nostro percorsi di viaggio , aiutandoci a fare acquisti, aiutandoci a gestire le nostre attività, a prenderci cura del nostro salute e benessere, l'apprendimento automatico è integrato nella nostra esistenza quotidiana a livelli così fondamentali che la maggior parte delle volte non ci rendiamo nemmeno conto di fare affidamento su di esso. In questo articolo, seguiremo l'approccio di un principiante per implementare standard un classificatore di machine learning in Python.

Panoramica del machine learning

L'apprendimento automatico è un concetto che consente alla macchina di apprendere da esempi ed esperienze, e anche questo senza essere programmato esplicitamente. Quindi, invece di scrivere il codice, quello che fai è fornire dati all'algoritmo generico e l'algoritmo / macchina costruisce la logica in base ai dati forniti.





Classificatore di machine learning

cos'è il tag br in html

L'apprendimento automatico implica la capacità delle macchine di prendere decisioni, valutare i risultati delle loro azioni e migliorare il loro comportamento per ottenere risultati migliori successivamente.



Il processo di apprendimento si svolge in tre modi principali

  • Apprendimento supervisionato
  • Apprendimento senza supervisione
  • Insegnamento rafforzativo

Un modello per classificatori di machine learning

Gli strumenti di apprendimento automatico sono forniti abbastanza comodamente in una libreria Python chiamata scikit-learn, che è molto semplice da accedere e da applicare.



Installa scikit-learn tramite il prompt dei comandi utilizzando:

pip install -U scikit-learn

Se sei un utente anaconda, al prompt di anaconda puoi usare:

conda installa scikit-learn

L'installazione richiede una precedente installazione dei pacchetti NumPy e SciPy sul sistema.

Pre-elaborazione: Il primo e più necessario passaggio in qualsiasi analisi dei dati basata sull'apprendimento automatico è la parte di pre-elaborazione. Una corretta rappresentazione e pulizia dei dati è assolutamente essenziale affinché il modello ML possa allenarsi bene e funzionare al meglio delle sue potenzialità.

Passo 1 - Importa le librerie necessarie

importa numpy come np importa panda come pd importa matplotlib.pyplot come plt

Passo 2 - Importa il set di dati

dataset = pd.read_csv ()

Quindi suddividiamo il set di dati in variabili indipendenti e dipendenti. Le variabili indipendenti devono essere i dati di input e la variabile dipendente sono i dati di output.

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

Passaggio 3 - Gestisci i dati mancanti

Il set di dati può contenere valori vuoti o nulli, che possono causare errori nei nostri risultati. Quindi dobbiamo occuparci di tali voci. Una pratica comune consiste nel sostituire i valori null con un valore comune, come la media o il valore più frequente in quella colonna.

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

Passaggio 4 - Converti variabili categoriali in variabili numeriche

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

Ora, dopo la codifica, potrebbe accadere che la macchina assuma i dati numerici come una classifica per le colonne codificate. Pertanto, per fornire lo stesso peso, dobbiamo convertire i numeri in vettori one-hot, utilizzando la classe OneHotEncoder.

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

Passaggio 5 - Eseguire il ridimensionamento

Questo passaggio serve a gestire le discrepanze derivanti da scale non corrispondenti delle variabili. Quindi, li ridimensioniamo tutti sullo stesso intervallo, in modo che ricevano lo stesso peso mentre vengono inseriti nel modello. A questo scopo utilizziamo un oggetto della classe StandardScaler.

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

Passaggio 6 - Suddividi il set di dati in dati di addestramento e test

Come ultimo passaggio della pre-elaborazione, il set di dati deve essere suddiviso in un set di addestramento e un set di test. Il rapporto standard della divisione del treno-test è del 75% -25%. Possiamo modificare secondo i requisiti. La funzione train_test_split () può farlo per noi.

da sklearn.model_selection importa train_test_split X_train, X_test, y_train, y_test = train_test_split (X, y, test_size = 0.25)

Costruzione del modello: Questo passaggio è in realtà abbastanza semplice. Una volta deciso quale modello applicare ai dati, possiamo creare un oggetto della sua classe corrispondente e adattare l'oggetto sul nostro set di addestramento, considerando X_train come input e y_train come output.

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

Il modello è ora addestrato e pronto. Ora possiamo applicare il nostro modello al set di test e trovare l'output previsto.

y_pred = classifier.predict (X_test)

Visualizzazione dei risultati: Le prestazioni di un classificatore possono essere valutate dai parametri di accuratezza, precisione, richiamo e punteggio f1. Questi valori possono essere visualizzati utilizzando un metodo noto come classification_report (). Può anche essere visto come una matrice di confusione che ci aiuta a sapere quanti di quali categorie di dati sono stati classificati correttamente.

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

Problema del classificatore di machine learning

Useremo il popolare e semplice set di dati Iris, contenente le dimensioni dei fiori in 3 categorie: Iris-setosa, Iris-versicolor e Iris-virginica. Ci sono 150 voci nel set di dati.

# Importazione delle librerie import numpy come np import matplotlib.pyplot come plt import panda come pd # Importazione del dataset dataset = pd.read_csv ('iris.csv')

Vediamo ora il set di dati.

dataset.head ()

Abbiamo 4 variabili indipendenti (escluso l'Id), vale a dire i numeri di colonna 1-4 e la colonna 5 è la variabile dipendente. Quindi possiamo separarli.

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

Ora possiamo dividere il set di dati in addestramento e test.

# Suddivisione del set di dati nel set di addestramento e nel set di test da sklearn.model_selection import train_test_split X_train, X_test, y_train, y_test = train_test_split (X, y, test_size = 0.25)

Ora applicheremo un classificatore di regressione logistica al set di dati.

# Creazione e addestramento del modello da sklearn.linear_model import LogisticRegression classifier = LogisticRegression () classifier.fit (X_train, y_train) # Previsione dei risultati del set di test y_pred = classifier.predict (X_test)

L'ultimo passaggio sarà analizzare le prestazioni del modello addestrato.

lanciare un doppio a un java int
# Creare la Confusion Matrix da sklearn.metrics import confusion_matrix cm = confusion_matrix (y_test, y_pred) print (cm)

Questo ci mostra che 13 voci della prima categoria, 11 della seconda e 9 della terza categoria sono previste correttamente dal modello.

# Generare accuratezza, precisione, richiamo e punteggio f1 da sklearn.metrics import classification_report target_names = ['Iris-setosa', 'Iris-versicolor', 'Iris-virginica'] print (classification_report (y_test, y_pred, target_names = target_names) )

Il report mostra i valori di precisione, richiamo, punteggio f1 e accuratezza del modello sul nostro set di test, che consiste di 38 voci (25% del set di dati).

Congratulazioni, hai creato e implementato con successo il tuo primo classificatore di machine learning in Python! Per ottenere una conoscenza approfondita su insieme alle sue varie applicazioni, puoi iscriverti alla formazione online su Python dal vivo con supporto 24 ore su 24, 7 giorni su 7 e accesso a vita.