プロジェクトシーン
ランダム フォレスト モデルを使用してクレジット カードの解約数を予測するプロジェクトでは、トレーニング セットとテスト セットを分割する必要があります。ただし、パーティショニングのプロセス中にバグが発生しました。
問題の説明
エラーの内容は次のとおりです。
エラーコードは次のとおりです。
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()** 関数を使用して予測された可能性があります。
次のコードでもそのような状況が発生します。主に状況を次のように分けます。
- 書き込みプロセス中に実行してください。この種のものは、時間内にエラーの種類を見つけて、時間内に修正します。基本的に、次のテキストには間違いはありません。
- 途中で動かしていない場合は、以下の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')
この方法はシンプルかつ迅速で、変更も簡単です。