8

アルファのアルゴリズムは (0.5) * Math.log(((1 - errorRate) / errorRate))

ありがとうございました。

4

4 に答える 4

6

トレーニング データ全体を再重み付けして弱学習器に渡すことでブーストしている場合、データを完璧に分類した後で、実際には強力な弱分類器を見つけたと思います。

この場合、最初の Adaboost 反復で発生するはずです。アルファを 1 に設定して弱分類器を強分類器に追加し、トレーニングを停止します。

リサンプリングによるブースティング中にそれが発生し、サンプルがトレーニング データのサブセットにすぎない場合は、このサブセットを破棄して別のサンプルで再試行する必要があると思います。

非常に単純な例で遊んでいるか、トレーニング データセットが非常に小さいか代表的でないため、このような結果に達したと思います。また、弱分類器が弱すぎて、ランダムな推測に近づきすぎている可能性もあります。

于 2013-03-25T17:45:39.160 に答える
3

通常、誤差ゼロの弱分類器のアルファは、すべてのトレーニング インスタンスを正しく分類するため、大きくする必要があります。アルファを推定するためにすべてのトレーニング データを使用していると仮定しています。ブーストのそのラウンドのトレーニング サンプルのみを使用してアルファを推定している可能性もあります。この場合、アルファはサンプル サイズに基づいてわずかに小さくする必要がありますが、考え方は同じです。

理論的には、他のアルファが正規化されていない場合、このアルファは無限大に近いはずです。実際には、エラーがゼロかどうかを確認し、それらのアルファに非常に高い値を与えるという提案は合理的ですが、通常、エラー率がゼロまたはゼロに近い場合は、オーバーフィッティングを示しています (または、信頼できるアルファを推定するにはトレーニング データが少なすぎます)。 .

これは、Adaboostの Schapire & Singer の Confidence Rated Predictionsバージョンのセクション 4.2 で説明されています。彼らは、安定性のために分子と分母に小さなイプシロンを追加することを提案しています。

alpha = (0.5) * Math.log(((1 - errorRate + epsilon) / (errorRate + epsilon)))

いずれにせよ、このアルファは小さい値に設定しないでください (大きくする必要があります)。また、それを 1 に設定することは、他のすべてのブースト ラウンドの他のすべてのアルファが正規化されている場合にのみ意味があるため、すべてのアルファの合計がほぼ 1 になります。

于 2013-05-31T23:03:24.670 に答える
1

私はこの問題に数回遭遇しましたが、通常、エラーが 0 に等しいかどうかを確認し、0 である場合は、最小重みの 1/10 に等しく設定します。これはハックですが、通常はかなりうまく機能します。

于 2013-02-22T17:45:36.670 に答える