2016-05-25 10 views
8

Pythonでxgboostで使用するκ評価指標を追加したいと思います。私は、Python関数をxgboostに接続する方法を理解するのに問題があります。xgboost用のPythonでカスタム評価指標を書くには?

xgboostの文書によると、「Pythonユーザーのために複数の評価指標を追加することができます。マップの代わりにパラメータのリストとしてmetricsを渡すようにしてください。後者の 'eval_metric'は前の"

これはRのためにxgboost's github pageで提起されましたが、Pythonでは生成されませんでした。例えば

カッパ機能がある場合:

def kappa(preds, y): 
    # perform kappa calculation 
    return score 

は、どのように私はxgboostでそれを実装して行くのですか? eval_metricパラメータ の'kappa'を文字列として指定すると、結果はXGBoostError: unknown evaluation metric type: kappaになります。

同様に、κメソッドオブジェクトを指定すると、結果はXGBoostError: unknown evaluation metric type: <function kappa at 0x7fbef4b03488>になります。

Pythonでxgboostでカスタム評価指標を使用するにはどうすればよいですか?

答えて

9
はにあなたの方法を変更し

def kappa(preds, y): 
    # perform kappa calculation 
    return 'kappa', score 

そしてfeval引数でそれを使用します。

bst = xgb.train(params, dtrain, num_rounds, watchlist, feval=kappa, maximize=False) 

カスタム評価指標の書き込みmaximize引数の設定について覚えています。これをtrueに設定すると、アルゴリズムが評価メトリックのスコアが高くなるほど良くなっています。

+0

こんにちは、私の問題を見るのを助けることができますか?https://stackoverflow.com/questions/46927576/len-of-unsized-object-when-using-lift-score-in-xgboost – sweetyBaby

関連する問題