LoginSignup
36

More than 5 years have passed since last update.

【機械学習】シンプルな回帰分析の例

Last updated at Posted at 2016-07-28

こんにちは。
林@アイエンターR&Dです

最近は機械学習の分野では、Amazon/Google/Microsoft など
世界のIT企業のトップが積極的にプラットフォームを提供しており、
ディベロッパーが機械学習を導入するハードルも下がりつつあります。

しかしながら、プラットフォームやツールの使い方は習得しても
その裏側のアルゴリズムの理解については、まだまだハードルが
高いイメージもあるかと思います。

ただ、高度な数学的な知識が必要となる部分もありますが
基本原理は高校数学レベルで理解できる部分もあります。
今回はその中でシンプルな「回帰分析」という解析手法の例を紹介します。

その前に機械学習の基本概念について少し触れておきます。


■「教師あり学習」と「教師なし学習」

機械学習のモデルは大きく分けて「教師あり学習」と「教師なし学習」があります。

「教師あり学習」はお手本となる「教師データ」を用意し,
そのデータに沿って,将来起こりそうな事象を予測します。
機械学習のサービスの大半は、この「教師あり学習」のモデルです。

「教師なし学習」は判断するための教師データはありません。
解析対象のデータに存在する特徴を探し出し、データの似た者同士を
グループ分けする用途で使用されます。

これ以外にも「半教師あり学習」や「強化学習」と呼ばれる
モデルもありますが、今回は説明を割愛します。


■「回帰」と「分類」

「教師あり学習」モデルでは「回帰」と「分類」という基本概念があります。

「回帰」とは、簡単に言うと「数値予測」です。
過去の入力数値から未来の数値を予測する概念です。
たとえば、「明日の日経平均株価はいくら?」とか
「明日の最高気温は何度?」などの予測をイメージしてもらうと
わかりやすいかと思います。

「分類」は、過去の入力数値を元に、新たに与えられたデータを
グループに仕分けする概念です。
迷惑メールフィルターがイメージしやすいモデルかと思います。


■「回帰分析」

数値予測の「回帰」にフォーカスすると、回帰分析という数学的なアプローチがあります。

回帰分析とは、計測データをグラフ化したときに、それにフィットする関数を予測する方法です。

その中でも機械学習サービスは「線形回帰(linear regression)」という
数学モデルを用いています。

今回はまずは、最もシンプルな回帰分析の例で
最小二乗法で直線を推定する方法を紹介します。

つまり、下図のような、赤点のプロットデータ(x,y)に
対して、青い破線の直線の一次方程式を求める方法です。

<一次方程式での推定>

この方程式のaとbの値を算出することで、
先のxの値に対するyの値を推測できるようになります。

どのような直線が相応しいものかの1つの考え方として
直線と各データプロットの距離の和が最小になるように考えます。

つまり、下図のようにデータプロットの赤点と、
直線上の黄点を結んだ緑線の長さに着目します。
直線との距離の誤差が最小になるようにするイメージです。

各赤点の座標を以下のように表現します。

ちなみにプロットの赤点の各座標は、以下の通りです。

プロット赤点(Xi, Yi)と直線上の黄点の数値差をDiとすると、

と書けます。

ただ、この数値差Diは正負のどちらにも成りえますので、それらを足し合わせても
最小値の評価には成りえません。

なのでDiを二乗した総和Sで評価します。

さらに、このS(a,b)に上記の、(X0, Y0)...(X5, Y5)の
実データを入れて計算すると、以下のような形に展開されます。

つまり、以下の2変数関数S(a,b)を最小にする、aとbを求めればよいことになります。

2変数関数の最小値を求める場合は、高校数学で学習する
偏微分を用います。

S(a,b) が最小になるポイントでは、a,bでそれぞれ偏微分した値は0になります。

上記はa,bの連立方程式となりましたのでそれを解くと、aとbは以下の値になります。

つまり、以下の1次関数が求める直線になります。

計測データには、X=6のデータはありませんが、この推測した関数を用いると、
Y = 1.4 × 6 + 2 = 10.4という数値を予測できることになります。

ただ、今回の解析は仮説ベースのものであることも忘れてはならないポイントです。

計測されたデータ群が関数に当てはめることができること自体も
仮説でありますし、それをさらに今回は直線と仮定したところも
強い縛りのある仮説になります。

ただ、仮説というモデルがなければ、収集されたデータ群から予測解析はできません。
つまり、機械学習を導入する上ではモデルの設計が重要なポイントです。
また、機械学習は厳密さをある程度割り切って「計算できる」ことに重点をおく
思想であることも重要なポイントだったりします。

今回のお話はここまで!

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
36