XGBoost XGBClassifier Standardmäßig in Python
Ich bin versucht, XGBoosts Klassifizierer klassifizieren einige binäre Daten. Wenn ich die einfachste Sache und verwenden Sie die Standardeinstellungen (wie folgt)
clf = xgb.XGBClassifier()
metLearn=CalibratedClassifierCV(clf, method='isotonic', cv=2)
metLearn.fit(train, trainTarget)
testPredictions = metLearn.predict(test)
Bekomme ich Recht gute klassifikationsergebnisse.
Mein Nächster Schritt war, zu versuchen mein tuning-Parameter. Raten aus den Parametern guide an...
https://github.com/dmlc/xgboost/blob/master/doc/parameter.md
Ich wollte von Standard-und von dort aus arbeiten...
# setup parameters for xgboost
param = {}
param['booster'] = 'gbtree'
param['objective'] = 'binary:logistic'
param["eval_metric"] = "error"
param['eta'] = 0.3
param['gamma'] = 0
param['max_depth'] = 6
param['min_child_weight']=1
param['max_delta_step'] = 0
param['subsample']= 1
param['colsample_bytree']=1
param['silent'] = 1
param['seed'] = 0
param['base_score'] = 0.5
clf = xgb.XGBClassifier(params)
metLearn=CalibratedClassifierCV(clf, method='isotonic', cv=2)
metLearn.fit(train, trainTarget)
testPredictions = metLearn.predict(test)
Das Ergebnis ist alles, was vorhergesagt wird, um eine der Bedingungen sein, und nicht die anderen.
neugierig, wenn ich
params={}
was ich erwartet hatte, um mir die gleichen Standards wie nicht füttern alle Parameter, bekomme ich die gleiche Sache passiert
Also weiß jemand, was die Vorgaben für XGBclassifier ist? so, dass ich anfangen kann-tuning?
InformationsquelleAutor Chris Arthur | 2016-01-08
Du musst angemeldet sein, um einen Kommentar abzugeben.
Das ist nicht, wie Sie Parameter in xgboost. Sie würde entweder wollen, um Ihren pass param grid in Ihre Ausbildung-Funktion, wie xgboost ist
train
oder sklearn istGridSearchCV
oder würden Sie wollen, um Ihre XGBClassifier istset_params
Methode. Eine andere Sache zu beachten ist, dass, wenn Sie mit xgboost wrapper zu sklearn (dh:XGBClassifier()
oderXGBRegressor()
Klassen), dann den Parameter-Namen sind die gleichen, die verwendet sklearn eigene GBM-Klasse (ex: eta --> learning_rate). Ich bin nicht zu sehen, wo die genaue Dokumentation für die sklearn wrapper versteckt ist, aber den code für diese Klassen ist hier: https://github.com/dmlc/xgboost/blob/master/python-package/xgboost/sklearn.pyFür Ihre Referenz hier ist, wie Sie das model-Objekt die Parameter direkt.
BEARBEITEN:
Ich nehme an, Sie können Parameter festlegen, auf die die Erstellung des Modells, es ist einfach nicht super typisch, so zu tun, da die meisten Menschen, die grid-Suche in einigen Mittel. Aber wenn Sie das tun, müssten Sie entweder die Liste als full-params oder verwenden, **kwargs. Zum Beispiel:
Mit einem Wörterbuch als Eingabe ohne **kwargs wird festgelegt, dass die parameter, um buchstäblich Ihr Wörterbuch:
InformationsquelleAutor David
Die Standardeinstellungen für XGBClassifier sind:
Link zu XGBClassifier Dokumentation mit Klasse defaults: https://xgboost.readthedocs.io/en/latest/python/python_api.html#xgboost.XGBClassifier
InformationsquelleAutor Jake Zidow
Für den Anfang, sieht aus wie du bist, fehlt eine s für deine variable
param
.Sie schrieb param an der Spitze:
...aber verwenden params weiter unten, beim training Modell:
War das nur ein Tippfehler in deinem Beispiel?
InformationsquelleAutor luoshao23