【Python】遇见错误:ValueError: 分類メトリクスはバイナリ ターゲットと連続ターゲットの混合を処理できません

プロジェクトシーン

ランダム フォレスト モデルを使用してクレジット カードの解約数を予測するプロジェクトでは、トレーニング セットとテスト セットを分割する必要があります。ただし、パーティショニングのプロセス中にバグが発生しました。


問題の説明

エラーの内容は次のとおりです。
ここに画像の説明を挿入
エラーコードは次のとおりです。

result_acc += forest.score(x_check, y_check)

原因分析:

これは、sklearn 関数の入力パラメータのデータ型の不一致が主な原因であり、入力 y_train が [0,1,1,0,1] int 型データであり、y_predict が [1,2,3] である可能性があります。 , 4] このような確率データ。したがって、確率データを整数データに変換する必要がある。**model.predict_proba()** 関数を使用して予測された可能性があります。
次のコードでもそのような状況が発生します。主に状況を次のように分けます。

  1. 書き込みプロセス中に実行してください。この種のものは、時間内にエラーの種類を見つけて、時間内に修正します。基本的に、次のテキストには間違いはありません。
  2. 途中で動かしていない場合は、以下のy_trainとy_checkが基本的に間違ってしまうので随所を修正する必要があります

以下の方法は、上記の 2 つの状況に基づいています。


解決:

1. 1つ目のタイプ

記事を書いているときにエラーを発見しました:

forest.fit(x_train, y_train)

この場合は、データを分割するだけです。

y_train = model.predict_proba(x_test)

これは主に、予測セットとトレーニング セットの変数を分割するためです。

2. 2 番目のタイプ

これは、途中でテストしなかった友人に適しており、
トレーニング セットを変更した後に直接変更します。

forest.fit(x_train, y_train.astype('int')

この方法はシンプルかつ迅速で、変更も簡単です。

おすすめ

転載: blog.csdn.net/m0_65157892/article/details/129509735