アンサンブル学習の有効な活用方法

シェアする

回帰分析やクラス分類のときに、アンサンブル学習をすることがあります。アンサンブル学習では、たくさんの回帰モデルやクラス分類モデルを構築します。一つ一つのモデルの予測精度は低くても、総合的にモデルを用いることで、予測精度を向上させることができます。

アンサンブル学習 ~三人寄れば文殊の知恵~ たくさんモデルを作って推定性能を上げよう!
応化先生と生田さんがアンサンブル学習 (ensemble learning) について話しています。 応化:今日はアンサンブル...

例えば、ランダムフォレストでは説明変数 x やサンプルをランダムに変えてたくさんの決定木を構築します。一つ一つの決定木の予測精度は低くても、それらを全て用いて予測し、回帰分析では予測値の平均値を、クラス分類では予測結果の多数決を最終的な予測結果とすることで、予測精度を向上させることができます。

ランダムフォレスト(Random Forests, RF)や決定木(Decision Tree, DT)で構築したモデルを逆解析するときは気をつけよう!
回帰モデルやクラス分類モデルを構築したら、モデルの逆解析をすることがあります。逆解析では、説明変数 (記述子・特徴量・実験条件など) X の...

アンサンブル学習では、x やサンプルをランダムに選択もしくはサンプリングするだけでなく、遺伝的アルゴリズムで選択することもできます。

また、たくさんのモデルを構築するとき、x やサンプルだけでなく回帰分析手法やクラス分類手法を変えてモデルを構築することもできます。このようにいろいろな手法で構築したモデルをすべて用いて予測するモデルを、特にコンセンサスモデルといいます。

他には、あるデータセットにおける x と目的変数 y の間の関係が一つでは表せない場合、例えば化合物において物性を発現するメカニズムが複数あったり、プラントにおけるプロセス状態ごとに x と y の関係が変化したりする場合、x やサンプルを意図的に選んでモデルを構築することもできます。

以上のように、アンサンブル学習といってもいろいろな学習方法があります。最終的な予測結果を計算するとき、一般的なアンサンブル学習では、上で述べたように回帰分析では複数のモデルの予測値の平均値、クラス分類では複数のモデルの予測結果の多数決を用います。ただ、特にアンサンブル学習における一つ一つのモデルを意図的に工夫して構築した場合など、平均化すると当たりさわりのない予測結果になってしまい、予測精度が上がらないこともあります。

そんな時には、モデルごとに重みをつけるとよいです。例えば、クロスバリデーション後の予測値で計算した RMSE を RMSEcv としたとき、1 / RMSEcv2 を重みとすることで、クロスバリデーションの予測精度が高いモデルほど重みを大きくすることができます。

さらに、重みを予測するごとに変化させることで、x の値や予測している状態ごとに異なるモデルの重みを大きくすることができ、その x の値や状態が得意なモデルほど予測値を優先的に反映させることができます。例えばこちらの論文では、ソフトセンサーにおいて時間的に近いサンプルの予測値で計算された RMSE に基づいて、1 / RMSE2 を重みにすることで、直近のプロセス状態を予測できたモデルほど重みを大きくするようにしています。またこちらの論文では

新たなアンサンブル学習法を開発しました![金子研論文][Pythonプログラム付き]
昨年度の金子研の四年生が主に研究していたテーマの成果が、Journal of Computer Chemistry, Japan にて論文公...

モデルの適用範囲を利用することで、モデルの適用範囲内のモデルほど重みを大きくするような仕組みにしました。

以上のように、アンサンブル学習において重みを適切に設定することで、x と y の関係が複雑である場合でも柔軟にモデル設計をすることができます。ぜひ活用していただければと思います。

以上です。

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

シェアする

フォローする