備忘録

勉強や読書の記録

ISLR: Chapter 6 Linear Model Selection and Regularization

 回帰において標準的な線形モデルは以下のように書かれる.  \displaystyle
\begin{align}
Y=\beta_0+\sum_{i=1}^p\beta_iX_i+\epsilon \label{standardLinearModel}
\end{align}
この線形モデルに,最小二乗法よりも良い予測の正確さ(Prediction Accuracy)とモデルの解釈性(Model Interpretability)を持つフィッティングの方法を適用したい.

  • Prediction Accuracy: 説明変数と目的変数の関係がほぼ線形だとする.この時,n \gg p,つまり,説明変数の数pに対して観測の数nが十分に大きいなら最小二乗法で推定されたパラメタはバイアスが低いので,テストデータに対してもうまく機能することが期待できる.しかし,nが十分に大きくなかったらうまく機能しないだろう.また, p>nなら分散が無限大になるので,最小二乗法は有効ではない.そこで,推定されたパラメタを縮小することで,バイアスをほんの少し増加させる代わりに分散を小さくし,性能を上げることができる.

  • Model Interpretability: 多変量回帰では,全ての説明変数が目的変数に貢献しているわけではない.そういった変数は無駄に解釈を難しくしているので,それらの説明変数に対する係数を0にして,解釈しやすいモデルを獲得したい.

6.1 Subset Selection

 Subset Selectionは,p個の説明変数のうち,目的変数をよく説明しているいくつかの説明変数を選び出す.

6.1.1 Best Subset Selection

 以下のアルゴリズムの通り.

  1. M_0をnull modelとする.M_0はそれぞれの観測について標本平均を予測する.

  2. k=1,\ 2,\ldots,\ pについて,

    (a) {}_pC_k個のモデルをフィットさせる.

    (b) {}_pC_k個のモデルの中で最も良いモデルをM_kとする.良さはRSSR^{2}で決める.

  3. M_0,\ldots,\ M_pの中から,AIC, BIC, adjusted R^{2}, cross-validated prediction errorなどを用いて,一番良いモデルを選ぶ.

 Step 2によって,2^{p}個のモデルのうち1つを選ぶ問題から,p+1個のモデルのうち1つを選ぶ問題に置き換わっている.

 ただ,何も考えずにRSS,\ R^{2}の値の最小/最大だけで決めてはいけない.というのも,説明変数の数を増やせばRSSは単調減少,R^{2}は単調増加するから.この低いRSSや高いR^{2}はtraining errorが低いことを意味するが,我々が欲しいのはlow test error.ゆえに,Step 3でcross-validated prediction errorやAIC, BIC, adjusted R^{2}を使ってモデルを選択している.

 最小二乗法に対してBest Subset Selectionする方法を示したが,基本的に他の手法に対しても同じように適用可能.ただ,ロジスティック回帰の場合はRSSの代わりに,最大対数尤度に-2をかけた逸脱度(deviance)を用いる.このdevianceは低いほどうまくフィットしていることを表す.

 Best Subset Selectionの欠点としては,pが大きいときに計算が大変という点が挙げられる.

6.1.2 Stepwise Selection

 Best Subset Selectionがpが大きい時に計算量が多いという問題に加え,探索空間が巨大になるので過学習やパラメタ推定の分散が大きいという問題も起こり得る.以下の方法は探索空間がBest Subset Selectionより小さい.

Forward Stepwise Selection

 以下のアルゴリズムの通り.

  1. M_0をnull modelとする.M_0はそれぞれの観測について標本平均を予測する.

  2. k=0,\ 1,\ldots,\ p-1について,

    (a) M_kに説明変数を1つ加えた,p-k個のモデルを考える.

    (b) p-k個のモデルの中で最も良いものを選択し,それをM_{k+1}とする.良さの尺度はRSS,\ R^{2}

  3. M_0,\ldots,\ M_pの中から,AIC, BIC, adjusted R^{2}, cross-validated prediction errorなどを用いて,一番良いモデルを選ぶ.

 Best Subset Selectionが2^{p}個のモデルを検討するのに対し,Forward Stepwise Selectionは\displaystyle 1+\frac{p(P+1)}{2}個のモデルを検討する.ただし,Forward Stepwise Selectionによって得られるモデルは2^{p}個のモデルの中でのベストとは限らない(最初に得たベストのモデルM_1に変数を1つずつ加えていくので,例えばM_1X_1を含んでいた場合,X_2,\ X_3から成る2変数のモデルを検討することはできない).

 Forward Stepwise Selectionはn \lt pの時でも使えるが,この場合はM_0,\ldots,\ M_{n-1}個のモデルしか作れない(p \geq nの時は一意の解を得られらないという性質を持つ最小二乗法で各サブモデルをフィッティングしてるため).

