0

私は、次のようなバイナリ分類の不均衡なマーケティング データセットに取り組んでいます。

  1. いいえ: はい 88:12 の比率 (いいえ - 製品を購入しなかった、はい - 購入した)
  2. ~4300 の観測値と 30 の特徴 (9 つの数値と 21 のカテゴリ)

データをトレーニング (80%) とテスト (20%) のセットに分割し、トレーニング セットで standard_scalar と SMOTE を使用しました。SMOTE は、列車データセットの「いいえ:はい」の比率を 1:1 にしました。次に、以下のコードに示すようにロジスティック回帰分類器を実行したところ、SMOTE を使用せずにロジスティック回帰分類器を適用したテスト データでは 21% しかなかったのに対し、テスト データでは 80% のリコール スコアが得られました。

SMOTE を使用すると、再現率が大幅に向上しますが、偽陽性が非常に高くなります (混同マトリックスの画像を参照)。これは、多くの偽の (購入する可能性が低い) 顧客をターゲットにすることになるため、問題です。リコール/真陽性を犠牲にすることなく、偽陽性を下げる方法はありますか?

混同行列

#Without SMOTE
clf_logistic_nosmote = LogisticRegression(random_state=0, solver='lbfgs').fit(X_train,y_train)

#With SMOTE  (resampled train datasets) 
clf_logistic = LogisticRegression(random_state=0, solver='lbfgs').fit(X_train_sc_resampled, y_train_resampled)
4

1 に答える 1

0

私でさえ、偽陽性が非常に高いという同様の問題がありました。その場合、機能エンジニアリングを行った後に SMOTE を適用しました。

次に、機能エンジニアリングを行う前に SMOTE を使用し、SMOTE で生成されたデータを使用して機能を抽出しました。そうすればかなりうまくいきました。ただし、これはより遅いアプローチになりますが、私にとってはうまくいきました。それがあなたのためにどうなるか教えてください。

于 2019-11-21T18:02:37.883 に答える