前提・実現したいこと
scikit-learn APIのLightGBMにcustom metricとしてPresicion-Recall曲線のAUCを使いたいです。
これをcustom metricとして扱うことはできるようになったのですが、
built-inのmetricsはloglossやaucがあると思いますが、loglossは最小化、aucは最大化するようにearly stoppingすると思います。custom metricに対しては最大化、最小化のどちらを選ぶようにするのか、どこで設定できますか?
該当のソースコード
python
1 2 3def prauc(data,preds): 4 precision_lgb, recall_lgb, thresholds_lgb = precision_recall_curve(data, preds) 5 area_lgb = auc(recall_lgb, precision_lgb) 6 metric = area_lgb 7 return 'PR-AUC', metric, True 8 9def main(): 10 11 model = LGBMClassifier(boosting_type='gbdt',objective='binary',learning_rate=0.01,max_depth=20,n_estimators=10000,metric="custom") 12 training_history = model.fit(X_train, y_train, 13 eval_metric=prauc, 14 eval_set=[ 15 (X_train, y_train), 16 (X_test, y_test), 17 ], 18 eval_names=['train', 'test'], 19 early_stopping_rounds=10, 20 )
Optunaはcreate_study()の中にdirection='maximize'/'minimize'が選べますよね。そのようにfit()の中にはcustom metricの最大化・最小化を選ぶ事はできますか?
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2021/07/13 13:53