予測を組み合わせて全体的な予測品質を向上させることは可能ですか?


7

これはバイナリ分類の問題です。最小化されているメトリックは、対数損失(またはクロスエントロピー)です。私の情報のためだけに、私は正確さの数値も持っています。非常にバランスの取れた大規模なデータセットです。非常に単純な予測手法では、約50%の精度と0.693の対数損失があります。私がかき集めることができた最高のものは、52.5%の精度と0.6915のログ損失です。ログの損失を最小限に抑えようとしているため、常に一連の確率(predict_probasklearnおよびkerasの関数)が得られます。それがすべての背景ですが、今は問題です。

2つの異なる手法を使用して、同等の精度とログ損失メトリックを持つ2つの異なる予測セットを作成できるとしましょう。たとえば、入力フィーチャの2つの異なるグループを使用して、2つのセットの予測を生成できます。どちらも約52%正確で、<0.692のログ損失です。重要なのは、どちらの予測セットも予測力があることを示しているということです。別の例は、ロジスティック回帰を使用して1つの予測セットを生成し、ニューラルネットを使用してもう1つの予測セットを生成することです。

たとえば、各セットの最初の10は次のとおりです。

p1 = [0.49121362 0.52067905 0.50230295 0.49511673 0.52009695 0.49394751 0.48676686 0.50084939 0.48693237 0.49564188 ...]
p2 = [0.4833959  0.49700296 0.50484381 0.49122147 0.52754993 0.51766402 0.48326918 0.50432501 0.48721228 0.48949306 ...]

全体的な予測力を高めるために、2つの予測セットを1つに組み合わせる方法が必要だと考えています。ある?

私はいくつかのことを試し始めました。たとえば、予測の絶対値から0.5(abs( p - 0.5 ))を引いたものを信号と見なし、その間p1p2信号が大きい場合は、その値を使用します。これは私が望んでいたことをわずかに達成しましたが、ほんのわずかなマージンでした。そして別の例では、それはまったく役に立たなかったようです。興味深いことに、予測力を破壊するようには見えませんでした。



3
p1とp2に与える数値はすべて0.5にかなり近く、ログの損失はln(2)に非常に近く、50%の精度はコインを投げるのと同じです。これらはひどい結果であり、スタッキングによって大幅な改善が得られる可能性はほとんどありません。機能エンジニアリングなどの他の手法も検討する必要があります。
2018年

好奇心から、スポーツの試合の予測や市場予測を行っていますか?
jjmontes

回答:


13

短い答え:はい。

長い答え:これは、「スタッキング」と呼ばれる手法の多くの例の1つです。もちろん、両方の予測を組み合わせる手動の方法を決定することもできますが、最初の2つのモデル(またはそれ以上)の出力で3番目のモデルをトレーニングすることをお勧めします。これにより、精度がさらに向上します。データの再利用を回避するために、多くの場合、データセットの別の部分を使用して、最初のレベルをトレーニングし、データを結合するモデルをトレーニングします。

たとえば、ここに例を示します。


1
これはまさに私が話していたものです。
jeffery_the_wind 2018年

5

はい。
あなたが話している方法はスタッキングと呼ばれます。それは一種のエンサンブル法です。この方法では、第1ステージで複数のモデルがトレーニングされ、予測は第2ステージモデルのトレーニングに使用される特徴として保存されます。多くのカグラーがこの方法を使用しています。通常、スタッキング中の最初のステージには3つ以上のモデルを使用する必要があります(私は通常、少なくとも4-5モデルを使用します)。単純な平均、多数決など、スタッキングを実行できる多くの方法もあります。これは、バイナリ分類の問題でもある有名なタイタニックデータセットにスタッキングを実装するカグルカーネルへのリンクです。
Titanicデータセットを使用したKaggleカーネルのスタッキングの概要


3
多くの場合、同じタイプのモデルを使用できますが、異なるパラメーターを使用します。たとえば、ランダムフォレストは基本的に、決定木をベースモデルとするスタッキング手法です。
2018年

1
サイドノート。平均化および多数決投票iircを使用したエンサンブル手法についての私の考え方は、予測の分散を減らすことです。つまり、予測面を滑らかにします。
jjmontes 2018年
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.