現在、ランダム フォレスト分類子 (Spark ML から) は、次の分布を持つ不均衡なデータセットに基づいて構築されています。
+-------+----------------+
| score | n_observations |
+-------+----------------+
| 0 | 256741 |
| 1 | 13913 |
| 2 | 7632 |
| 3 | 15877 |
| 4 | 3289 |
| 5 | 11515 |
| 6 | 8555 |
| 7 | 2087 |
| 8 | 14226 |
| 9 | 6379 |
+-------+----------------+
マルチクラスの問題の結果として、次の確率行列が得られます。確率列は、オブザベーションがクラスとして分類される確率を示します。(これらは、ランダム フォレスト モデルからの正規化された rawPredicitions です)。
+--------------------+-------------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+
| observation_number | label_score | prob_0 | prob_1 | prob_2 | prob_3 | prob_4 | prob_5 | prob_6 | prob_7 | prob_8 | prob_9 |
+--------------------+-------------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+
| 0 | 0 | 0,812 | 0,039 | 0,024 | 0,049 | 0,007 | 0,024 | 0,019 | 0,002 | 0,016 | 0,008 |
| 1 | 7 | 0,419 | 0,050 | 0,032 | 0,092 | 0,018 | 0,083 | 0,080 | 0,013 | 0,132 | 0,082 |
| 2 | 0 | 0,862 | 0,027 | 0,017 | 0,043 | 0,004 | 0,016 | 0,015 | 0,001 | 0,009 | 0,006 |
| 3 | 0 | 0,845 | 0,028 | 0,018 | 0,049 | 0,004 | 0,018 | 0,018 | 0,001 | 0,011 | 0,008 |
| 4 | 6 | 0,445 | 0,051 | 0,034 | 0,095 | 0,017 | 0,080 | 0,079 | 0,012 | 0,115 | 0,073 |
+--------------------+-------------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+
実際の予測クラスは、多数派クラス (0 & 8) に大きく偏っています。これは、以下に示すように、クラスをオブザベーションに割り当てるために多数決確率が使用されるためです。アンダーサンプリングとオーバーサンプリングの方法を適用しても、混同行列からの出力の精度は向上しません。
ただし、これらの予測を使用すると、AUC 曲線は非常に有望に見えます。(平均 AUC 0.74)。以下のクラスごとの 1 対多の AUC 曲線のプロットを参照してください。
これらの確率から最適なクラスを取得する方法がわかりません。AUC を見ると、最適なしきい値を取得する方法が複数あります。解決策は、事前確率の逆数を乗算することですが、別の解決策は、線形回帰を適合させることです。別の解決策は、この論文で説明されているペアワイズ分析ですが、そこにアルゴリズムを正確に適用する方法がわかりません。ペアワイズ分析によるマルチクラス ROC の近似
ランダム フォレスト (または他のツリー分類子) の予測確率に重み付けするクラスを取得する最も簡単な Spark 実装は何でしょうか?