Backward Stepwise Selection

 Forward Stepwise Selectionの逆で,1つずつ変数を落としていく.以下のアルゴリズムの通り.

  1. M_pを全ての説明変数を含んだfull modelとする.

  2. k=p,\ p-1,\ldots,\ 1について,

    (a) M_kから説明変数を1つ落とした,k個のモデルを考える.

    (b) k個のモデルの中で最も良いものを選択し,それをM_{kー1}とする.良さの尺度はRSS,\ R^{2}

  3. M_0,\ldots,\ M_pの中から,AIC, BIC, adjusted R^{2}, cross-validated prediction errorなどを用いて,一番良いモデルを選ぶ.

 Forward Stepwise Selectionと同様に,探索する範囲は\displaystyle 1+\frac{p(p+1)}{2}個のモデルで,pが巨大でも適用可能.ただし,Backward Stepwise Selectionではn>pであることがマスト(n > pじゃないとそもそもfull modelを作ることができない).つまり,n \lt pの時は使えない.

Hybrid Approaches

 Forward Stepwise SelectionとBackward Stepwise Selectionのハイブリッド.Forward~のように変数を1つずつ追加していくが,その度にモデルの性能改善に貢献してない変数を落としていく.Forward~/Backward~の計算量を維持しつつ,得られたモデルはBest Subset Selectionによる結果に近い.

6.1.3 Choosing the Optimal Model

 サブモデルを作ったはいいが,その中からtest errorが最小のモデルをどのように選ぶのか.training errorが必ずしもtest errorをpoor estimateしてるとは限らないので,training errorに関連しているRSS, R^{2}以外の尺度が必要.よく使われるのは,(1) 過学習によるバイアスを考慮した補正をtraining errorにかけることで間接的にtest errorを推定,(2) 5章で説明したvalidation setやcross-validation approachを使って直接的にtest errorを推定,という2つのアプローチ.

C_p, AIC, BIC, and Adjusted R^{2}

 一般に,training set MSEはtest set MSEよりも小さくなる.なぜならテストデータではなく訓練データを用いて最小二乗法でRSSを最小化しているから. \displaystyle
\begin{align}
MSE=\frac{1}{n}\sum_{i=1}^{n}(y_i-\hat{f}(x_i))^{2}=\frac{RSS}{n}
\end{align}
そういうわけで RSS,\ R^{2}はモデル選択には有効ではない.そこで,モデル選択に有効な4つの指標C_p赤池情報量規準AIC),ベイズ情報量規準(BIC),adjusted R^{2}を示す.

 最小二乗法でフィットされたモデルがd個の説明変数を含んでいる時,test error MSEのC_pは以下のように書ける. \displaystyle
\begin{align}
C_p=\frac{1}{n}(RSS+2d\hat{\sigma}^2)
\end{align}
ここで,\hat{\sigma}^{2}は式\eqref{standardLinearModel}の誤差項\epsilonの分散の推定量である.式の解釈としては,training errorがtest errorを過小評価する傾向にあるのを考慮してRSSにペナルティ2d\hat{\sigma}^2を加えている.説明変数が増えれば増えるほどばらつきも増えるので,説明変数を増やした際にRSSが減少するのを補正している.また,もし\hat{\sigma}^{2}\sigma^{2}の不偏推定量だった場合,C_pはtest MSEの不偏推定量になる.C_pは小さい値ほどよいモデルであることを表す.

 \displaystyle {C’}_p=\frac{RSS}{\hat{\sigma}^{2}}+2d-nで与えられるMarrow’s C_pもあるが,これを用いると,C_pは次のようにも書ける. \displaystyle
