Wie schreibe ich einen benutzerdefinierten Bewertungsmaßstab in Python für xgboost?

8

Ich möchte das Kappa-Bewertungsmaß hinzufügen, das in xgboost in Python verwendet wird. Ich habe Probleme zu verstehen, wie man eine Python-Funktion mit xgboost verbindet.

Laut der xgboost-Dokumentation kann ein Benutzer mehrere Evaluierungsmetriken hinzufügen. Denken Sie daran, dass die Python-Benutzer die Metriken als Liste von Parameterpaaren anstelle von map übergeben, so dass die letzte 'eval_metric' die vorherige nicht überschreibt. "

Dies wurde in der github-Seite von xgboost für R ausgelöst, nicht jedoch für Python.

Zum Beispiel, wenn die Kappa-Funktion ist:

%Vor%

Wie gehe ich vor, es mit xgboost zu implementieren? Angabe von 'kappa' als Zeichenfolge im Parameter eval_metric Ergebnisse in XGBoostError: unknown evaluation metric type: kappa .

Die Angabe des Kappa-Methodenobjekts erfolgt ebenfalls in XGBoostError: unknown evaluation metric type: <function kappa at 0x7fbef4b03488> .

Wie kann eine benutzerdefinierte Bewertungsmaßzahl in xgboost in python verwendet werden?

    
Greg 25.05.2016, 12:06
quelle

1 Antwort

9

Ändern Sie Ihre Methode zu:

%Vor%

Und benutze es mit feval Argument:

%Vor%

Wenn Sie benutzerdefinierte Bewertungsmetriken schreiben, denken Sie daran, maximize argument zu setzen. Setzen Sie es auf "True", bedeutet dies, dass der Algorithmus mit einem größeren Score der Bewertungsmetrik besser wird.

    
Khozzy 05.07.2016, 08:07
quelle