AxisError: axis 1 is out of bounds for array of dimension 1
roc_auc_score関数は、各クラスの予測確率を表す2次元の配列ではなく、1次元の配列を受け取ることが期待されています。エラーメッセージから推測するに、y_pred_lgbmが1次元の配列ではなく2次元の配列であり、そのためにaxis 1 is out of boundsエラーが発生しています。
LightGBMの予測確率が1次元の配列ではない可能性があります。これを修正するためには、LightGBMのpredictメソッドにraw_score=Trueパラメータを指定して、予測確率を取得することができます。この場合、予測確率は2次元の配列として返されるため、適切な形式に変換する必要があります。
具体的な修正方法としては、predictメソッドの代わりにpredict_probaメソッドを使用することが考えられます。これにより、各クラスの予測確率が格納された2次元の配列が返されます。その後、適切なクラスの予測確率を取得し、roc_auc_score関数に渡すことができます。以下に修正例を示します。
python y_pred_lgbm_proba = lgbm_model.predict_proba(X_test)[:, 1] # 各クラスの予測確率から目的クラスの確率を取得 roc_auc = roc_auc_score(y_test, y_pred_lgbm_proba)
この修正を行うことで、roc_auc_score関数が正しく機能し、エラーが解消されるはずです。

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