\begin{align}
C_p=\frac{1}{n}\hat{\sigma}^{2}({C’}_p+n)
\end{align}
結局,Marrow’s C_pの最小化とC_pの最小化は同じ話.

 次に,AICAIC最尤推定で定義される.\epsilonガウスノイズの場合の線形モデル(式\eqref{standardLinearModel})についてのAICは下式で与えられる. \displaystyle
\begin{align}
AIC=\frac{1}{n\hat{\sigma}^{2}}(RSS+2d\hat{\sigma}^2)
\end{align}
本来は定数項も存在するが,記述の簡略化のため除去している.最小二乗法でフィットされた線形モデルの場合は,C_pAICは比例関係にある.したがって,AICでモデル選択する場合もAICが最小となるモデルを選ぶ.

 BICベイジアンの視点で導出される.d個の説明変数を持つ最小二乗モデルの場合のBICは下式. \displaystyle
\begin{align}
BIC=\frac{1}{n\hat{\sigma}^{2}}(RSS+\log(n)d\hat{\sigma}^{2})
\end{align}
BICでモデル選択する場合もBICが最小となるモデルを選ぶ.ペナルティ項がC_pAIC2d\hat{\sigma}^{2}から\log(n)d\hat{\sigma}^{2}に変わっている点に注意.任意のn>7について\log n>2なので,BICは変数が多いモデルに強いペナルティを課す.ゆえにC_pよりも説明変数の少ないモデルが選ばれやすい.

 最後にadjusted R^{2}.調整前のR^{2}\displaystyle R^{2}=1-\frac{RSS}{TSS},\ \mbox{where } TSS=\sum {(y_i - \hat{y}_i)}^{2}で定義される.adjusted R^{2}は以下のように定義される. \displaystyle
\begin{align}
\mbox{Adjusted } R^{2}=1-\frac{RSS\ /\ (n-d-1)}{TSS\ /\ (n-1)}
\end{align}
adjusted {tex:R^{2}]の場合は,値が最大のモデルを選択する.adjusted {tex:R^{2}]の最大化は RSS/(n-d-1)の最小化と等価.RSSは単調減少だが,分母に組み込んだ説明変数の個数dがあるので,RSS/(n-d-1)dに応じて増加または減少する.直感的には,理想のモデル選択を行った場合,そこに更に変数を追加してもRSSはほぼ減らないが,dが増加しているので,RSS/(n-d-1)は増加する.ゆえにadjusted R^{2}は減少する.本書で述べられているように,C_pAICで選ばれたモデルとは異なるモデルが選択される場合もある.

 もちろん最小二乗モデル以外のモデルにも適用可能.

Validation and Cross-Validation

 validation set approachやcross-validationで直接的にtest errorを推定する方法.test errorを直接推定している点や真のモデルへの仮定が少ない点で上述の規準よりも優れている.モデルの自由度(説明変数の個数)を正確に求めたり,\epsilonの分散\sigma^{2}を推定するのが困難な場合は,上述の規準よりこちらの方が良い.

 ただし,バリデーションやクロスバリデーションは分割の仕方に依存するので,分割を変える度に選択されるモデルが変わる.これを解決する方法として,one-standard-error-ruleがある.まず,各モデルについてtest errorの推定量の標準誤差を求める.次に,誤差曲線が最小の値を示す点から標準誤差内に収まっているモデルのうち,最小のtest errorを示すモデルを選択する.

6.2 Shrinkage Methods

 係数を0に近づけて分散を小さくすると同時に,説明変数の数を減らし,フィットを改善する.

6.2.1 Ridge Regression

 3章では,実際の観測と線形モデルによる予測値との二乗の差RSSを最小化してパラメタ\beta_0,\ \beta_1,\ldots,\ \beta_pを求めた. \displaystyle
