[PYTHON] Ich habe versucht, das Überleben der Titanic mit PyCaret vorherzusagen

Einführung

Ich habe versucht, die neulich veröffentlichte Bibliothek PyCaret für maschinelles Lernen zu verwenden. Die Analyse von Datenmerkmalen und der Leistungsvergleich mit mehreren Modellen werden automatisiert, und ich denke, dass die Arbeitszeit von Datenwissenschaftlern bisher erheblich reduziert wird.

Dieses Mal werde ich das Titanic-Überlebensvorhersageproblem auf PyCaret anwenden, das Vorhersageergebnis an Kaggle senden und das Ergebnis sehen.

** Dies ist ein Folgeartikel zum vorherigen Artikel Ich habe versucht, die Weinqualität mit PyCaret zu klassifizieren. ** **.

1. Installieren Sie PyCaret

Führen Sie den folgenden Code aus, um ihn zu installieren. Ich verwende Anaconda, habe jedoch eine virtuelle Umgebung für PyCaret gestartet und installiert. In einer virtuellen Umgebung, die von einer vorhandenen Conda verwaltet wird, kann ein Fehler auftreten. (Wahrscheinlich aufgrund der Kollision zwischen Pip und Conda)

pip install pycaret

2. Datenerfassung

Train.csv und test.csv können auf der Titanic-Website von Kaggle heruntergeladen werden. https://www.kaggle.com/c/titanic/data

import pandas as pd
train_data = pd.read_csv("train.csv")
train_data.head()

Ergebnisse image.png

Schauen wir uns den Inhalt der Daten mit Pandas 'profile_report () an.

import pandas_profiling
train_data.profile_report()

Ergebnisse image.png

3. Datenvorverarbeitung

Verwenden Sie setup (), um die Daten vorzuverarbeiten. Geben Sie zu diesem Zeitpunkt die Zielvariable als Argument überlebt an.

from pycaret.classification import *
exp_titanic = setup(data = train_data, target = 'Survived')

Ergebnis (bis zu 10 Artikel)

image.png

4. Modellvergleich

Verwenden Sie compare_models (), um den Datensatz mithilfe mehrerer Klassifizierungsmodelle zu analysieren und die Ergebnisse in einer Tabelle zusammenzufassen. Dies ist eine sehr nützliche Funktion, wenn Sie überlegen, welches Klassifizierungsmodell verwendet werden soll.

Es gibt mehr als 10 von Pycaret bereitgestellte Klassifizierungsmodelle, die unter den folgenden Links bestätigt werden können.

https://pycaret.org/classification/

compare_models()

Die Genauigkeit des catBoost-Klassifikators betrug 83,63%. Dieses Mal werden wir über die Leistungsbewertung von PyCaret mit dem 9. Platz Random Forest Classifier sprechen.

Ergebnis

image.png

5. Erstellung eines analytischen Modells

Wählen Sie ein Klassifizierungsmodell aus und modellieren Sie es. Verwenden Sie create_model (). Dieses Mal verwenden wir das Random Forest Classifier-Modell.

dt = create_model('rf', round=2)

Ergebnis

image.png

6. Optimieren des analytischen Modells

Sie können das Modell auch mit tune_model optimieren.

tuned_rf = tune_model('rf',round=2)

Ergebnis

Die durchschnittliche Genauigkeit vor dem Einstellen betrug 0,80 und die durchschnittliche Genauigkeit nach dem Einstellen betrug 0,81.

image.png

7. Visualisierung des analytischen Modells

Visualisieren Sie die Analyseergebnisse mit plot_model.

Zeichnen Sie zunächst die AUC-Kurve.

plot_model(tuned_rf, plot = 'auc')

Ergebnis

!image.png

Zeichnen Sie dann die Verwirrungsmatrix.

plot_model(tuned_lightgbm, plot = 'confusion_matrix')

Ergebnis

!image.png

8. Bewertung des analytischen Modells

Mit evalu_model () können mehrere Auswertungen gleichzeitig durchgeführt werden.

evaluate_model(tuned_rf)

Wenn Sie die Taste im gelben Rahmen drücken, wird jedes Bewertungsergebnis angezeigt.

Ergebnis

!image.png

9. Prognose

Machen Sie nach dem Finalisieren des Modells mit finalize_model () eine Vorhersage mit Predict_model (). Zum Zeitpunkt der Vorhersage werden Testdaten (hier test.csv) verwendet.

final_rf = finalize_model(tuned_rf)
data_unseen = pd.read_csv('test.csv')
result = predict_model(final_rf, data = data_unseen)

Die Spalte Beschriftung repräsentiert das Ergebnis der Vorhersage.

Ergebnis

!image.png

Ich habe dieses Ergebnis auf Kaggle hochgeladen. Die Punktzahl betrug 0,76076. image.png

10. Zusammenfassung

  1. Unter Verwendung des Titanic-Überlebensvorhersagedatensatzes führten wir eine Analyse mit PyCaret durch.
  2. Sehr einfach zu bedienen. Ich denke, dass es eine hohe Analysefunktion hat, die mit den kommerziellen Analysetools Alteryx und DataRobot vergleichbar ist.

