Erstellen Sie Ihren ersten Klassifikator für maschinelles Lernen in Python



Dieser Artikel hilft Ihnen beim Erstellen eines Klassifikators für maschinelles Lernen in Python von Grund auf neu. Außerdem erhalten Sie detaillierte Kenntnisse über die Klassifizierung.

ist das Schlagwort im Moment. Mit Hilfe des maschinellen Lernens werden einige unglaubliche Dinge getan. Von unserem zu sein persönlicher Assistent , um unsere zu entscheiden Reiserouten , uns beim Einkaufen helfen, uns bei der Führung unserer Geschäfte unterstützen und uns um unsere kümmern Gesundheit und Wellness, maschinelles Lernen ist auf so grundlegenden Ebenen in unser tägliches Leben integriert, dass wir die meiste Zeit gar nicht merken, dass wir uns darauf verlassen. In diesem Artikel folgen wir dem Ansatz eines Anfängers, einen Standard-Klassifikator für maschinelles Lernen in Python zu implementieren.

Überblick über maschinelles Lernen

Maschinelles Lernen ist ein Konzept, mit dem die Maschine aus Beispielen und Erfahrungen lernen kann, und das auch ohne explizite Programmierung. Anstatt den Code zu schreiben, geben Sie Daten an den generischen Algorithmus weiter, und der Algorithmus / die Maschine erstellt die Logik basierend auf den angegebenen Daten.





Klassifikator für maschinelles Lernen

Maschinelles Lernen beinhaltet die Fähigkeit von Maschinen, Entscheidungen zu treffen, die Ergebnisse ihrer Handlungen zu bewerten und ihr Verhalten zu verbessern, um nacheinander bessere Ergebnisse zu erzielen.



Der Lernprozess findet auf drei Arten statt

Was ist Prozedur in SQL
  • Überwachtes Lernen
  • Unbeaufsichtigtes Lernen
  • Verstärkungslernen

Eine Vorlage für Klassifikatoren für maschinelles Lernen

Tools für maschinelles Lernen werden ganz bequem in einer Python-Bibliothek namens scikit-learn bereitgestellt, auf die sehr einfach zugegriffen und angewendet werden kann.



Installieren Sie scikit-learn über die Eingabeaufforderung mit:

pip install -U scikit-learn

Wenn Sie ein Anaconda-Benutzer sind, können Sie an der Anaconda-Eingabeaufforderung Folgendes verwenden:

conda install scikit-learn

Die Installation erfordert die vorherige Installation von NumPy- und SciPy-Paketen auf Ihrem System.

Vorverarbeitung: Der erste und wichtigste Schritt bei jeder maschinell lernbasierten Datenanalyse ist der Vorverarbeitungsteil. Die korrekte Darstellung und Bereinigung der Daten ist unbedingt erforderlich, damit das ML-Modell gut trainiert und sein Potenzial voll ausschöpft.

Schritt 1 - Importieren Sie die erforderlichen Bibliotheken

import numpy as np import pandas as pd import matplotlib.pyplot as plt

Schritt 2 - Importieren Sie den Datensatz

Dataset = pd.read_csv ()

Dann teilen wir den Datensatz in unabhängige und abhängige Variablen auf. Die unabhängigen Variablen sind die Eingabedaten, und die abhängige Variable sind die Ausgabedaten.

X = Dataset.iloc []. Werte y = Dataset.iloc []. Werte

Schritt 3 - Behandeln Sie fehlende Daten

Der Datensatz kann leere oder Nullwerte enthalten, was zu Fehlern in unseren Ergebnissen führen kann. Daher müssen wir uns mit solchen Einträgen befassen. Es ist üblich, die Nullwerte durch einen gemeinsamen Wert zu ersetzen, z. B. den Mittelwert oder den häufigsten Wert in dieser Spalte.

von sklearn.preprocessing import Imputer imputer = Imputer (fehlende_Werte = 'NaN', Strategie = 'Mittelwert', Achse = 0) imputer = imputer.fit (X []) X [] = imputer.transform (X [])

Schritt 4 - Konvertieren Sie kategoriale Variablen in numerische Variablen

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

Nach dem Codieren kann es nun vorkommen, dass die Maschine die numerischen Daten als Rangfolge für die codierten Spalten annimmt. Um ein gleiches Gewicht zu erzielen, müssen wir die Zahlen mithilfe der OneHotEncoder-Klasse in One-Hot-Vektoren konvertieren.

aus sklearn.preprocessing importieren OneHotEncoder oneHE = OneHotEncoder (kategoriale_Funktionen = []) X = oneHE.fit_transform (X) .toarray ()

Schritt 5 - Skalierung durchführen

In diesem Schritt werden Diskrepanzen behandelt, die sich aus nicht übereinstimmenden Skalen der Variablen ergeben. Daher skalieren wir sie alle auf den gleichen Bereich, sodass sie bei der Eingabe in das Modell das gleiche Gewicht erhalten. Zu diesem Zweck verwenden wir ein Objekt der StandardScaler-Klasse.

