機械学習

弱学習器とは

ウマたん
ウマたん
本記事では、機械学習手法の基本となっている弱学習器についてまとめていきます。実は、ランダムフォレストやXgboostなどの強力な機械学習手法は弱学習器を基にしているんです。弱学習器をアンサンブル学習させることで強い手法を生み出しているんですよー!

こんにちは!

デジタルマーケターのウマたん(@statistics1012)です!

強力な機械学習手法を構築する上で重要な弱学習器。

この記事では、そんな弱学習器について見ていきましょう!

ウマたん
ウマたん
強力な機械学習手法は弱学習器から生み出されている場合が多いんだ!

弱学習器とは

弱学習器とは、その名の通り「弱い学習器」。

単独で使うと精度の低い手法のことを指します。

手法の精度を考える上で「バイアスとバリアンス」という考え方があります。

バイアスは純粋に予測値と実測値の差を表します。

バリアンスは予測値のばらつきを表します。

バイアスが低ければ低いほど良いと思われがちですが、バイアスが低いとバリアンスが高くなる場合が多く、バリアンスが高いと過学習の可能性が高くなってしまいます。

弱学習器は、単純なモデルで予測値を推定するため、バイアスが高くバリアンスが低くなる傾向にあります。

弱学習器単体だと、予測精度の悪い結果になってしまいますが、上手くアンサンブル学習させることでバリアンスを保ったままバイアスを下げることが可能です。

弱学習器を使った強力な手法

弱学習器の真骨頂はアンサンブル学習です。

アンサンブル学習について簡単に見ていきましょう!

バギング

バギングは、並列的に弱学習器を用いてそれぞれのモデルの総合的な結果を用いるという手法です。

バギングと決定木を組み合わせたランダムフォレストという手法がありますが、以下のようなイメージになります。

訓練データに対していくつも決定木モデルを作成し、それぞれの結果を集約して最終結果を出力します。

回帰だったら平均値、分類だったら多数決。

ランダムフォレストは非常に簡単に実装できる手法ですが、それなりに高い精度が見込めるのでオススメです!

ブースティング

バギングは並列でしたが、ブースティングは直列的に弱学習器を用いていきます。

最初の弱学習器で上手く推定できなかった部分を推定するために重みを付けて次の弱学習器で学習を行います。

最終的には、精度の高いモデルに重みを付けて最終的なモデルを作成します。

決定木とブースティングを組み合わせた手法がXGboostであり、非常に高い精度をたたき出します。

一般的にブースティングの方がバギングより高い精度が見込めますが、学習に時間がかかります。

アンサンブル学習に関しては以下の記事をご覧ください!

アンサンブル学習とは?バギングとブースティングの違い当サイト【統計ラボ】の本記事では、アンサンブル学習についてまとめていきます!アンサンブル学習とは機械学習を学ぶ上で非常に重要な考えであり、弱学習器と呼ばれる手法をいくつか組み合わせて強い学習器を作るもの。有名なランダムフォレストやXgboostなどもアンサンブル学習によって生み出されているんです!...

弱学習器 まとめ

弱学習器は単独だと全く使えないというわけではありません。

強い手法ではありませんが、アルゴリズムがシンプルでデータの構造を紐解く意味でも使いやすい手法が多いです。

逆にアンサンブル学習に強学習器を使っても意味がありませんので注意しましょう!

弱学習器と強学習器の違いは微妙なところで、何が弱学習器という明確な定義はありませんが、決定木や単純なニューラルネットワークなどは弱学習器と考えてよいです。

弱学習器やアンサンブル学習などを含めた機械学習について学びたい方は以下の本をオススメします。

created by Rinker
¥3,300
(2020/05/31 22:33:11時点 Amazon調べ-詳細)

もっと機械学習手法について詳しく知りたい方はぜひ以下の記事を見てみてください!

機械学習入門に必要な知識と独学勉強方法をPythonとRの実装と一緒に見ていこう!当サイト【統計ラボ】の本記事では、入門者向けに機械学習についてカンタンにまとめていきます。最終的にはどのように機械学習を学んでいけばよいかも見ていきます。細かい手法の実装もPython/Rを用いておこなっていくので適宜参考にしてみてください。...
Pythonを初学者が最短で習得する勉強法

Pythonを使うと様々なことができます。しかしどんなことをやりたいかという明確な目的がないと勉強は捗りません。

Pythonを習得するためのロードマップをまとめましたのでぜひチェックしてみてくださいね!