日本国内外の先端事例や生活者トレンドをSEEDATA独自の視点で分析し、ブログ形式で配信しています。News

Written by
SEEDATA
公開日:2020.05.14/ 更新日:2021.06.11

テクノロジー(Technologies)

【回帰分析の数理】#3 線形回帰の多項式回帰への拡張

[mathjax]

はじめに

データマイニング・機械学習における最もシンプルな分析手法である線形回帰について説明します。前回の記事では、説明変数が一つである単回帰分析から、説明変数が複数である重回帰分析への拡張を行いました。

【回帰分析の数理】#2 線形回帰のパラメタを決定する正規方程式

今回の記事では、多項式によるフィッティング(polynomial regression)に拡張した議論を行います。

多項式回帰

データにおいて、説明変数と目的変数は、必ずしも直線的な関係に従うとは限りません。線形回帰における、「線形」の意味合いは「直線」のことであると勘違いされがちですが、実際にはモデリングの形式が線形結合であれば、多項式や対数の絡んだ特徴量も線形回帰として扱うことができます。

具体例として、次のようなデータを考えます。

説明変数は(x)一つ、目的変数は(y)ですが、(x)と(y)は直線の関係ではモデリングできません。そこで、次のような多項式のモデルを考えてみます。(k)は多項式の次数であり、定数です。モデルのパラメタではないことに注意してください。例えば、上記のデータが(x)の4次関数で表せる場合、(k=4)となります。

$$
large
begin{align}
y &= h_theta(x) + epsilon \
&= theta_k x^k + cdots + theta_2 x^2 + theta_1 x + theta_0 + epsilon
end{align}
$$

このように”非線形”なモデルを、これまでの線形回帰と同じように扱うために、いくつか概念を定義します。

(phi:mathbb{R} mapsto mathbb{R}^{k+1})を定義し、説明変数を次のような特徴ベクトルに変換します。

$$
large
phi(x) = (1, x, x^2, x^3, ldots, x^k)^mathrm{T} in mathbb{R}^{k+1}
$$

(phi)は特徴写像(feature map)と呼ばれます。

補足
特徴写像は、のちにカーネル法(非線形な関係を持つデータの解析に使われる)において重要になります。カーネル法による代表的な解析手法として、例えばサポートベクターマシン(SVM)があります。

すると、モデリングの関数(h_theta(x))は次のように表すことができます。

$$
large
begin{align}
h_theta(x) &= theta_k x^k + cdots + theta_2 x^2 + theta_1 x + theta_0 \
&= theta_k phi(x)_k + cdots + theta_2 phi(x)_2 + theta_1 phi(x)_1 + theta_0 phi(x)_0 \
&= theta^mathrm{T} phi(x)
end{align}
$$

つまり、新たに({phi(x^{(i)}), y^{(i)}}_{i=1}^N)をデータセットとして扱えば、これまでと同じように線形回帰の手法(e.g. パラメタを求める際の正規方程式)が活用できることになります。プログラムを組む際には、取得時のデータセット(正確には、design matrix。下図参照)を適切な形で新たなデータセットに変数変換する処理が必要になるだけであり、この処理は特徴量エンジニアリングと呼ばれる過程の一つです。

さて、先ほどのデータについて、いくつかの(k)についてフィッティングした結果、次のようになりました。

モデルの柔軟性と過学習について

上記のフィッティング結果を見ると、多項式の次数である(k)が大きいほど、データに柔軟にフィットしていることが分かります。直観的には、(k=1, 2)ではデータを説明しきれておらず、(k=20)ではサンプルごとの違いに敏感に反応しすぎているように見えます。一般的に、モデルの説明変数を増やせば増やすほど、モデルの柔軟性は向上します。

ここで、データの量を5分の1に減らして、再度同じモデルでフィッティングしてみましょう。結果は次の通りです。

(k=20)の場合で、フィッティング曲線が激しく変動してしまっていることが分かります。これは、過学習(overfitting)と呼ばれる現象で、サンプル間の変動にモデルが敏感に反応しすぎてしまったことにより、データをうまく説明できなくなってしまうというものです(同時に、機械学習の文脈ではモデル学習に使用していない「未知のデータ」に対する予測能力である汎化性能が下がることでもあります)。過学習は、“high variance”とも表現されます。“variance”とはバラツキや変動のことを指し、サンプル間の変動にモデルが敏感である状態のことを指します。

過学習を防ぐには、安易に説明変数を増やし過ぎず適切かつ最小限の説明変数を選択すること(変数選択 feature selectionオッカムの剃刀と呼ばれる原則に基づきます)や、データの量を増やすことが必要です。また、その他のテクニックとして「正則化」と呼ばれる技術があります。次回は、過学習を防ぐL2正則化の詳細について見ていきます。

【回帰分析の数理】#4 過学習を防ぐL2正則化とベイズ的解釈(MAP推定)

参考文献

Stanford cs229 Lecture Notes Kernel Methods (Andrew Ng)

コメントする

メールアドレスが公開されることはありません。 が付いている欄は必須項目です