aus sklearn.preprocessing importieren StandardScaler sc_X = StandardScaler () X = sc_X.fit_transform (X)

Schritt 6 - Teilen Sie den Datensatz in Trainings- und Testdaten auf

wie man ein Programm in Java schließt

Als letzter Schritt der Vorverarbeitung muss der Datensatz in einen Trainingssatz und einen Testsatz unterteilt werden. Das Standardverhältnis der Zugtestaufteilung beträgt 75% -25%. Wir können nach Bedarf ändern. Die Funktion train_test_split () kann dies für uns tun.

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

Modellbau: Dieser Schritt ist eigentlich ganz einfach. Sobald wir entschieden haben, welches Modell auf die Daten angewendet werden soll, können wir ein Objekt der entsprechenden Klasse erstellen und das Objekt in unseren Trainingssatz einpassen, wobei X_train als Eingabe und y_train als Ausgabe betrachtet werden.

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

Das Modell ist jetzt trainiert und bereit. Wir können jetzt unser Modell auf den Testsatz anwenden und die vorhergesagte Ausgabe finden.

y_pred = classifier.predict (X_test)

Ergebnisse anzeigen: Die Leistung eines Klassifikators kann anhand der Parameter Genauigkeit, Präzision, Rückruf und F1-Score bewertet werden. Diese Werte können mit einer Methode ermittelt werden, die als Klassifizierungsbericht () bekannt ist. t kann auch als Verwirrungsmatrix angesehen werden, mit deren Hilfe wir feststellen können, wie viele der Datenkategorien korrekt klassifiziert wurden.

aus sklearn.metrics importiere verwirrungsmatrix cm = verwirrungsmatrix (y_test, y_pred) drucke (cm) aus sklearn.metrics importiere klassifikationsbericht zielname = [] drucke (klassifikationsbericht (y_test, y_pred, zielname = zielname))

Problem des maschinellen Lernklassifikators

Wir werden den sehr beliebten und einfachen Iris-Datensatz verwenden, der die Abmessungen der Blumen in drei Kategorien enthält - Iris-setosa, Iris-versicolor und Iris-virginica. Der Datensatz enthält 150 Einträge.

# Importieren der Bibliotheken importieren numpy als np importieren matplotlib.pyplot als plt importieren Pandas als pd # Importieren des Dataset-Datasets = pd.read_csv ('iris.csv')

Lassen Sie uns jetzt den Datensatz anzeigen.

Dataset.head ()

Wir haben 4 unabhängige Variablen (ohne die ID), nämlich die Spaltennummern 1 bis 4, und Spalte 5 ist die abhängige Variable. Also können wir sie trennen.

X = Dataset.iloc [:, 1: 5] .Werte y = Dataset.iloc [:, 5] .Werte

Jetzt können wir den Datensatz in Training und Testen aufteilen.

# Aufteilen des Datensatzes in den Trainingssatz und den Testsatz von sklearn.model_selection import train_test_split X_train, X_test, y_train, y_test = train_test_split (X, y, test_size = 0.25)

Jetzt wenden wir einen Klassifizierer für die logistische Regression auf den Datensatz an.

# Erstellen und Trainieren des Modells aus sklearn.linear_model import LogisticRegression classifier = LogisticRegression () classifier.fit (X_train, y_train) # Vorhersage der Testergebnisse y_pred = classifier.predict (X_test)

Der letzte Schritt besteht darin, die Leistung des trainierten Modells zu analysieren.

# Erstellen der Verwirrungsmatrix aus sklearn.metrics Import von verwirrungsmatrix cm = Verwirrungsmatrix (y_test, y_pred) print (cm)

Dies zeigt uns, dass 13 Einträge der ersten Kategorie, 11 der zweiten und 9 der dritten Kategorie vom Modell korrekt vorhergesagt werden.

# Generieren von Genauigkeit, Präzision, Rückruf und f1-Score aus sklearn.metrics import klassifizierungsbericht target_names = ['Iris-setosa', 'Iris-versicolor', 'Iris-virginica'] print (klassifizierungsbericht (y_test, y_pred, target_names = target_names) )

Der Bericht zeigt die Werte für Präzision, Rückruf, F1-Score und Genauigkeit des Modells in unserem Testsatz, der aus 38 Einträgen (25% des Datensatzes) besteht.

Herzlichen Glückwunsch, Sie haben Ihren ersten Klassifikator für maschinelles Lernen erfolgreich in Python erstellt und implementiert! Vertiefte Kenntnisse über Zusammen mit den verschiedenen Anwendungen können Sie sich für Live-Python-Online-Schulungen mit 24-Stunden-Support und lebenslangem Zugriff anmelden.