教育

3分で済ませる機械学習入門!初心者が混乱しがちな回帰とは?

3分で済ませる機械学習入門!初心者が混乱しがちな回帰とは?のイメージ

「機械学習を勉強しているけど回帰ってなんだかよくわからない!」からと、機械学習についての本などで必ずと言ってもいいくらい見かけるもののなかなかわかりづらいですよね。

回帰と一口に言っても単回帰や重回帰という言葉があったり、機械学習のアルゴリズムにも回帰という言葉の入った用語が出てくることも。しかし回帰という言葉自体がそもそも何を指しているのか、機械学習の中でどのような位置づけにあるのか混乱しやすいのも事実です。

そこで今回は、機械学習入門として回帰とは何か、機械学習で頻繁に見かける用語である「分類」との違い、代表的なアルゴリズムや評価指標など回帰にフォーカスを当てて学んでいきましょう。

それではまず、そもそも回帰とは何であるかからお伝えします。

機械学習でよく聞く回帰(Regression)とは

機械学習でよく聞く回帰(Regression)とはのイメージ

機械学習で頻繁に見かける回帰は変数と変数の間にある関係性を推測するものです。

私達が数学で一次関数や二次関数を学んでいた時xとyの関係を重視してましたよね。回帰でもそれは同じ。データからxとyの関係を関数で表し、xが未知のデータであってもそれに対するyの値を予測していくことになります。

単回帰と重回帰を学ぼう

単回帰と重回帰を学ぼうのイメージ

機械学習で回帰と見ると単回帰と重回帰の2つが出てきます。そこで単回帰と重回帰の違いも整理していきましょう。

ここでは機械学習で体重を予測すると仮定し、回帰を用いていくとします。

初めに単回帰。

これは体重を求めたい値(目的変数)とする場合、体の要素から一つだけを体重を左右する変数(説明変数)として考えていくというものです。ここでは身長としましょう。

2つの変数の関係性はy=ax+bという一次関数で表すことが可能。ここで傾きとなるaと切片となるbがわかれば身長だけですぐに体重を計算できるということになります。

とはいっても同じ身長でも違った体重の人はたくさんいますよね。

そこで重回帰。

単回帰では体重を求めるのに身長だけで考えていたのに対し、重回帰では腹囲や胸囲など複数の要素も説明変数として考えていくことになります。

機械学習の基本!回帰(Regression)と分類(Classification)の違い

機械学習の基本!回帰(Regression)と分類(Classification)の違いのイメージ

ところで、機械学習の中で分類という用語も見かけますよね。そこで回帰とどう違っているのか解説していきます。

ここでは新しいレストランで考えましょう。
両者の違いを一言で表すとその店が好きかそうでないかを予測していくのが分類、その店にこれから何回来店するか予測するのが回帰。

これだとざっくりしているので分類についてもう少し見ていきます。

機械学習の中で分類を使うのは先程挙げた新しいレストランの好き嫌いなどデータがどのクラスに属するかを予測する時です。

好きか嫌いかといった評価軸だとクラスは2つとなるので2値分類。口コミサイトのような感じで好きか嫌いかを1から5の5段階で予測するなどクラスの数が2つより多い場合は多クラス分類と言います。

これまでの章で述べたように、回帰は変数と変数の間にある関係性を推測し未知の値からでも目的変数の答えを推測していくというもの。

データを扱う目的がグループの仕分けなら分類で具体的な数字の予測なら回帰。

目的に応じて適切な手法を選択しないと満足のいく結果が得られなくなる可能性があるので注意しましょう。

代表的な回帰(Regression)アルゴリズム

代表的な回帰(Regression)アルゴリズムのイメージ

回帰と分類の違いに触れたので、回帰にどのようなアルゴリズムがあるか見ていきましょう。

ここでご紹介するのはリッジ回帰、Lasso回帰、Elastic Netの3つ。どれも線形回帰を正則化したもので、コスト関数に対し重みをどう扱うかによって3つのパターンに分かれます。

まずはそれぞれの項目に入る前に線形回帰、正則化、コスト関数、重みについて触れ、それを基に各アルゴリズムの説明に入っていきましょう。

線形回帰は複数のデータがあった時にそれらの傾向やパターンを数式で効果的に表現できるようにしていくこと。

数式は

y = w0 × x0 + w1 × x1 + w2 × x2 +・・・+ wm × xm

と表現されます。この数式を覚えておきましょう。