\begin{align}
RSS=\sum_{i=1}^{n} {\biggl(y_i-\beta_0-\sum_{j=1}^p\beta_jx_{ij} \biggr)}^{2}
\end{align}
リッジ回帰も線形回帰の最小二乗法によるフィッティングと似ている.リッジ回帰におけるパラメタの推定量\hat{\beta}^{R}は下式を最小化することで求める. \displaystyle
\begin{align}
\sum_{i=1}^{n} {\biggl(y_i-\beta_0-\sum_{j=1}^p\beta_jx_{ij} \biggr)}^{2} + \lambda \sum_{j=1}^{p} \beta_j^{2} = RSS + \lambda \sum_{j=1}^{p} \beta_j^{2} \label{Ridge}
\end{align}
ここで\lambda \geq 0は,フィッティングとは別に決定されるチューニングパラメタ.最小二乗法同様にリッジ回帰もRSSを小さくする方向でのフィットを試みるが,罰則項や正則化項と呼ばれる第2項\lambda \sum_{j=1}^{p} \beta_j^{2}\beta_0,\ \beta_1,\ldots,\ \beta_pが0に近いほど小さくなる.つまり,正則化項には\beta_jを0に近づける効果がある.\lambdaは回帰式全体における正則化項の影響力の大きさということになり,\lambda=0なら最小二乗法による学習と同じ結果を得る.逆に\lambdaを大きくするとパラメタを0に近づける方向でフィットさせる.我々が行いたいのは説明変数に対する係数を0に近づけるなので,上式を見てわかるように,正則化項は切片\beta_0には適用されない.\beta_0は単なるレスポンスの平均の指標に過ぎない.例えば,各説明変数の平均が0になるように調整されていたら\displaystyle \hat{\beta}_0=\overline{y}=\sum_{i=1}^{n} \frac{y_i}{n}になる.

 最小二乗法による線形回帰ではパラメタは一意に定まったが,リッジ回帰では\lambdaの値によってパラメタが変わる.つまり,本質的に重要なのは\lambdaの選択.あとでクロスバリデーションで\lambdaを選択する方法を示す.

An Application to the Credit Data

 最小二乗法では説明変数を定数倍してもX_j\hat{\beta}_jの値は変わらないが,リッジ回帰ではRSSに罰則項が加わっているため,スケールによってX_j\hat{\beta}_{j,\ \lambda}^{R}の値が変わる.このため,回帰する前に全ての説明変数を下式で標準化しておくべき. \displaystyle
\begin{align}
\tilde{x}_{ij}=\frac{x_{ij}}{\sqrt{\frac{1}{n}\sum_{i=1}^{n}{(x_{ij}-\overline{x}_j)}^{2}}}
\end{align}
上式で分母はj番目の説明変数の標準偏差の推定値を表している.

Why Does Ridge Regression Improve Over Least Squares?

 最小二乗法と比べた時,リッジ回帰の利点はバイアス・バリアンスのトレードオフにある.\lambdaを大きくするとリッジ回帰の表現力は減少し,その結果,分散が小さくなり,代わりにバイアスが大きくなる.\lambdaを0にすると,分散が大きくなり,代わりにバイアスが0になる.一般に,説明変数と目的変数が線形関係にある時,最小二乗法による線形回帰は分散が小さく,バイアスが大きい.特に,pnが同じ位の時はものすごくばらつく.また,p>nの時は最小二乗法では一意に定まらないが,リッジ回帰はほんの少しのバイアスを増加させることで分散を小さくできるのでうまくいく.そういうわけでリッジ回帰が最も効くのは最小二乗法の分散が大きい時.

6.2.2 The Lasso

 Ridgeの正則化項が\ell_2ノルムの2乗だったが,Lassoの正則化項は\ell_1ノルム. \displaystyle
\begin{align}
\sum_{i=1}^{n} {\biggl(y_i-\beta_0-\sum_{j=1}^p\beta_jx_{ij} \biggr)}^{2} + \lambda \sum_{j=1}^{p} \mid \beta_j \mid  = RSS + \lambda \sum_{j=1}^{p} \mid \beta_j \mid \label{Lasso}
\end{align}

 Ridgeは説明変数全体について係数を0に近づけるだけ,つまり,\lambdaの値を大きくしようと説明変数の個数は減らない.ゆえにモデルの解釈性に難あり.だが,Lassoなら\lambdaを調整することで係数を0に近づけることができる.Fig. 6.6にあるように\lambdaの値を大きくするとどんどんと説明変数に対応した係数が0になっていく.Lassoのように,ある説明変数の係数を0にすることで説明変数の個数を減らされたモデルはスパースモデルというらしい.

