2017-09-17 2 views
0

J'essaie de créer un modèle de régression xgboost en python en utilisant l'API scikit-learn, en spécifiant une colonne de pondération. Voici un exemple de code minimal:sample_weight non reconnu dans XGBregressor

from xgboost import XGBRegressor 
import pandas as pd 
import numpy as np 
df = pd.DataFrame(np.random.randint(0,100,size=(100, 4)), columns=list('ABCD')) 
model = XGBRegressor() 
model.fit(df[['A','B']],df['D'],sample_weight=df['C']) 

Quand je fais, je reçois la sortie suivante:

--------------------------------------------------------------------------- 
TypeError         Traceback (most recent call last) 
<ipython-input-12-2d43e3c01bbb> in <module>() 
     6 
     7 
----> 8 model.fit(df[['A','B']],df['D'],sample_weight=df['C']) 

TypeError: fit() got an unexpected keyword argument 'sample_weight' 

Pour autant que je peux dire, la syntaxe est correcte, selon la documentation: https://xgboost.readthedocs.io/en/latest/python/python_api.html#module-xgboost.sklearn

d'autres ont signalé ce problème aux développeurs XGBoost il y a quelque temps, et il semble avoir été fixé, donc je ne sais pas pourquoi cela se produit encore:

https://github.com/dmlc/xgboost/pull/1874

Comment puis-je installer une version de xgboost qui résout ce problème? Je travaille avec Jupyter Notebook et Anaconda sur Ubuntu 64 bits. Devrais-je essayer de le faire sans Anaconda?

Répondre

0

J'ai été en mesure de résoudre ce problème en installant xgboost à partir de github plutôt qu'en l'installant à partir de pip. Je ne l'ai pas encore eu pour travailler avec Anaconda, mais ce qui suit a fait l'affaire pour moi:

sudo apt-get install python3.6 
sudo apt-get install git 
git clone –recursive https://github.com/dmlc/xgboost 
cd xgboost; make -j4 
cd python-package; python3 setup.py install