AxisError: axis 1 is out of bounds for array of dimension 1

2024年6月17日

roc_auc_scoreのエラーが発生していますね。このエラーは、y_pred_testが多クラスの予測結果であるために発生しています。roc_auc_scoreは、2クラス分類の場合にしか使用できません。

多クラス分類の場合、AUCを計算する方法はいくつかありますが、OvR (One-vs-Rest) スキームを使用するのが一般的です。この場合、各クラスを1つのクラスとして扱い、そのクラスに属するサンプルと他のすべてのクラスに属するサンプルとの間でAUCを計算します。

修正されたコードは次のようになります:

python
from sklearn.metrics import roc_auc_score

# AUCの計算
auc_lr = roc_auc_score(y_test, y_pred_lr, multi_class='ovr')  # 多クラスの場合は'multi_class'を指定
print("Logistic Regression AUC:", auc_lr)

これにより、多クラス分類のAUCが計算され、出力されるはずです。

未分類

Posted by ぼっち