Another Formulation for Ridge Regression and the Lasso

 Ridge回帰(式\eqref{Ridge})とLasso(式\eqref{Lasso})は,それぞれ以下の形に書き直せる. \displaystyle
\begin{align}
\mbox{minimize}_{\beta} \biggl\{ \sum_{i=1}^{n} { \biggl(y_i-\beta_0-\sum_{j=1}^{p}\beta_j x_{ij}\biggr) }^{2} \biggr\} \ \ \mbox{   subject to }\sum_{j=1}^{p} \beta_j^{2} \leq s \label{ridgeAnother} \\
\mbox{minimize}_{\beta} \biggl\{ \sum_{i=1}^{n} { \biggl(y_i-\beta_0-\sum_{j=1}^{p}\beta_j x_{ij}\biggr) }^{2} \biggr\} \ \ \mbox{   subject to }\sum_{j=1}^{p}\mid \beta_j \mid \leq s \label{lassoAnother}
\end{align}
こう書き直すと,正則化項がs以下という制約の下で最小二乗法していることになる.sが大きければただの最小二乗法になるし,小さければ,Ridgeならあらゆる説明変数に対する係数が0に近づき,Lassoなら説明変数それぞれの係数が0に近づき,変数が減っていく.

 ここで,Best Subset Selectionの定式化は以下のようになる. \displaystyle
\begin{align}
\mbox{minimize}_{\beta} \biggl\{ \sum_{i=1}^{n} { \biggl(y_i-\beta_0-\sum_{j=1}^{p}\beta_j x_{ij}\biggr) }^{2} \biggr\} \ \ \mbox{   subject to }\sum_{j=1}^{p} I(\beta_j \neq 0) \leq s \label{BSS}
\end{align}
ここでIは,\beta_i \neq 0の時に1,そうでない時に0を取る指示関数(Indicator Variable).式\eqref{BSS}は式\eqref{ridgeAnother},\ \eqref{lassoAnother}とよく似てる.もちろん,\ell_1ノルムのLassoのほうがBest Subset Selectionに近い.

The Variable Selection Property of the Lasso

 \ell_1ノルムの描く軌跡は正方形を45度回転させた形,\ell_2ノルムの描く軌跡は円.この正則化項の領域と,RSSの描く等高線との接点が,最小化によって求まるパラメタ.そう考えると,\ell_2ノルムより\ell_1ノルムのほうが接点は軸に近くなるので,変数選択の効果があるねという話.

Comparing the Lasso and Ridge Regression

 LassoはRidgeと比べて変数選択によるモデルの解釈のしやすさという利点がある.が,予測性能はどうだろうか?そんなものは問題設定による.レスポンスにあまり貢献しない説明変数が多ければLassoの方が良いし,そうでないならRidgeの方が良い.

A Simple Special Case for Ridge Regression and the Lasso

 RidgeとLassoのパラメタの動きの違いを理解するためにn=p,入力を単位行列とした場合,パラメタはそれぞれ以下の通り. \displaystyle
\begin{align}
\hat{\beta}_j^{R}=\frac{y_j}{1+\lambda}
\end{align}
\displaystyle
\begin{align}
\hat{\beta}_j^{L}=
\begin{cases}
y_j-\frac{\lambda}{2}\ \ \ \ \ \ \mbox{if } y_j > \lambda\ /\ 2 \\
y_j+\frac{\lambda}{2}\ \ \ \ \ \ \mbox{if } y_j \lt \lambda\ /\ 2 \\
0\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \mbox{if } \mid y_j \mid \leq \lambda\ /\ 2
\end{cases}
\end{align}
Ridgeは同じ比率で係数を潰していくのに対し,Lassoは\mid y_j \mid\lambda\ /\ 2以下の場合0にする.グラフにすると一目瞭然なのでFig. 6.10を見てもらいたい.簡単のために単位行列を用いたが,一般の入力データについても,係数の潰れ方は同じような感覚でいいみたい.

