[PYTHON] Maschinelles Lernen (erster Teil) in wenigen Zeilen. Erklären Sie PyCaret im Detail. Von der Datensatzvorbereitung bis zum Genauigkeitsvergleich mehrerer Modelle.

In Bezug auf unsichtbare Daten

Beim Studium von PyCaret scheinen unsichtbare Daten mit Testdaten verwechselt zu werden, aber unsichtbare Daten sind Testdaten. Wenn Sie dies jedoch ausführlich erläutern,

Erstellen Sie ein Vorhersagemodell mit Trainingsdaten Erstellen Sie ein endgültiges Vorhersagemodell, indem Sie Trainingsdaten mit Testdaten kombinieren Geben Sie abschließend unsichtbare Daten in das Modell ein, um die Genauigkeit des Modells zu überprüfen

Es wird der Fluss sein.

Einführung

Die Open-Source-Python-Bibliothek für maschinelles Lernen "PyCaret 1.0.0" wurde am 16. April 2020 veröffentlicht. Installieren wir sie also mit pip.

PyCaret vervollständigt fehlende Werte automatisch und passt Hyperparameter an. Daher besteht das Merkmal darin, dass der maschinelle Lernschritt in wenigen Zeilen ausgeführt wird. Auch wenn Sie mit den Inhalten des maschinellen Lernens nicht vertraut sind, können Sie problemlos Modelle erstellen und vergleichen.

Tutorial zur binären Klassifizierung (CLF101) - Anfänger auf Ebene Als Referenz werde ich versuchen, es mit Google Colab zu implementieren.

Installieren Sie PyCaret

Installieren Sie Google Colab oder Azure Notebooks mit dem folgenden Code.

Die Version zum Zeitpunkt des Schreibens ist 1.0.0. Es scheint, dass 1.0.1 Modelle zurückgibt, die mit compare_models trainiert wurden.

Return models from compare_models. Currently compare_models() donot return any trained model object.

code.py


! pip install pycaret

Wenn Sie Google Colab verwenden, können Sie es interaktiv anzeigen, indem Sie den folgenden Code ausführen.

code.py


from pycaret.utils import enable_colab
enable_colab()

Datensatzvorbereitung

Pycaret bietet mehrere Datensätze, die Sie mit get_data () verwenden können (muss mit dem Internet verbunden sein).

Die verwendbaren Datensätze werden in pycaret / datasets / gespeichert. Die Klassifizierung in mehrere Klassen erfolgt in Weinqualität, Iris und binäre Klassifizierung. Und Krebs und Herzerkrankungen.

Das Lernprogramm verwendet einen Datensatz mit Kreditkartenzahlungsinformationen von April bis September 2005 in Taiwan, einschließlich Geschlecht, akademischem Hintergrund, Familienstand, Status der vergangenen Zahlung, vergangener Zahlungshistorie und Rechnungsdetails. Es ist beinhaltet.

Die Zielspalte ist eine Standardzahlung (1 = Ja, 0 = Nein), es handelt sich also um eine binäre Klassifizierung. Die binäre Klassifizierung ist eine zweiwertige Klassifizierung von bestanden oder nicht bestanden, positiv oder negativ.

code.py


from pycaret.datasets import get_data
dataset = get_data('credit')

image.png

Lassen Sie uns die Anzahl der Datensätze überprüfen.

code.py


#check the shape of data
dataset.shape

Ergebnis

(24000, 24)

Stellen Sie als Nächstes 5% auf Unsichtbare Daten ein. 1200 Daten werden nicht zum Erstellen des Vorhersagemodells in diesem Datensatz verwendet. Wenn Sie sich das Tutorial ansehen, heißt es, dass Zug- / Testaufteilungen und nicht überfüllt sind. (Die Trainingsdaten und die Testdaten werden durch die Funktion von setup () getrennt.)

This should not be confused with a train/test split as this particular split is performed to simulate a real life scenario.

code.py


