【過学習②】線形回帰における過学習について

こんにちは。Mocal designの佐藤です。

 

これまでの当ブログ記事で機械学習を用いた時系列分析、クラスタリング、分類について簡単に説明してきました。

 

前回説明した過学習について、特にご好評をいただいたので、今回は線形回帰における過学習について話をしていきたいと思います。

 

前回、学習データが足りない場合や、テストデータに対してアルゴリズムが複雑すぎる場合は過学習という現象が起こるという話をしました。

 

過学習についてはこちらをご覧ください。

 

【過学習①】データ分析を行うにはどのくらいのデータが必要なの? | 儲かるデザイン|小平市のWEB制作会社 (mocaldesign.tokyo)

 

本日は以下について説明しましょう。

 

1・回帰とは何か?

2・多項式回帰

3・線形回帰での過学習

4・リッジ回帰、ラッソ回帰

5・ランダムフォレスト

 

まずは回帰とは何かという話をしていきたいと思います。

 

1.回帰とは何か?

 

0歳から15歳までの子供を対象に身長のデータをとるとします。

 

横軸(x)を身長、縦軸(y)を年齢にしたグラフを描いた場合、右上がり(年齢が上がるほど身長が上がる)のグラフができるのはおわかりいただけるでしょうか。

 

ここで例えば「8歳の平均身長は何センチでしょう?」

 

というように一方の数値が与えられたとき、もう片方を予測することが回帰分析です。

 

また、予測値を求める際に分布傾向をみながら、すべての点から近い線を引くことを線形回帰と言います。

 

今のたとえの場合は点が線上に配置されていたので良かったものの、実際取り扱うデータによっては直線ではなく曲線になることも少なくありません。

 

データを採集する対象を0歳から15歳ではなく、0歳から60歳になるとどうなるでしょう?

 

15歳を超えたあたりから身長は伸びず、曲線が発生することがおわかりいただけるはずです。

 

このような条件を与えられた場合に、真っすぐな線形回帰は破綻することとなります。

 

2.多項式回帰

 

ここで導入される概念を(重回帰のなかの)多項式回帰と言います。

多項式回帰は曲線を描くための手法です。

 

まず、多項式とはなにか?

簡単にいえば特徴が多くあるということです。

ここで言えば年齢、身長の他に胸囲、体重などの情報を増やすということでしょうか。

 

今回あえて細かい数式は書きませんが、多項式回帰の公式は通常の線形回帰と比べて、係数を二乗したり、係数同士を掛け算することにより特徴(項式)の数を増やしてあると覚えてください。

 

具体的には二乗したものを係数倍することにより、二次曲線というグネっと曲線を作ることができます。

 

また、係数同士の掛け算によって、より高度な曲線を描くことが可能となります。

 

つまり、特徴量を増やすことによって回帰の能力を高めるのが多項式回帰です。

 

 

そもそも、多項式回帰を用いた学習はどのように行うのでしょう?

 

線形回帰と同じく、推定したい値と実際の値の誤差をできるだけ小さくするのが回帰における学習です。

 

実際の値が120cmなのに予測した値が125cmだとすると5の誤差が生まれます。

 

つまり、そこで生まれた誤差5cmをもっと小さく修正してくださいというのが回帰における学習です。

 

このときに注意すべきポイントは過学習でしょう。

 

前回の記事でも、学習データ数が少ないとうまく学習ができないという問題があるという話をしました。

 

今回は過学習が起きたときに線形回帰ではどのような問題が起こるかという話をしていきます。

 

3.線形回帰での過学習

 

多項式回帰の場合、通常の線形回帰と比べて過学習が起こりやすくなります。

 

実は係数は大きくなれば大きくなるほど、過学習が起こりやすいというのがわかっています。

 

何度も言いますが、多項式回帰では係数を2乗したり、係数同士をかけ合わせるので、どうしても数値が大きくなります。

 

そのような場合、係数の大きさを制限してあげることにより過学習を防ぐという方法を用います。

 

たとえば多項式で2乗や掛け合わせを行った係数が10,000、-10,020、9,000という数値になった場合、それぞれを100で割ってみましょう。

 

10,000÷100=100

-10,020÷100=-10

9,000÷100=90

 

本来の数字をそれぞれ100で割り、100、-100、90とします。

 

「この数値でも予測ができます」とした時に、係数が小さいほうが過学習しにくいパラメータとなります。

 

このように過学習を防ぐ手法として、いくつか手法を紹介します。

 

4.リッジ回帰、ラッソ回帰

 

ここではリッジ回帰とラッソ回帰についてお伝えしましょう。

 

今、説明に使用した係数10,000、-10,020、9,000を使って簡単に説明します。

 

本来は複雑な公式ですが、数式を使わずに超簡単に説明すると、100の二乗、-100の二乗、90の二乗という公式で表したものをリッジ回帰。

 

100の二乗、-100の二乗、90の二乗それぞれの絶対値(0からどれだけ離れているか)に2乗をつけて表したものをラッソ回帰といいます。

 

リッジ回帰やラッソ回帰を使うことで回帰分析の過学習が起こりにくくなります。

 

