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 **
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
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
Schauen wir uns den Inhalt der Daten mit Pandas 'profile_report () an.
import pandas_profiling
dataset.profile_report()
Ergebnis
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.
Kriminalität: Pro-Kopf-Kriminalitätsrate nach Städten
zn: Prozentsatz der Wohngebiete, aufgeteilt in Grundstücke über 25.000 Quadratfuß.
indus: Prozentsatz der Nicht-Einzelhändler pro Stadt (Flächenverhältnis)
chas: Charles River Dummy-Variable (= 1, wenn die Straße den Fluss berührt; 0 andere).
nox: Stickoxidkonzentration (1/10 Million)
rm: durchschnittliche Anzahl der Zimmer pro Wohnung
Alter: Prozentsatz der Einheiten, die von Eigentümern bewohnt wurden, die vor 1940 gebaut wurden. (Datensatzerhebungsjahr ist 1978)
dis: Gewichteter Durchschnitt der Entfernungen zu 5 Boston Employment Centers
rad: Index der Zugänglichkeit zu Ringautobahnen
Steuer: Steuersatz für Sachanlagen pro 10.000 Dollar
ptratio: Schüler-Lehrer-Verhältnis nach Stadt
schwarz: = 1000 (Bk-0,63) ^ 2, wobei Bk der Prozentsatz der Schwarzen in der Stadt ist.
lstat: Niedriger Bevölkerungsstatus (%)
medv (** Zielvariable **): Medianzahl der Häuser, in denen der Eigentümer wohnt (\ $ 1000s)
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)
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
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
Sie können das Modell auch mit tune_model optimieren.
tuned_lr = tune_model('lr')
Ergebnis
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.
Visualisieren Sie die Analyseergebnisse mit plot_model.
plot_model(tuned_lr)
Ergebnis
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
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
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