Bayesian Interpretation for Ridge Regression and the Lasso

 ベイジアン的な視点からRidgeとLassoを見る.パラメタ\betaは,gを何かしらの密度関数として,事前分布\displaystyle p(\beta)=\prod_{j=1}^{p}g(\beta_j)を持っていることを仮定する.そうすると,観測が与えられた時のパラメタの事後分布は,尤度をf(Y \mid X, \beta)とすると, \displaystyle
\begin{align}
p(\beta \mid X,Y) \propto f(Y \mid X, \beta)p(\beta \mid X)=f(Y \mid X, \beta)p(\beta)
\end{align}
と書ける.前半はベイズの定理による変形.後半の等式は,観測が与えられている前提なので,Xは固定されているため変形できている.

 そうすると,Ridgeによって得られる解は,gが平均0,標準偏差\lambdaの関数の正規分布だった場合,\betaは事後確率の平均値(事後モード?と言うらしい?)になる.

 また,Lassoによって得られる解は,gが平均0でパラメタ\lambdaを持つラプラス分布の場合,\betaも事後確率の平均に相当するらしい.が,実際には,Lasso解は事後確率の平均ではない.というのも事後確率の平均はスパースベクトルじゃないので.

 Fig. 6.11を見ると,Lassoは0の周りで尖ってるので,多くの説明変数は0だと仮定していることになる.逆にRidgeは係数が0の周りでランダムに散らばってると仮定している.

6.2.3 Selecting the Tuning Parameter

 クロスバリデーションしてcross-validation errorが最小となる\lambdaを選ぶだけ.

6.3 Dimension Reduction Methods

 Ridge, Lassoはp個の説明変数で予測してたけど,説明変数をM\ (M \lt p)個に減らしてから予測したい.とりあえず,以下のようなZ_1,\ Z_2,\ldots,\ Z_Mを考える. \displaystyle
\begin{align}
Z_m=\sum_{j=1}^{p}\phi_{jm}X_j \label{reduction}
\end{align}
ここで\phi_{1m},\ \phi_{2m},\ldots,\ \phi_{pm},\ m=1,\ldots,\ Mは何かの定数とする.これらを使って最小二乗法でフィッティングしたい. \displaystyle
\begin{align}
y_i=\theta_0+\sum_{m=1}^{M}\theta_mz_{im}+\epsilon_i,\ \ \ i=1,\ldots,n
\end{align}
ちなみに,変数の個数減らしてもやってる事自体は,\beta_j=\sum_{m=1}^{M}\theta_m\phi_{jm}とすると,同じであることが以下の式変形でわかる. \displaystyle
\begin{align}
\sum_{m=1}^{M}\theta_mz_{im}=\sum_{m=1}^{M}\theta_m\sum_{j=1}^{p}\phi_{jm}X_{ij}=\sum_{j=1}^{p}\sum_{m=1}^{M}\theta_m\phi_{jm}x_{ij}=\sum_{j=1}^{p}\beta_jx_{ij}
\end{align}
p個の説明変数で最小二乗法するより,M個の説明変数で最小二乗法したほうがいい結果が出るかもしれない.なぜかというと,例えばp \gg nの時,説明変数をM(M \lt p)個にすることで推定されたパラメタの分散が小さくなることが期待できる.

 というわけで,\phi_{1m},\ \phi_{2m},\ldots,\ \phi_{pm}をどうやって決めるかという話になる.

6.3.1 Principal Components Regression

An Overview of Principal Components Analysis

 説明変数を主成分分析(Principal Component Analysis, PCA)で次元縮小してから回帰.PCA自体はChapter 10で詳しく話す.  PCAは,まず,データのばらつきが最大になるように(第一主成分に射影した時の分散が最大になるように)第一主成分を決める.別の見方をすると,第一主成分は元のデータをできるだけ再現するように決まる.元のデータを第一主成分に射影した時の距離を最小にする.そういう意味で,なるべく元のデータを保存できるように第一主成分が決定される.第一成分が決まったら,第二成分は第一成分と相関がないという条件の下で分散が最大になるように決定される.第三成分以降も,既存の軸と相関を持たないようにしつつ,分散最大になるように決定される.

