[PYTHON] Ich habe versucht, den Immobilienpreis in Boston mit PyCaret vorherzusagen

Einführung

Ich habe versucht, die maschinelle Lernbibliothek PyCaret zu verwenden, die neulich veröffentlicht wurde. 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 versuchen, das Bostoner Immobilienproblem des Rückgabeproblems mit PyCaret zu lösen.

** Vorheriger Artikel: 1. Ich habe versucht, die Qualität des Weins nach PyCaret zu klassifizieren ** ** 2. Ich habe versucht, das Überleben der Titanic mit PyCaret vorherzusagen **

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

PyCaret bietet mit get_data () mehrere Open Source-Datasets. Eine Liste der bereitgestellten Datensätze finden Sie unter dem folgenden Link. https://pycaret.org/get-data/#datasets

Dieses Mal verwenden wir den Boston Real Estate Price Dataset.

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

Ergebnisse image.png

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

import pandas_profiling
dataset.profile_report()

Ergebnis image.png

Eine Beschreibung der Daten.

Die Datengröße von Boston Real Estate beträgt 506 Zeilen x 14 Spalten. Diese Daten sind eine Beschreibung der erklärenden Variablen.

  1. Kriminalität: Pro-Kopf-Kriminalitätsrate nach Städten

  2. zn: Prozentsatz der Wohngebiete, aufgeteilt in Grundstücke über 25.000 Quadratfuß.

  3. indus: Prozentsatz der Nicht-Einzelhändler pro Stadt (Flächenverhältnis)

  4. chas: Charles River Dummy-Variable (= 1, wenn die Straße den Fluss berührt; 0 andere).

  5. nox: Stickoxidkonzentration (1/10 Million)

  6. rm: durchschnittliche Anzahl der Zimmer pro Wohnung

  7. Alter: Prozentsatz der Einheiten, die von Eigentümern bewohnt wurden, die vor 1940 gebaut wurden. (Datensatzerhebungsjahr ist 1978)

  8. dis: Gewichteter Durchschnitt der Entfernungen zu 5 Boston Employment Centers

  9. rad: Index der Zugänglichkeit zu Ringautobahnen

  10. Steuer: Steuersatz für Sachanlagen pro 10.000 Dollar

  11. ptratio: Schüler-Lehrer-Verhältnis nach Stadt

  12. schwarz: = 1000 (Bk-0,63) ^ 2, wobei Bk der Prozentsatz der Schwarzen in der Stadt ist.

  13. lstat: Niedriger Bevölkerungsstatus (%)

  14. medv (** Zielvariable **): Medianzahl der Häuser, in denen der Eigentümer wohnt (\ $ 1000s)

3. Datenvorverarbeitung

Teilen Sie mit sample () 90% des Datensatzes in Trainingsdaten und 10% in Testdaten.

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

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

Ergebnis (bis zu 10 Artikel)

Data for Modeling: (455, 14) Unseen Data For Predictions: (51, 14)

Verwenden Sie setup (), um die Daten vorzuverarbeiten. Geben Sie zu diesem Zeitpunkt die Zielvariable als Argument target = medv an.

from pycaret.regression import *
exp_reg101 = setup(data = data, target = 'medv',session_id=12) 

Ergebnis (bis zu 10 Artikel) image.png

4. Modellvergleich

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

Es gibt mehr als 10 Arten von Regressionsmodellen, die von Pycaret bereitgestellt werden und die unter den folgenden Links bestätigt werden können.

https://pycaret.org/regression/

compare_models()

Der catBoost-Regressor hatte RMSE = 3,1399 und R ^ 2 = 0,859. Dieses Mal werden wir über die Leistungsbewertung von PyCaret mit linearer Regression (R ^ 2 = 0,6739) auf Platz 8 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 werden wir das lineare Regressionsmodell verwenden.

lr = create_model('lr')

Der Durchschnitt für R-2 betrug 0,6739. (k-fache Methode, n_fold = 10) Ergebnis image.png

6. Optimieren des analytischen Modells

Sie können das Modell auch mit tune_model optimieren.

tuned_lr = tune_model('lr')

Ergebnis image.png

Der Durchschnitt von R ^ 2 vor dem Einstellen betrug 0,6739 und der Durchschnitt nach dem Einstellen betrug 0,6739, was sich nicht verbesserte. Für die lineare Regression ist Tuned_model () möglicherweise nicht sehr vielversprechend.

7. Visualisierung des analytischen Modells

Visualisieren Sie die Analyseergebnisse mit plot_model.

plot_model(tuned_lr)

Ergebnis image.png

8. Bewertung des analytischen Modells

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

evaluate_model(lr)

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 (). Bei Vorhersagen verwenden wir Testdaten (hier unseen_data).

final_lr = finalize_model(tuned_lr)
unseen_predictions = predict_model(final_lr, data=data_unseen)
unseen_predictions.head()

Die Spalte Beschriftung repräsentiert das Ergebnis der Vorhersage. Die Medv-Spalte ist die richtige Antwort.

Ergebnis image.png

10. Zusammenfassung

  1. Ich habe das Regressionsproblem mit PyCaret analysiert.

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 von PyCaret zu klassifizieren. https://qiita.com/kotai2003/items/c8fa7e55230d0fa0cc8e 5. Ich habe versucht, das Überleben der Titanic mit PyCaret vorherzusagen. https://qiita.com/kotai2003/items/a377f45ddee9829ed2c5

Recommended Posts

Ich habe versucht, den Immobilienpreis in Boston mit PyCaret vorherzusagen
Ich habe versucht, das Überleben der Titanic mit PyCaret vorherzusagen
Ich habe versucht, nächstes Jahr mit AI vorherzusagen
Ich habe versucht, mit PyCaret zu clustern
Ich habe versucht, Überlebende der Titanic mit Kaggle vorherzusagen und einzureichen
Ich habe versucht, den Datenverkehr mit WebSocket in Echtzeit zu beschreiben
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, CVAE mit PyTorch zu implementieren
Ich habe versucht, TSP mit QAOA zu lösen
Wie man offline in Echtzeit schreibt Ich habe versucht, E11 mit Python zu lösen
Ich habe versucht, das Modell mit der Low-Code-Bibliothek für maschinelles Lernen "PyCaret" zu visualisieren.
Ich habe versucht, das Verhalten des neuen Koronavirus mit dem SEIR-Modell vorherzusagen.
Wie man offline in Echtzeit schreibt Ich habe versucht, E12 mit Python 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, CloudWatch-Daten mit Python abzurufen
Ich habe versucht, LLVM IR mit Python auszugeben
Ich habe versucht, ein Objekt mit M2Det zu erkennen!
Ich habe versucht, die Herstellung von Sushi mit Python zu automatisieren
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 PyCaret2.0 (pycaret-nightly) ausprobiert.
Ich habe versucht zu debuggen.
Ich habe versucht, PyCaret zu verwenden
Einführung in die KI-Erstellung mit Python! Teil 2 Ich habe versucht, den Hauspreis in Boston mit einem neuronalen Netz vorherzusagen
Ich habe versucht, maschinelles Lernen (Objekterkennung) mit TouchDesigner zu verschieben
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, 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
Ich habe versucht, eine OCR-App mit PySimpleGUI zu erstellen