data = dataset.sample(frac=0.95, random_state=786)
data_unseen = dataset.drop(data.index).reset_index(drop=True)
data.reset_index(drop=True, inplace=True)

print('Data for Modeling: ' + str(data.shape))
print('Unseen Data For Predictions: ' + str(data_unseen.shape))

Ergebnis

Data for Modeling: (22800, 24) Unseen Data For Predictions: (1200, 24)

PyCaret-Umgebungseinstellungen

Initialisieren Sie die PyCaret-Umgebung mit setup (). In setup () sind zwei Parameter erforderlich, der Pandas-Datenrahmen und die Einstellungen für den Namen der Zielspalte. Andere Parameter sind optional. Dieses Mal wird session_id angegeben. Dies dient der Reproduzierbarkeit. Wenn nicht angegeben, wird eine Pseudozufallszahl ausgegeben.

Nach dem Ausführen von setup () wird der Datentyp automatisch abgeleitet. Da dies nicht immer korrekt abgeleitet wird, werden die Feature-Menge und der geschätzte Datentyp nach dem Ausführen von setup () angezeigt. Wenn Sie überprüft haben, ob alle Datentypen korrekt identifiziert wurden, drücken Sie die Eingabetaste, um fortzufahren, oder geben Sie quit ein, um den Vorgang zu beenden.

code.py


from pycaret.classification import *
exp_clf101 = setup(data = data, target = 'default', session_id=123)

Wenn in den Originaldaten Werte fehlen, werden diese als True angezeigt. In diesem Experiment fehlten keine Werte im Datensatz.

image.png

Sampled Data (22800, 24) Transformed Train Set (15959, 90)

Ich werde darauf achten. Es ist ersichtlich, dass die Merkmale des Trainingsdatensatzes gegenüber den Merkmalen des ursprünglichen Datensatzes erhöht sind. Dies liegt daran, dass es automatisch zu einer kategorialen Variablen gemacht wurde.

Categorical Features 9

Und diese 9 Funktionen wurden in kategoriale Variablen konvertiert. Es ist wirklich erstaunlich, dass dies automatisch geschieht.

Da die Trainingsdaten 70% und die Testdaten 30% betragen

Sampled Data (22800, 24) Transformed Train Set (15959, 90) Transformed Test Set (6841, 90)

Es wird so aufgeteilt.

Modellvergleich

Sie können alle Modelle in der Bibliothek trainieren und mithilfe der 10-fachen Kreuzvalidierung Genauigkeit, Reproduzierbarkeit und F1-Ergebnisse berechnen und vergleichen. Wenn Sie beispielsweise Wert auf die F1-Punktzahl legen, möchten Sie LightGBM verwenden.

code.py


compare_models()

Standardmäßig ist es nach Genauigkeit sortiert.

image.png

Wenn Sie beispielsweise eine Option hinzufügen möchten, die Sie nach Rückruf sortieren oder eine fünffache Kreuzungsüberprüfung durchführen möchten, führen Sie den folgenden Code aus.

code.py


compare_models(sort = 'Recall', fold = 5)

image.png

Zusammenfassung

In diesem Artikel haben wir sogar die Modelle verglichen. Als nächstes möchte ich ein Modell erstellen und bewerten.

Recommended Posts

Maschinelles Lernen (erster Teil) in wenigen Zeilen. Erklären Sie PyCaret im Detail. Von der Datensatzvorbereitung bis zum Genauigkeitsvergleich mehrerer Modelle.
Maschinelles Lernen in wenigen Zeilen (zweiter Teil). Erklären Sie PyCaret im Detail. Modellbildung und Evaluierungsanalyse.
Erstellen eines Gesichtsbilddatensatzes für maschinelles Lernen (3: Gesichtsbildgenerierung aus Kandidatenbildern Teil 1)
Kostenlose Version von DataRobot! ?? Einführung in "PyCaret", eine Bibliothek, die maschinelles Lernen automatisiert
Der erste Schritt für diejenigen, die Amateure der Statistik sind, aber Modelle für maschinelles Lernen in Python implementieren möchten