Ich frage mich, ob ich Kalibrierung in xgboost tun kann. Um genauer zu sein, kommt xgboost mit einer vorhandenen Kalibrierungsimplementierung wie in scikit-learn, oder gibt es einige Möglichkeiten, das Modell von xgboost in einen CalibratedClassifierCV von scikit-learn zu bringen?Kalibrierung mit xgboost
Soweit ich in sklearn weiß, ist dies das gemeinsame Verfahren:
# 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
Wenn ich ein xgboost Baummodell in die CalibratedClassifierCV wird ein Fehler gesetzt (natürlich) geworfen werden:
RuntimeError: classifier has no decision_function or predict_proba method.
Gibt es eine Möglichkeit, das exzellente Kalibrierungsmodul von scikit-learn mit xgboost zu integrieren?
Schätzen Sie Ihre aufschlussreichen Ideen!
netter Job. Ich habe festgestellt, dass die zusätzliche Kalibrierung von Techniken, bei denen logloss direkt optimiert wird (wie xgboost), nicht so viel ergibt. Random Forests und SVMs sind bekannt dafür, dass sie sehr diskriminierende Klassifikatoren sind, aber weil sie verschiedene Dinge optimieren, können sie einige Kalibrierungen verwenden. Gut gemacht –