Мне интересно, могу ли я сделать калибровку в xgboost. Чтобы быть более конкретным, есть ли xgboost с существующей реализацией калибровки, например, в scikit-learn, или есть некоторые способы поместить модель из xgboost в CalibratedClassifierCV scikit-learn?Калибровка с помощью xgboost
Насколько я знаю, в sklearn это обычная процедура:
# Train random forest classifier, calibrate on validation data and evaluate
# on test data
clf = RandomForestClassifier(n_estimators=25)
clf.fit(X_train, y_train)
clf_probs = clf.predict_proba(X_test)
sig_clf = CalibratedClassifierCV(clf, method="sigmoid", cv="prefit")
sig_clf.fit(X_valid, y_valid)
sig_clf_probs = sig_clf.predict_proba(X_test)
sig_score = log_loss(y_test, sig_clf_probs)
print "Calibrated score is ",sig_score
Если я поставил модель дерева xgboost в CalibratedClassifierCV об ошибке будет сгенерировано (конечно):
RuntimeError: classifier has no decision_function or predict_proba method.
Есть ли способ интегрировать отличный калибровочный модуль scikit-learn с xgboost?
Цените свои проницательные идеи!
хорошая работа. Я обнаружил, что дополнительная калибровка по методам, когда логлосс прямо оптимизирован (например, xgboost), не дает столько же. Случайные леса и SVM являются известными виновниками высокодискриминационных классификаторов, но потому, что они оптимизируют разные вещи, могут использовать некоторую калибровку. Хорошая работа –