Mi chiedo se posso eseguire la calibrazione in xgboost. Per essere più specifici, xgboost è dotato di un'implementazione di calibrazione esistente come in scikit-learn, o ci sono alcuni modi per inserire il modello da xgboost in un CalibratedClassifierCV di scikit-learn?Calibrazione con xgboost
Per quanto ne so in sklearn questa è la procedura comune:
# 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
Se metto un modello di albero xgboost nella CalibratedClassifierCV verrà generato un errore (ovviamente):
RuntimeError: classifier has no decision_function or predict_proba method.
C'è un modo per integrare l'eccellente modulo di calibrazione di scikit-learn con xgboost?
Apprezzate le vostre idee penetranti!
bel lavoro. Ho trovato che la calibrazione aggiuntiva sulle tecniche in cui logloss è ottimizzato direttamente (come xgboost) non produce tanto. Le foreste casuali e gli SVM sono noti colpevoli di essere classificatori altamente discriminanti, ma poiché stanno ottimizzando cose diverse, possono utilizzare alcune calibrazioni. Bel lavoro –