「0」クラスへの大きな偏り(約30000対1500)を持つバイナリクラスデータセット(0 / 1)があります。各インスタンスには 7 つの特徴があり、欠損値はありません。
J48 またはその他のツリー分類子を使用すると、ほとんどすべての「1」インスタンスが「0」として誤分類されます。
分類子を「プルーニングなし」に設定し、葉ごとのインスタンスの最小数を 1 に設定し、信頼係数を 1 に設定し、インスタンス ID 番号を持つダミー属性を追加しましたが、これらはすべて役に立ちませんでした。
自分のデータに過適合するモデルを作成することはできません!
Weka が提供する他のほとんどすべての分類器も試しましたが、同様の結果が得られました。
IB1 を使用すると 100% の精度が得られるため (トレインセットのトレインセット)、同じ特徴値と異なるクラスを持つ複数のインスタンスの問題はありません。
完全に剪定されていないツリーを作成するにはどうすればよいですか? または、Weka に私のデータをオーバーフィットさせますか?
ありがとう。
更新:わかりました、これはばかげています。私は約 3100 の否定的な例と 1200 の肯定的な例だけを使用しました。
J48 unpruned tree
------------------
F <= 0.90747: 1 (201.0/54.0)
F > 0.90747: 0 (4153.0/1062.0)
言うまでもなく、IB1 でも 100% の精度が得られます。
更新 2:どうして見逃したのかわからない - プルーニングされていない SimpleCart は動作し、100% の精度でトレーニングを実行できます。プルーニングされた SimpleCart は、J48 ほどバイアスがかかっておらず、適切な偽陽性率と偽陰性率を示しています。