Ich versuche ein Xgboost-Regressionsmodell in Python mithilfe der API "scikit-learn" zu erstellen, die eine Gewichtungsspalte angibt. Hier ist ein minimales Codebeispiel:sample_weight wird in XGBregressor nicht erkannt
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'])
Wenn ich das tue, erhalte ich die folgende Ausgabe:
---------------------------------------------------------------------------
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'
Soweit ich das beurteilen kann, die Syntax korrekt ist, entsprechend die Dokumentation: https://xgboost.readthedocs.io/en/latest/python/python_api.html#module-xgboost.sklearn
Andere haben dieses Problem auf die XGBoost Entwickler vor einiger Zeit berichtet, und es scheint behoben worden, so dass ich bin mir nicht sicher, warum dies noch geschieht:
https://github.com/dmlc/xgboost/pull/1874
Wie kann ich eine Version von xgboost installieren, die das behebt? Ich arbeite mit Jupyter Notebook und Anaconda auf Ubuntu 64-Bit. Soll ich das ohne Anaconda versuchen?