10.1 Liste der zur Analyse verwendeten Pycaret-Funktionen

  1. Datenvorverarbeitung: setup ()
  2. Modelle vergleichen: compare_models ()
  3. Generieren Sie ein analytisches Modell: create_model ()
  4. Tuning: tune_model ()
  5. Visualisierung: plot_model ()
  6. Auswertung: evalu_model ()
  7. Vorhersage: finalize_model (), Predict_model ()

11. Referenzen

1.PyCaret Home Page , http://www.pycaret.org/ 2.PyCaret Classification, https://pycaret.org/classification/ 3. Ich habe versucht, PyCaret mit der schnellsten Geschwindigkeit zu verwenden: https://qiita.com/s_fukuzawa/items/5dd40a008dac76595eea 4. Ich habe versucht, die Qualität des Weins mit PyCaret zu klassifizieren. Https://qiita.com/kotai2003/items/c8fa7e55230d0fa0cc8e

Recommended Posts

Ich habe versucht, das Überleben der Titanic mit PyCaret vorherzusagen
Ich habe versucht, Überlebende der Titanic mit Kaggle vorherzusagen und einzureichen
Ich habe versucht, den Immobilienpreis in Boston mit PyCaret vorherzusagen
Ich habe versucht, nächstes Jahr mit AI vorherzusagen
Ich habe versucht, mit PyCaret zu clustern
Ich habe versucht, Autoencoder mit TensorFlow zu implementieren
Ich habe versucht, AutoEncoder mit TensorFlow zu visualisieren
Ich habe versucht, mit Hy anzufangen
Ich habe versucht, Faktoren mit Titanic-Daten zu analysieren!
Ich habe versucht, mit Kaggles Titanic (kaggle②) zu lernen.
Ich habe versucht, CVAE mit PyTorch zu implementieren
Ich habe versucht, TSP mit QAOA zu lösen
Ich habe versucht, das Lesen von Dataset mit PyTorch zu implementieren
Ich habe versucht, lightGBM, xg Boost mit Boruta zu verwenden
Ich habe versucht, mit TF Learn die logische Operation zu lernen
Ich habe versucht, GAN (mnist) mit Keras zu bewegen
Ich habe versucht, die Daten mit Zwietracht zu speichern
Ich habe versucht, mit OpenCV Bewegungen schnell zu erkennen
Ich habe versucht, Keras in TFv1.1 zu integrieren
Ich habe versucht, die Hauptkomponenten mit Titanic-Daten zu analysieren!
Ich habe versucht, LLVM IR mit Python auszugeben
Ich habe PyCaret2.0 (pycaret-nightly) ausprobiert.
Ich habe versucht zu debuggen.
Ich habe versucht, PyCaret zu verwenden
Ich habe versucht, ein Objekt mit M2Det zu erkennen!
Ich habe versucht, die Herstellung von Sushi mit Python zu automatisieren
Ich habe versucht, das Modell mit der Low-Code-Bibliothek für maschinelles Lernen "PyCaret" zu visualisieren.
Ich habe versucht, Linux mit Discord Bot zu betreiben
Ich habe versucht, DP mit Fibonacci-Sequenz zu studieren
Ich habe versucht, Jupyter mit allen Amazon-Lichtern zu starten
Ich habe versucht, Tundele mit Naive Bays zu beurteilen
Ich habe versucht, das Verhalten des neuen Koronavirus mit dem SEIR-Modell vorherzusagen.
Ich habe versucht, die Pferde vorherzusagen, die mit LightGBM unter den Top 3 sein werden
Ich habe versucht, die Sündenfunktion mit Chainer zu trainieren
Ich habe versucht, Funktionen mit SIFT von OpenCV zu extrahieren
Ich habe versucht, Faster R-CNN mit Pytorch auszuführen
Ich habe versucht, mit VOICEROID2 2 automatisch zu lesen und zu speichern
Ich habe versucht, DCGAN mit PyTorch zu implementieren und zu lernen
Ich habe versucht, Mine Sweeper auf dem Terminal mit Python zu implementieren
Ich habe versucht, mit Blenders Python script_Part 01 zu beginnen
Ich habe versucht, eine CSV-Datei mit Python zu berühren
Ich habe versucht, das Spiel in der J League vorherzusagen (Datenanalyse)
Ich habe versucht, Soma Cube mit Python zu lösen
Ich habe versucht, mit VOICEROID2 automatisch zu lesen und zu speichern
Ich habe versucht, mit Blenders Python script_Part 02 zu beginnen
Ich habe versucht, ObjectId (Primärschlüssel) mit Pymongo zu generieren
Ich habe versucht, künstliches Perzeptron mit Python zu implementieren
Ich habe versucht, eine ML-Pipeline mit Cloud Composer zu erstellen
Ich habe versucht, unsere Dunkelheit mit der Chatwork-API aufzudecken
[Einführung in Pytorch] Ich habe versucht, Cifar10 mit VGG16 ♬ zu kategorisieren
Ich habe versucht, das Problem mit Python Vol.1 zu lösen
Ich habe versucht, Grad-CAM mit Keras und Tensorflow zu implementieren