過学習(オーバーフィッティング)が怖いときはアンサンブル学習と組み合わせよう!

シェアする

過学習 (オーバーフィッティング) した回帰モデルやクラス分類モデルがあるとき、そのようなモデルとアンサンブル学習との相性はよいです。そもそもアンサンブル学習は、精度が低いモデルでもたくさん用いて予測することで、最終的な精度を向上させる学習方法です。一つ一つのモデルがオーバーフィッティングしていて、新しいデータに対する予測精度が低い、すなわち予測誤差が大きいときでも、そのようなモデルをたくさん組み合わせて使用してアンサンブル学習することで、予測精度の低下を抑えることができます。ニューラルネットワークの、特に深層学習における dropout も、アンサンブル学習の効果によってオーバーフィッティングを低減する狙いがあります。

深層学習の dropout に限らず、オーバーフィッティングの危険があるモデルを使用するとき、そのようなモデルをたくさん準備してアンサンブル学習することで過学習を低減できます

例えば、遺伝的アルゴリズムと回帰分析・クラス分類を組み合わせることで、何らかの指標の値を向上させるように特徴量選択をすることができます。

GAPLS, GASVR でモデルの推定性能がよくなるように説明変数の選択をしよう![Pythonコードあり]
遺伝的アルゴリズム (Genetic Algorithm, GA) を使って説明変数を選択する話です。2つの手法である Genet...
[Pythonコードあり] スペクトル解析における波長領域や時系列データ解析におけるプロセス変数とその時間遅れを選択する方法
遺伝的アルゴリズム (Genetic Algorithm, GA) を使って回帰モデルの推定性能がよくなるように、説明変数 (記述子・特徴量...

ただ、向上させる指標は、あくまで内部バリデーションの指標です。クロスバリデーションにかぎらず、たとえトレーニングデータとテストデータに分け、テストデータで計算された指標 (r2 や正解率など) を向上できたとしても、テストデータにオーバーフィットする危険があります。そのため選択された特徴量で構築されたモデルはオーバーフィッティングしている可能性があります。

このときに GAPLS や GASVR がまったく使えないかというと、そうではありません。アンサンブル学習することで、オーバーリッピングを低減できます。具体的には、GAPLS や GASVR をたくさん実行して、いろいろな特徴量セットを獲得し、それぞれでモデルを構築します。それらのモデルを総合的に用いてアンサンブル学習することで、最終的な予測値を計算します。これによりオーバーフィッティングを低減できます。こちらのように各モデルにおけるモデルの適用範囲を考慮するとよいですが、

単純に平均値や中央値を計算しても効果があります。

もちろんモデルごとに選択された特徴量は異なりますので、どれが重要な特徴量か?の議論は難しくなります。ただこちらに書いたように、基本的に特徴量選択は予測精度を向上させることを目的にするのではなく、不要な特徴量を削除することを目的とした方がよいです。

その意味では、まったく選択されなかった特徴量を削除する、といった心持ちで GA を用いた特徴量選択をするのがよいでしょう。

アンサンブル学習するとき、単純に平均値や中央値を用いる方法より効果的な方法があります。例えば、ソフトセンサーの分野において

ソフトセンサーの4つの役割
化学プラント・産業プラントで活用されるソフトセンサー (分野によっては Process Analytical Technology (PAT...

SVR モデルや LWPLS モデルを複数構築しておいて、それらのアンサンブル学習によって最終的な予測値を計算する手法があります。各モデルはプロセス状態ごとに予測精度が異なる、すなわちモデルごとに予測精度の高い、得意なプロセス状態もあれば、予測精度の低い、苦手なプロセス状態もあると考えられます。そこで予測するときは、各モデルにプロセス状態ごとの予測精度に応じた重みを設定し、重み付き平均によって予測値を計算します。こうすることで、プロセス状態ごとに臨機応変に得意なモデルに重きをおいて予測できます。

以上のように、オーバーフィッティングが起きることが想定され、それを防ぎたいときには、アンサンブル学習を組み合わせるとよいでしょう。

以上です。

質問やコメントなどありましたら、twitter, facebook, メールなどでご連絡いただけるとうれしいです。

シェアする

フォローする