[PYTHON] xgboost: Effektives Modell für maschinelles Lernen für Tabellendaten

xgboost: Hochleistungsklassifizierungs- / Vorhersagemodell durch Gradientenverstärkung des Baums. Sehr beliebt bei Kaggle.

Referenz

Installation (Offizielles Dokument)

@mac


$ cd <workspace>
$ git clone --recursive https://github.com/dmlc/xgboost
$ cd xgboost; cp make/minimum.mk ./config.mk; make -j4
$ cd python-package; sudo python setup.py install

@ubuntu


$ cd <workspace>
$ git clone --recursive https://github.com/dmlc/xgboost
$ cd xgboost; make -j4
$ cd python-package; sudo python setup.py install

Verwendung 1: Regressionsmodell

regressor.py


import xgboost as xgb
from sklearn.model_selection import GridSearchCV
from sklearn.datasets import load_boston
from sklearn.metrics import mean_squared_error


#Daten gelesen
boston = load_boston()
X_train, X_test = boston.data[:400], boston.data[400:]
y_train, y_test = boston.target[:400], boston.target[400:]

#Erstellen eines xgboost-Modells
reg = xgb.XGBRegressor()

#Hyperparametersuche
reg_cv = GridSearchCV(reg, {'max_depth': [2,4,6], 'n_estimators': [50,100,200]}, verbose=1)
reg_cv.fit(X_train, y_train)
print reg_cv.best_params_, reg_cv.best_score_

#Lernen Sie erneut mit optimalen Parametern
reg = xgb.XGBRegressor(**reg_cv.best_params_)
reg.fit(X_train, y_train)

#Trainingsmodell speichern und laden
# import pickle
# pickle.dump(reg, open("model.pkl", "wb"))
# reg = pickle.load(open("model.pkl", "rb"))

#Bewertung des Lernmodells
pred_train = reg.predict(X_train)
pred_test = reg.predict(X_test)
print mean_squared_error(y_train, pred_train)
print mean_squared_error(y_test, pred_test)

#Plot von Feature-Wichtigkeit
import pandas as pd
import matplotlib.pyplot as plt
importances = pd.Series(reg.feature_importances_, index = boston.feature_names)
importances = importances.sort_values()
importances.plot(kind = "barh")
plt.title("imporance in the xgboost Model")
plt.show()

boston_importance.png

Verwendung 2: Klassifizierungsmodell

classifier.py


import xgboost as xgb
from sklearn.model_selection import GridSearchCV
from sklearn.datasets import load_digits
from sklearn.metrics import confusion_matrix, classification_report

#Daten gelesen
digits = load_digits()
X_train, X_test = digits.data[:1000], digits.data[1000:]
y_train, y_test = digits.target[:1000], digits.target[1000:]

#Erstellen eines xgboost-Modells
clf = xgb.XGBClassifier()

#Hyperparametersuche
clf_cv = GridSearchCV(clf, {'max_depth': [2,4,6], 'n_estimators': [50,100,200]}, verbose=1)
clf_cv.fit(X_train, y_train)
print clf_cv.best_params_, clf_cv.best_score_

#Lernen Sie erneut mit optimalen Parametern
clf = xgb.XGBClassifier(**clf_cv.best_params_)
clf.fit(X_train, y_train)

#Trainingsmodell speichern und laden
# import pickle
# pickle.dump(clf, open("model.pkl", "wb"))
# clf = pickle.load(open("model.pkl", "rb"))

#Bewertung des Lernmodells
pred = clf.predict(X_test)
print confusion_matrix(y_test, pred)
print classification_report(y_test, pred)

#              precision    recall  f1-score   support
# 
#           0       0.94      0.97      0.96        79
#           1       0.90      0.79      0.84        80
#           2       0.99      0.88      0.93        77
#           3       0.89      0.82      0.86        79
#           4       0.94      0.90      0.92        83
#           5       0.92      0.95      0.93        82
#           6       0.95      0.97      0.96        80
#           7       0.96      0.96      0.96        80
#           8       0.82      0.91      0.86        76
#           9       0.79      0.90      0.84        81
# 
# avg / total       0.91      0.91      0.91       797

Recommended Posts

