Study Log

とある大学院生の勉強記録。

『Rによる統計的学習入門』第5章 勉強メモ

『Rによる統計的学習入門』の第5章 勉強メモを載せます。

http://www-bcf.usc.edu/~gareth/ISL/ISLR%20Seventh%20Printing.pdf

上記から英語版が無料でダウンロード可能。併用がオススメ。

 

以降、本の説明が難しい点、輪読会でディスカッションのポイントとなった点について触れます。

 

 

5.リサンプリング法

5章全体としては、交差検証(ホールドアウト検証、1つ抜き交差検証、k分割交差検証)と、ブートストラップという2つのリサンプリング法が述べられています。

この本でこれまで勉強してきて、最も分かりやすい章でした笑。

 

 

5.1 交差検証 

そもそも交差検証がどういう時に使われるのか書かれています。

テストデータが手に入らない時に、訓練データを使って行うものだそうです。

 

本章から急に「検証データ」という表現が出てきてテストデータと何が違うのか色々調べたのですが、役割的にはこれまでのテストデータと同じで、訓練の精度を評価するものようです。

 

じゃあ何が違うのかと言うと、おそらく

・検証データ…リサンプリングの回によっては訓練データにも使われる

・テストデータ…訓練にも検証にも使われない

という点ではないかと思います。どういう事かは後述します。

 

調べる過程でネットで色々検索しましたが、検証データとテストデータが区別されておらず、テストデータに統一されている記事が多かったです。

 

 

5.1.1 ホールドアウト検証 

本書の説明を見れば 概要は理解できるのでイチから説明はしません。追記だけ。

 

本書ではホールドアウト検証は「観測データをランダムに訓練データと検証データに分割する」とだけありますが、どうやら2分割というのが暗黙の了解のようです。

 

これまでも観測データを訓練データとテストデータに分けていたと思いますが、何が違うかと言うと、先程も書いた

・検証データ…リサンプリングの回によっては訓練データにも使われる

・テストデータ…訓練にも検証にも使われない

という部分です。例えばホールドアウト検証を10回行う時、ある観測データが、1回目の検証では訓練データになったとしても、2回目の検証では検証データになるといった事が起こります。

これまでの章で出てきた考え方では、ある観測データの役割は、訓練データかテストデータのどちらかでした。本章は「リサンプリング法」とある通り、観測データを何度も再利用するので、その度に役割が変わる事があるわけです。

 

 

5.1.2 1つ抜き交差検証 

特に追記はありません。

 

 

5.1.3 k分割交差検証 

やや気になったのはp171の記述で、「図5.6によると、交差検証は真のテストMSEよりも低く見積もることはあるものの、交差検証によるMSE曲線を最小にする点はどれも正しい柔軟さのレベル、つまり真のテストMSEを最小にする点に近い」とあります。

柔軟さのレベル(つまりx軸方向の距離)においては近いと言えそうですが、左(図2.9)においてはMSE自体に開きがあります。真のテストMSEより推定したMSEがかなり小さいのを無視して、最小になる時の柔軟さのレベルは近い、と結論付けて良いのでしょうか…。

 

 

5.1.4 k分割交差検証におけるバイアスと分散のトレードオフ

2章でも出てきた話題ですが、改めてバイアスと分散について調べた所、以下の記事が非常に分かりやすかったので紹介させて頂きます。

pekochin.com

この記事では射撃を例に例えており、

・的の中心…真の値

・撃ち抜いた点…予測値

 として、

・バイアス…的の中心からの距離

・分散…撃ち抜いた点の散らばり具合

と表現していました(イメージで頭に入ってくるので、感動!)。

 

ちなみに余談ですが、このバイアスと分散の関係は、心理学の尺度の話題で必ず出てくる妥当性と信頼性の関係と同様です。

・妥当性(≒バイアス)…測定したい概念をどのくらい的確に測定できているか

 例) 体重が計れず、視力が測定される体重計は、体重計としての妥当性が無い

・信頼性(≒分散)…同じ条件で同じ検査を受けたとして、どのくらい結果が一貫しているか

 例) 乗る度に表示される体重がコロコロ変わる体重計は信頼性が無い

 

さて、バイアスと分散のトレードオフの関係性は以下のようなイメージです。 

    f:id:intrinsic_motivation:20190707003153p:plain

 例えば100個データがあるとして、訓練データ数は以下のようになります。

・ホールドアウト検証…100/2=50個

・LOOCV…100-1=99個

・k分割交差検証(k=5)…(5-1)100/5=80個

一般には、訓練データを多く使うほど訓練が進むので、訓練MSE、バイアスは小さくなります。一方で過学習に近づくので、テストMSE、分散が大きくなる傾向があります。

 

ところで、p172に書かれている「相関関係の強い数値の平均は相関関係の弱い数値の平均よりも分散が大きいので〜」という記述の意味が分かりませんでした。

相関が強い方が、分散は小さくなるのではないでしょうか…。

 

 

5.1.5 分類における交差検証 

特に追記はありません。

分類問題の場合はモデル選びに交差検証を使い、テスト誤分類率を見るのね、という事だけ。

 

 

5.2 ブートストラップ

本書でははっきりした定義が書かれていませんが、ざっくり言うと、手元のデータから重複を許してリサンプリングを繰り返し、モデルの評価を行う手法のようです。

あとは書かれている通りです。

 

以上

 

一部、バイアスと分散のトレードオフの所で出てきた相関の話がもやっとしていますので、理解できたら追記するかもです。