AxisError: axis 1 is out of bounds for array of dimension 1
roc_auc_score関数は、マルチクラス分類の場合にmulti_classパラメータを使用しているため、2次元の予測確率を受け取る必要があります。エラーメッセージから、y_scoreの次元が1であり、軸1が存在しないためにエラーが発生しています。
LightGBMのpredict_probaメソッドから返される予測確率は、クラスごとの確率を表す2次元の配列です。そのため、この配列の2番目の次元に対してaxis=1を指定すると、各データポイントに対するクラスごとの確率の合計が計算されます。しかし、マルチクラス分類の場合は、各データポイントに対する確率の合計は1になる必要があります。
この問題を解決するには、roc_auc_score関数にaverage='macro'パラメータを指定して、各クラスについてROC曲線を計算し、平均を取ることが考えられます。以下に修正例を示します。
python roc_auc = roc_auc_score(y_test, y_pred_lgbm_proba, average='macro')
これにより、各クラスに対するROC AUCスコアの平均が計算され、エラーが解消されるはずです。

ディスカッション
コメント一覧
まだ、コメントがありません