The Principal Components Regression Approach

 PCRは単にp個より少ないM個の変数で回帰してるだけなので,変数選択ではない.本書の例ではAdとpopulationが混ざったような形になってる.

 PCAは分散が最大になるように軸を決めるので,適用する前にスケールの標準化を行わなければならない.そうしないと分散が以上に大きい説明変数の影響を強く受けてしまう.

6.3.2 Partial Least Squares

 PCAで分散最大の軸を探す仮定でレスポンスYは使ってない.つまり,これって一種の教師なし学習だよね.だからこそ,PCAには「分散最大の軸を見つけ,それに従って軸を回転させるけど,それが予測する上で最適な軸とは限らない」という問題がある.

 そこでPLSを考える.PLSは,大雑把にまとめると,データの表現をできるだけ保つ軸を探しつつYとの関連性も見る教師あり学習.実際には,まず標準化する.その後,式\eqref{reduction}\phi_{jm}XY相関係数に比例するようにする.そうすると,Yに最も関連するXに一番重い重みが与えられることになる.これでZ_1が求まる.次に,それぞれの変数でZ_1を回帰して残差を取り,各変数をZ_1について補正する.この残差はZ_1で表現しきれなかった情報として解釈できる.その上で先程と同様にZ_2の最小化を行い,また同様に補正をかけて…という具合に繰り返していく.

 パラメタ選択はクロスバリデーション.

 ただし,実用上はPCAやRidgeより性能がでないらしい.理由は,PLSはバイアスは減るが,代わりに分散が大きくなりやすいから.

6.4 Considerations in High Dimensions

6.4.1 High-Dimensional Data

 p>nもしくはpnがほぼ同じ時,教師あり学習する時に気をつけること.

6.4.2 What Goes Wrong in High Dimensions

 最小二乗法はn\gg pじゃないとダメ.理由は,説明変数とレスポンスの数がほぼ同じだったりすると,残差0でフィット,つまり過学習してしまうから.別の言い方をすると,p>nもしくはpnがほぼ同じ時,最小二乗法は表現力が高すぎる.  また,教師あり学習ではR^{2}とTraining MSEだけで判断してはいけない.R^{2}は変数の数を増やせば増える(つまり, npを近くする)し,そうすろと過学習になるのでTraining MSEはどんどん減っていく.そうならないために変数選択としてC_p, AIC, BICを扱ったが,高次元(n\gg pではない)の時は\hat{\sigma}^{2}=0のため,それらは有効ではない.同様の理由でAdjusted R{2}も簡単に1になるのでダメ.何か別の方法がいる.

6.4.3 Regression in High Dimensions

 forward stepwise selection, Ridge, Lasso, PCAは,最小二乗法よりも表現力の低い手法なので,結果的に過学習を回避することができ,高次元の問題設定では有効.  大事なポイントは,(1) regularization/shrinkageが高次元の問題設定では重要,(2) パラメタチューニング大事,(3) 出力と関係ない変数を突っ込むと精度はどんどん悪化していく(次元の呪い),の3点.

6.4.4 Interpreting Results in High Dimensions

 高次元の問題に対してLassoやRidgeを使うのはいいけど,それで全てが解決するわけではない.高次元だと共線性が発生しやすいという問題がある.  また,変数選択とかでいくつか変数を減らしたモデルを得ることができたとしても,それは単に考え得る無数のモデルから1つを獲得しただけということは念頭に置いておく必要がある.  さらに,高次元(p>n)の時はSSE (Sum of Squared Errors), p値,R^{2}などの統計量を用いてモデルを評価してはいけない.例えばR^{2}=1になったりしやすいので.そういう場合は独立にテストデータを用意するかクロスバリデーションを行う.もちろんその中でのテストデータに対して統計量を用いるのは良いが,訓練データについて算出した統計量は有効ではない.