Edited at

なぜKaggleで予測結果をブレンディングすると良い結果がでるのか。弱学習器の強さについて。

More than 1 year has passed since last update.


ブレンディング(Blending)とは

ブレンディングとは、通常0~1の範囲の値を持つN個の重みを、N個のモデルの予測結果に掛け合わせて最終的な予測結果を得る方法です。最も単純な形式は、N個のモデルの平均です。

ただ、単に複数のモデルをブレンディングすると、良いモデルができるわけではありません、というお話です。


ブレンディングの例(配管工のおじさんを例に)

配管工事の例から始めましょう。

あなたは配管工を必要としています。そして以下の配管工を見つけました。


  • 星5点満点中4.5点の評価

  • 100ドルを請求

今、私はあなたに2人の配管工を紹介します、


  • 彼らはともに星4つ × 2名

  • 一人あたり75ドルを請求(合計150ドル)

  • 私のオファーのセールスポイント


    • 彼ら2人は一度に1人だけが訪れることです。

    • 2人目の配管工は、1人目の配管工が正しく対応できなかったものを修正する。



あなたは自分で見つけた配管工を採用しますか?私のオファーを受けますか?

おそらく失笑しながら、自分で探した熟練配管工(星4.5)を採用するでしょう。この配管工であればおそらく良い仕事をしてくれるのに、なぜ2倍の時間をかけ、1.5倍の支払をする必要があるのか。

同じ前提で次のシチュエーションです。

今度は、私はあなたに4人の配管工を提供します。


  • 彼らは星3つの評価 × 4名

  • 一人あたり23ドルを請求(合計92ドル)

  • 彼らはあなたの家に一緒に来て、チームとして働く

あなたは8ドレ節約できるので、この提案について少し考えるでしょう。

でも最終的には、あなたは一人の熟練配管工と一緒に行くことを決めました。

なぜなら、


  1. 100ドル支払っているのだから、彼は相当優秀である。

  2. 他の4人の配管工は優秀とは言えません。もし優秀なら、より多くを請求してくるはずだ。

おそらく両方の意見は正しいかもしれませんが、それでもあなたの選択が最良であることを保証するものではありません

ほとんどの社会では、1人の専門家が、まあまあの専門家3人の連携よりも優れているという暗黙のルールがあります。しかし、本当にその考えが正しいのか。

以下の例で見ていきましょう。

下記に示すのは、1と0で均等に分かれる10桁の数字の予測の簡単な例です。

つまりバイナリの予測結果です。

1111100000  正解文字列(Ground truth)

1110100000 強学習器 (90%)

良い専門家であるあなたからすると、私たちはとても良いモデルを持っているようにみえます。このモデルは0を予測するのに完璧で、1を予測するのにまあまあ良いです。

次に、今3つの弱学習モデルを持っているとします、どれも予測精度70%より優れません。

1111100000  正解文字列(Ground truth)

1011110100 弱学習器 (70%) :1をよく予測できる

1101000010 弱学習器 (70%) :0をよく予測できる

0110101001 弱学習器 (60%) :何もうまく予測できない

1111100000 弱学習器の投票平均 (100%)

どれもとても良いモデルとは言えないですが、ここでは予測した結果の投票平均を取っていきましょう。

すなわちブレンディングです。

驚くことに、100%の正解率の予測結果を得ることができました。

直感的には、2つの良いモデルをブレンドすると良いモデルが得られ、その結果が個々のモデルよりも優れると思います。良いモデルと悪いモデルをブレンディングすることにより、良い結果が得られることは、明らかではありません。3つの悪いモデルをブレンディングすることで、本当に良いモデルが得られるかどうかは、明らかではありませんが、そのようになる場合があります。

この現象はしばしば「弱学習器の強さ」と呼ばれます。これは、3つの弱学習器を結合すると、素晴らしいモデルになることを意味するものではありません。補完的な専門知識が必要とされます。

もし、95%が重複する平凡な知識を持った3つのモデルがいた場合、「3つのモデルを結合した結果」と「個々のモデル」を比較しても、それぞれわずか5%しかユニークな知識を保持しないことを意味します。

一方で、知識の70%が重複しかない、3つの多様性溢れるモデルがいた場合、それぞれ独自の専門知識30%がもたらす「良いモデル」として、融合される可能性があります。


アンサンブル学習に組み込むためには、どれくらい良いモデルが必要か

一般的な回答としては、ランダムな結果を返す予測よりも優れたモデルであれば、アンサンブルへの組込みは有益です。しかしながら、それはランダムな予測よりも良い予測をする各モデルがあれば、イコール有益であることを意味するわけではありません。


うまくブレンディングするためには、なぜ「多様性」が必要か。

すでに98.5%の予測精度を持つモデルを持つときに、96%の予測モデルを含める価値はありますか?

答えとしては、

あるかもしれないし、ないかもしれない。

もしこれらの予測方法がとても類似していない限りにおいては、検討の余地があります。

指標として以下を提供します。

次の場合、ブレンディングによるメリットはありません。


  • モデルのピアソンの相関係数が0.99を超えている

  • かつ、コルモゴロフ–スミルノフ検定の結果が0.01を下回

逆に、以下の場合はブレンディングによるメリットがあります。


  • 逆にピアソンが0.95以下

  • かつ、スミルノフ検定が0.05よりも大きい。

上記検定をするためのスクリプトも提供されていますので、

必要な方は調べてみてください。

アンサンブルのモデルに組み込むときに、モデルが良いか悪いかはあまり重要ではありません。

それは他のモデルに対して、どれくらい多様性があるかに関係しています。

※この記事はKaggleをやっている中で、KaggleのExpertでもあるTiliiさんがDiscussionに投稿していた内容が

とても有益でしたので、一部改変したものになります。

原文:The Good, the Bad and the Blended

https://www.kaggle.com/c/jigsaw-toxic-comment-classification-challenge/discussion/51058#290767