正則化とは過学習を防いで汎用性を持たせるテクニックの一つ。
例えば学校の教科書を丸暗記してもテストの時なかなか点数に繋がらないこともありますよね。機械学習でも与えられたデータのための学習に終始し全く新しいデータに対し適切に対処できなくなることがあります。これが過学習。

正則化ではこれを防ぐために正則化項というものをつけることで、学習したモデルが複雑にならないようにしています。

重みは説明変数が目的変数にどれくらい影響を与えるかを表したもの。
先程の式であればw1やw2などの係数がそれ。単回帰と重回帰の章で例に挙げた体重の話であれば、身長や腹囲などが体重を考えるのにどれくらい大切であるか示すものが重みとなります。
コスト関数は学習させたモデルの悪さを測る関数で、機械学習ではこれをいかに小さくするかが鍵です。

線形回帰、正則化、コスト関数、重みについて触れたのでそれぞれのアルゴリズムにも触れていきます。

リッジ回帰は線形回帰を正則化させたものの一つで、コスト関数に学習した重みの二乗の合計を加えたもの。ここで加えたものをL2正則化項と言います。

ただ、ここだと重みは性質上完全に0になることはないため説明変数が多いと複雑になるというのが弱点。

Lasso回帰も同じく線形回帰を正則化させたものの一つで、重みの合計を足したもの。重みの合計をL1正則化項と言います。
リッジ回帰と違い重みが完全に0になる性質があります。いくつかの説明変数を無視、つまり自動的に取捨選択を行ってくれるのが強み。複雑化せずに済み重要なものがどれかわかりやすくなる半面、お互い影響し合ってる度合の強い説明変数があるとそのグループから一つしか選ばれないという弱点があります。
Elastic Netはリッジ回帰とLasso回帰の折衷案。ここではL1正則化項をスパースモデルという0以外の重みを持つ特徴量がほとんどないモデルの生成に、L2正則化項をLasso回帰が抱える変数の取捨選択の制約をカバーするのに使われます。

回帰で使われる評価指標

回帰で使われる評価指標のイメージ

アルゴリズムを見てきたので評価指標も見ていきましょう。

機械学習では予測の正確さなど目的に応じ様々な評価の仕方があります。その中で回帰においてよく使われるのは平均絶対誤差、平均二乗誤差、二乗平均平方根誤差、決定係数の4つ。

・平均絶対誤差

平均絶対誤差は、実際の値と予測で出てきた値の絶対値を平均したもの。これが小さければ小さいほど誤差も小さく予測は正確であると判断することができます。

平均二乗誤差

平均二乗誤差は実際の値と予測して出てきた値の絶対値の二乗を平均したもの。二乗することによって大きな誤差が存在することになり値も大きくなるのが特徴。平均絶対誤差と同じく小さいほど正確な予測ができていると判断できます。

二乗平均平方根誤差

二乗平均平方根誤差は平均二乗誤差に平方根をとったもの。ここで平方根は二乗したことによる影響を補正するという役割を担っています。正確さの判断は平均絶対誤差や平均二乗誤差と同様。

決定係数

決定係数は回帰式がどれくらい実際のデータと当てはまっているかを表したもの。数字は0から1までで、1に近い数値であるほどうまくいっているということになります。

 

勉強するイメージ

今回は機械学習入門として回帰にフォーカスを当てていきました。

今回お伝えしたものをまとめると、回帰は変数と変数の間にある関係性を推測し未知の値からでも目的変数の答えを推測していくというもの。目的変数の予測に使い変数が一つかそれ以上かで単回帰と重回帰に分かれます。

機械学習で回帰とともに見かける分類は、データを基にクラス分けをしていくもので、数値を予測する回帰と求めるもので性質が異なっていますよね。

また、代表的なアルゴリズムは「リッジ回帰」「Lasso回帰」「Elastic Net」。線形回帰に正則化させたうえでコスト関数に重みをどう扱うかでそれぞれ分かれます。

そして精度の評価を行うのは大きく分けて2つです。誤差の計算をすることと実際のデータとの当てはまりを確かめることで、前者で用いられるのは平均絶対誤差、平均二乗誤差、二乗平均平方根誤差の3つ。後者では決定係数でした。

これらの概念を理解することで機械学習をさらに理解する足掛かりとなるでしょう。ですから着実に押さえて機械学習を学んでいきましょう。

トップへ戻る
タイトルとURLをコピーしました