[PYTHON] xgboost: modèle d'apprentissage automatique efficace pour les données de table

xgboost: Modèle de classification / prédiction haute performance par boosting de gradient d'arbre. Très populaire auprès de kaggle.

Référence

Installation (Document officiel)

@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

Utilisation 1: modèle de régression

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


#Lecture des données
boston = load_boston()
X_train, X_test = boston.data[:400], boston.data[400:]
y_train, y_test = boston.target[:400], boston.target[400:]

#Créer un modèle xgboost
reg = xgb.XGBRegressor()

#Recherche d'hyper paramètres
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_

#Apprenez à nouveau avec des paramètres optimaux
reg = xgb.XGBRegressor(**reg_cv.best_params_)
reg.fit(X_train, y_train)

#Enregistrer et charger le modèle d'entraînement
# import pickle
# pickle.dump(reg, open("model.pkl", "wb"))
# reg = pickle.load(open("model.pkl", "rb"))

#Évaluation du modèle d'apprentissage
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)

#Tracé de l'importance des caractéristiques
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

Utilisation 2: modèle de classification

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

#Lecture des données
digits = load_digits()
X_train, X_test = digits.data[:1000], digits.data[1000:]
y_train, y_test = digits.target[:1000], digits.target[1000:]

#Créer un modèle xgboost
clf = xgb.XGBClassifier()

#Recherche d'hyper paramètres
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_

#Apprenez à nouveau avec des paramètres optimaux
clf = xgb.XGBClassifier(**clf_cv.best_params_)
clf.fit(X_train, y_train)

#Enregistrer et charger le modèle d'entraînement
# import pickle
# pickle.dump(clf, open("model.pkl", "wb"))
# clf = pickle.load(open("model.pkl", "rb"))

#Évaluation du modèle d'apprentissage
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: modèle d'apprentissage automatique efficace pour les données de table
Ensemble de données pour l'apprentissage automatique
Analyse inverse du modèle d'apprentissage automatique
Créer un environnement de développement pour l'apprentissage automatique
[Mise à jour Ver1.3.1] J'ai créé une bibliothèque de prétraitement de données DataLiner pour l'apprentissage automatique
Histoire de l'analyse de données par apprentissage automatique
Création d'un modèle d'estimation de position pour la compétition d'intelligence humaine de loup à l'aide de l'apprentissage automatique
[Apprentissage automatique] Créez un modèle d'apprentissage automatique en effectuant un apprentissage par transfert avec votre propre ensemble de données
[Python] J'ai créé un classificateur pour les iris [Machine learning]
Mémo de construction d'environnement d'apprentissage automatique par Python
Modèle d'apprentissage automatique prenant en compte la maintenabilité
Prétraitement japonais pour l'apprentissage automatique
Créer un environnement d'apprentissage automatique
Vérification des performances du prétraitement des données pour l'apprentissage automatique (données numériques) (partie 2)
Utilisation d'icrawler plus simple pour la collecte de données d'apprentissage automatique
J'ai essayé d'utiliser Tensorboard, un outil de visualisation pour l'apprentissage automatique
Vérification des performances du prétraitement des données pour l'apprentissage automatique (données numériques) (partie 1)
Créer un environnement PyData pour une session d'étude sur l'apprentissage automatique (janvier 2017)
Que diriez-vous d'Anaconda pour créer un environnement d'apprentissage automatique avec Python?
Création d'un environnement Windows 7 pour une introduction à l'apprentissage automatique avec Python
<Pour les débutants> bibliothèque python <Pour l'apprentissage automatique>
Apprentissage automatique dans Delemas (acquisition de données)
Informations sur les réunions d'apprentissage automatique pour HRTech
Prétraitement dans l'apprentissage automatique 2 Acquisition de données
[Balisage recommandé pour l'apprentissage automatique # 4] Script d'apprentissage automatique ...?
Prétraitement dans l'apprentissage automatique 4 Conversion de données
Procédure d'apprentissage automatique de base: ② Préparer les données
Comment collecter des données d'apprentissage automatique
Prédiction des données en un clic pour le champ réalisée par apprentissage automatique entièrement automatique
Créez rapidement un environnement python pour le Deep Learning / Data Science (Windows)
<Subject> Machine learning Chapitre 3: Modèle de régression logistique
Premiers pas pour les débutants en apprentissage automatique (IA)
Sklearn de données déséquilibrées avec apprentissage automatique k-NN
Créez un modèle pour votre planning Django
Une introduction à OpenCV pour l'apprentissage automatique
Pourquoi Python est choisi pour l'apprentissage automatique
Une histoire sur l'apprentissage automatique avec Kyasuket
Méthode d'encodage à chaud "utilisable" pour l'apprentissage automatique
Python: prétraitement en machine learning: acquisition de données
[Shakyo] Rencontre avec Python pour l'apprentissage automatique
<Cours> Machine learning Chapitre 1: Modèle de régression linéaire
[Python] Première analyse de données / apprentissage automatique (Kaggle)
[Python] Conception d'applications Web pour l'apprentissage automatique
<Cours> Machine learning Chapitre 2: Modèle de régression non linéaire
Une introduction à Python pour l'apprentissage automatique
Python: prétraitement dans l'apprentissage automatique: conversion de données
À propos du traitement d'expansion des données pour l'apprentissage en profondeur
Prétraitement dans l'apprentissage automatique 1 Processus d'analyse des données
Essayez de dessiner un "front de type carte météorologique" par apprentissage automatique basé sur des données météorologiques (5)
Essayez de dessiner un "front de type carte météo" par apprentissage automatique basé sur les données météorologiques (3)
Un débutant en apprentissage automatique a essayé de créer un modèle de prédiction de courses de chevaux avec python
Apprentissage automatique
Essayez de dessiner un "front de type carte météo" par apprentissage automatique basé sur des données météorologiques (1)
Essayez de dessiner un "front de type carte météo" par apprentissage automatique basé sur des données météorologiques (4)
J'ai essayé d'implémenter diverses méthodes d'apprentissage automatique (modèle de prédiction) en utilisant scicit-learn
J'ai essayé de traiter et de transformer l'image et d'élargir les données pour l'apprentissage automatique
Mise en place d'un modèle de prédiction des taux de change (taux dollar-yen) par machine learning