xgboost: Effektives Modell für maschinelles Lernen für Tabellendaten
Datensatz für maschinelles Lernen
Inverse Analyse des maschinellen Lernmodells
Erstellen einer Entwicklungsumgebung für maschinelles Lernen
[Ver1.3.1 Update] Ich habe DataLiner erstellt, eine Datenvorverarbeitungsbibliothek für maschinelles Lernen.
Geschichte rund um die Datenanalyse durch maschinelles Lernen
Erstellen eines Positionsschätzungsmodells für den Intelligenzwettbewerb menschlicher Wölfe mithilfe von maschinellem Lernen
[Maschinelles Lernen] Erstellen Sie ein Modell für maschinelles Lernen, indem Sie Transferlernen mit Ihrem eigenen Datensatz durchführen
[Python] Ich habe einen Klassifikator für Iris erstellt [Maschinelles Lernen]
Konstruktionsnotiz für eine maschinelle Lernumgebung von Python
Modell des maschinellen Lernens unter Berücksichtigung der Wartbarkeit
Japanische Vorverarbeitung für maschinelles Lernen
Erstellen Sie eine maschinelle Lernumgebung
Leistungsüberprüfung der Datenvorverarbeitung für maschinelles Lernen (numerische Daten) (Teil 2)
Die Verwendung von icrawler zum Sammeln von Daten zum maschinellen Lernen wurde vereinfacht
Ich habe versucht, Tensorboard zu verwenden, ein Visualisierungstool für maschinelles Lernen
Leistungsüberprüfung der Datenvorverarbeitung für maschinelles Lernen (numerische Daten) (Teil 1)
Erstellen Sie eine PyData-Umgebung für eine Lernsitzung zum maschinellen Lernen (Januar 2017).
Wie wäre es mit Anaconda zum Erstellen einer maschinellen Lernumgebung mit Python?
Erstellen einer Windows 7-Umgebung für eine Einführung in das maschinelle Lernen mit Python
<Für Anfänger> Python-Bibliothek <Für maschinelles Lernen>
Maschinelles Lernen in Delemas (Datenerfassung)
Informationen zum maschinell erlernten Meeting für HRTech
Vorverarbeitung beim maschinellen Lernen 2 Datenerfassung
[Empfohlenes Tagging für maschinelles Lernen # 4] Skript für maschinelles Lernen ...?
Vorverarbeitung beim maschinellen Lernen 4 Datenkonvertierung
Grundlegendes maschinelles Lernverfahren: ② Daten vorbereiten
Sammeln von Daten zum maschinellen Lernen
Ein-Klick-Datenvorhersage für das Feld, realisiert durch vollautomatisches maschinelles Lernen
Erstellen Sie schnell eine Python-Umgebung für Deep Learning / Data Science (Windows)
<Subjekt> Maschinelles Lernen Kapitel 3: Logistisches Regressionsmodell
Erste Schritte für Anfänger des maschinellen Lernens (KI)
Unausgeglichenes Datenlernen mit maschinellem Lernen k-NN
Erstellen Sie ein Modell für Ihren Django-Zeitplan
Eine Einführung in OpenCV für maschinelles Lernen
Warum Python für maschinelles Lernen ausgewählt wird
Eine Geschichte über maschinelles Lernen mit Kyasuket
"Verwendbare" One-Hot-Codierungstechnik für maschinelles Lernen
Python: Vorverarbeitung beim maschinellen Lernen: Datenerfassung
[Shakyo] Begegnung mit Python zum maschinellen Lernen
<Kurs> Maschinelles Lernen Kapitel 1: Lineares Regressionsmodell
[Python] Erste Datenanalyse / maschinelles Lernen (Kaggle)
[Python] Webanwendungsdesign für maschinelles Lernen
<Kurs> Maschinelles Lernen Kapitel 2: Nichtlineares Regressionsmodell
Eine Einführung in Python für maschinelles Lernen
Python: Vorverarbeitung beim maschinellen Lernen: Datenkonvertierung
Informationen zur Datenerweiterungsverarbeitung für tiefes Lernen
Vorverarbeitung beim maschinellen Lernen 1 Datenanalyseprozess
Versuchen Sie, durch maschinelles Lernen basierend auf Wetterdaten eine "wetterkartenähnliche Front" zu zeichnen (5)
Versuchen Sie, durch maschinelles Lernen anhand von Wetterdaten eine "wetterkartenähnliche Front" zu zeichnen (3).
Ein Anfänger des maschinellen Lernens versuchte, mit Python ein Vorhersagemodell für Pferderennen zu erstellen
Maschinelles Lernen
Versuchen Sie, durch maschinelles Lernen basierend auf Wetterdaten eine "wetterkartenähnliche Front" zu zeichnen (1)
Versuchen Sie, durch maschinelles Lernen anhand von Wetterdaten eine "wetterkartenähnliche Front" zu zeichnen (4)
Ich habe versucht, verschiedene Methoden für maschinelles Lernen (Vorhersagemodell) mithilfe von Scicit-Learn zu implementieren
Ich habe versucht, das Bild zu verarbeiten und zu transformieren und die Daten für maschinelles Lernen zu erweitern
Implementierung eines Modells, das Wechselkurse (Dollar-Yen-Kurs) durch maschinelles Lernen vorhersagt