実際の機械学習における分析ではリッジ回帰、ラッソ回帰のどちらかを使う、またはどちらも使うという選択はコード1行で完結します。

 

最後にランダムフォレストについて説明しましょう。

 

5.ランダムフォレスト

 

ランダムフォレストも回帰や分類での過学習を防ぐ手法です。

 

ランダムフォレストを説明する前に決定木という考え方を説明する必要があります。

 

決定木とは木構造を用いて分類や回帰を行う機械学習の手法です。

 

身長の話に戻すと条件分岐で

 

身長120cm以上?

YES? NO?

YESなら体重は25kg以上?

YES? NO?

YESなら座高は65cm以上?

どれもYESなら、身長125cm以上?

YES? NO?

 

といった条件で仕分けをしていくのが決定木です。

 

このように決定木とは、分類や回帰のルールをツリーの形で表現したものです。

 

それに対し、ランダムフォレストは、(大雑把に言うと)そのツリー(決定木)をたくさん集めて多数決をとったものです。

 

当然のことながら、決定木をたくさん集めたもので多数決を取ると、単純に1つの決定木のみで分類するよりも、精度が高くなりやすいです。

 

とはいえ、すべて全く同じデータセットを使って複数の決定木を作っても、同じ結果が出るので意味がありません。

 

ここで重要なのは、ランダムフォレストは使用するデータセットを変更して、それぞれの木々が予測する結果をあえて変えているというのがポイントです。

 

元のデータセットからランダムでサンプルを取り出すのでランダムフォレストと呼ばれます。

イメージとしては前回説明したK分割交差検証(クロスバリデーション)のようなイメージですね。

 

ランダムフォレストの大きな特徴

データの乱択・・・データをランダムに選びます。

特徴の乱択・・・使用するデータの特徴もランダムに選びます。

 

なぜそのようなことをするかと言えば、データ計測にはノイズやエラーが含まれることがあるからです。

 

データセットを変更することにより、ノイズやエラーが発生しているかもしれないという可能性を前提にツリーをたくさん作ることができます。

 

結果的にその木々が多数決を行うので、少数派の出した誤りを訂正する効果を持っているといえるでしょう。

 

このような理由からランダムフォレストはノイズやエラーに強く、過学習についても耐性を持っています。

 

ちなみにランダムフォレストなどの多数決で選ぶ手法をバギングと言います。

 

それに対し多数決ではなく、1個前の決定木が失敗した事例を正しく当てるように、次の決定木を作る手法をブースティングと言います。

 

ここでは多項式回帰、リッジ回帰、ラッソ回帰、ランダムフォレスト回帰について説明しました。

 

おわかりいただけましたでしょうか?

 

一般的にこの4つの手法のなかでは、ランダムフォレスト回帰の出した予実差が一番位小さいといわれています。

 

ただし、ランダムフォレストが完璧かというとそうではありません。

 

弊社では様々な経営課題について回帰分析を行っていますが、ランダムフォレストよりもリッジ回帰やラッソ回帰で出した予測が実績に近いものになることも少なくありません。

 

 

機械学習のモデルには本日説明した他にも「ロジスティック回帰」「サポートベクターマシン」「k-近傍法」などたくさんあります。

詳しくはこちらをご覧ください。

来月実施予定の販促キャンペーンは当たるか?当たらないか?【機械学習の分類モデルについて】 | 儲かるデザイン|小平市のWEB制作会社 (mocaldesign.tokyo)

 

 

これらの機械学習モデルを組み合わせたアンサンブル学習という手法もあります。

具体的には1つ目の木は「ロジスティック回帰」を使い、2つ目の木は「サポートベクターマシン」を使い、3つ目の木は「決定木」を使うというような手法です。

 

しかし、アンサンブル学習をするとなるとデータ量も膨大になり、学習時間が長くかかってしまいます

 

 

また、多くの制約が発生する複雑なアルゴリズムであるほど、正しい結果が導かれるかというとそうではありません。

 

どちらかと言えば、ランダムフォレストは非常にチープなモデルです。

 

ベストではなくベターな解を出そうというときには複雑なアンサンブル学習よりも本日お伝えした手法がおすすめなのです。

 

 

具体的に当社では機械学習を用いたデータ分析を

 

・numpy (数値計算のライブラリ)

 

・Pandas(データ解析を支援するライブラリ)

 

・Matplotlib(グラフを描くライブラリ)

 

・scikitlearn(クラスタリング、回帰、次元削減、分類に使うライブラリ集)

 

を使って行います。

 

「当社(当店)の経営分析をしてほしい」

 

「顧客の特徴をつかんで販促キャンペーンの効果がある方にだけ、ダイレクトメールを送りたい」

 

「話だけ聞いてみたい」

 

という方はビデオサービスZOOMを使って20分の無料コンサルをすることができますので、是非ホームページのCONTACTページからお問い合わせください

 

(通常コンサルは30分5,000円です)。

 

小平でホームページ制作、経営コンサルティング

mocal design  佐藤 大樹

東京都小平市南町1-27-10

✉ info@ofb.jp

☟トップページはこちらから

HOME

 

【過学習②】線形回帰における過学習について
トップへ戻る