「内積が見えると統計学も見える」第5回 プログラマのための数学勉強会...

96
線形代数が見えると 統計学も見える 内積 2015/11/21 第5回 プログラマのための数学勉強会 発表資料 Ken’ichi Matsui (@kenmatsu4)

Transcript of 「内積が見えると統計学も見える」第5回 プログラマのための数学勉強会...

Page 1: 「内積が見えると統計学も見える」第5回 プログラマのための数学勉強会 発表資料

線形代数が見えると 統計学も見える内積

2015/11/21 第5回 プログラマのための数学勉強会 発表資料

Ken’ichi Matsui (@kenmatsu4)

Page 2: 「内積が見えると統計学も見える」第5回 プログラマのための数学勉強会 発表資料

自己紹介: @kenmatsu4・Facebookページ   https://www.facebook.com/matsukenbook ・Twitterアカウント   @kenmatsu4 ・Qiitaでブログを書いています(統計、機械学習、Python等)    http://qiita.com/kenmatsu4    (4100 contributionを超えました!)

・趣味    - バンドでベースを弾いたりしています。    - 主に東南アジアへバックパック旅行に行ったりします    (カンボジア、ミャンマー、バングラデシュ、新疆ウイグル自治区 etc) 旅行の写真 : http://matsu-ken.jimdo.com

Twitterアイコン

Page 3: 「内積が見えると統計学も見える」第5回 プログラマのための数学勉強会 発表資料

Pythonタグで1位に なりました!(>∀<人)

Page 4: 「内積が見えると統計学も見える」第5回 プログラマのための数学勉強会 発表資料
Page 5: 「内積が見えると統計学も見える」第5回 プログラマのための数学勉強会 発表資料

今日のアジェンダ・内積をグラフィカルに理解する ・分散と標準偏差の話 ・相関係数の話 ・回帰分析の話 ・主成分分析の話 (ここまで行けないかも・・・)

Page 6: 「内積が見えると統計学も見える」第5回 プログラマのための数学勉強会 発表資料

本発表の内容は個人の見解であり、所属する組織・団体の公式見解ではありません。

Page 7: 「内積が見えると統計学も見える」第5回 プログラマのための数学勉強会 発表資料

また、本発表では理解のしやすさを 優先し、一部厳密な説明となって いない部分がありますが、 ご了承ください。

Page 8: 「内積が見えると統計学も見える」第5回 プログラマのための数学勉強会 発表資料

MASAKARI Come On! щ(゜ロ゜щ)みんなで勉強しましょう

https://twitter.com/_inundata/status/616658949761302528

Page 9: 「内積が見えると統計学も見える」第5回 プログラマのための数学勉強会 発表資料

まずは、内積の話から。

Page 10: 「内積が見えると統計学も見える」第5回 プログラマのための数学勉強会 発表資料

とすると、内積とは

ベクトル を n次元ベクトル

定義 1

a = (a1, a2, · · · , an)T,b = (b1, b2, · · · , bn)T

a,b

a · b = a1b1 + · · ·+ anbn =nX

i=1

aibi

a

b

Page 11: 「内積が見えると統計学も見える」第5回 プログラマのための数学勉強会 発表資料

とすると、内積とは

ベクトル を n次元ベクトル

定義 1

a = (a1, a2, · · · , an)T,b = (b1, b2, · · · , bn)T

a,b

a · b = a1b1 + · · ·+ anbn =nX

i=1

aibin n

1 1

a

b

ベクトルからスカラに変換する 何らかの掛け算的な操作であることは わかるが、それ以上よくわからない

Page 12: 「内積が見えると統計学も見える」第5回 プログラマのための数学勉強会 発表資料

ベクトルa = (a1, a2, · · · , an)T,

の長さ(ノルム)は、

のように、自身との内積のルートとして 表せます

a

kak2

kak =pa1 · a1 + · · ·+ an · an

=

vuutnX

i=1

a2i =pa · a

Page 13: 「内積が見えると統計学も見える」第5回 プログラマのための数学勉強会 発表資料

ここで余弦定理を思い出します。kb� ak2 = kak2 + kbk2 � 2kakkbk cos ✓

Page 14: 「内積が見えると統計学も見える」第5回 プログラマのための数学勉強会 発表資料

ここで余弦定理を思い出します。kb� ak2 = kak2 + kbk2 � 2kakkbk cos ✓

kb� ak2 = (b� a) · (b� a) = a · a+ b · b� 2a · b= kak2 + kbk2 � 2a · b

左辺を展開すると・・・

Page 15: 「内積が見えると統計学も見える」第5回 プログラマのための数学勉強会 発表資料

ここで余弦定理を思い出します。kb� ak2 = kak2 + kbk2 � 2kakkbk cos ✓

kb� ak2 = (b� a) · (b� a) = a · a+ b · b� 2a · b= kak2 + kbk2 � 2a · b

左辺を展開すると・・・ 同じなので、

Page 16: 「内積が見えると統計学も見える」第5回 プログラマのための数学勉強会 発表資料

ここで余弦定理を思い出します。kb� ak2 = kak2 + kbk2 � 2kakkbk cos ✓

kb� ak2 = (b� a) · (b� a) = a · a+ b · b� 2a · b= kak2 + kbk2 � 2a · b

左辺を展開すると・・・

消去可能!

�2a · b = �2kakkbk cos ✓

) a · b = kakkbk cos ✓

Page 17: 「内積が見えると統計学も見える」第5回 プログラマのための数学勉強会 発表資料

ここで余弦定理を思い出します。kb� ak2 = kak2 + kbk2 � 2kakkbk cos ✓

kb� ak2 = (b� a) · (b� a) = a · a+ b · b� 2a · b= kak2 + kbk2 � 2a · b

左辺を展開すると・・・

�2a · b = �2kakkbk cos ✓

) a · b = kakkbk cos ✓a · b = kakkbk cos ✓

Page 18: 「内積が見えると統計学も見える」第5回 プログラマのための数学勉強会 発表資料

a · b = kakkbk cos ✓定義2

よって、もう一つの内積の定義、

と同値であることがわかりました。

Page 19: 「内積が見えると統計学も見える」第5回 プログラマのための数学勉強会 発表資料

ここで角度 θ とは

これですね。

Page 20: 「内積が見えると統計学も見える」第5回 プログラマのための数学勉強会 発表資料

a · b = kakkbk cos ✓

をもうちょっと見える形で考えます。

Page 21: 「内積が見えると統計学も見える」第5回 プログラマのための数学勉強会 発表資料

cos ✓ =

kckkrkcosθの定義は です。

Page 22: 「内積が見えると統計学も見える」第5回 プログラマのための数学勉強会 発表資料

) krk cos ✓ = kck

cos ✓ =

kckkrk

と、変形できるので、  ||c||は半径の長さにcosθをかけたもの と理解できます。

Page 23: 「内積が見えると統計学も見える」第5回 プログラマのための数学勉強会 発表資料

以上から、ベクトルcは、x軸に垂直方向に上からライトを当てた時の半径ベクトル rの影になる 部分と解釈ができます。

これを「射影」 と言ったりします。

この時、射影の長さ は

です。) krk cos ✓ = kck

Page 24: 「内積が見えると統計学も見える」第5回 プログラマのための数学勉強会 発表資料

a · b = kakkbk cos ✓

以上の議論をふまえて、内積を理解する

ベクトル の長さc

ベクトル の長さa

a

b

θ

c= kbk cos ✓

Page 25: 「内積が見えると統計学も見える」第5回 プログラマのための数学勉強会 発表資料

a

b

θ

c= kbk cos ✓

以上の議論をふまえて、内積を理解する

a · b = kakkbk cos ✓

ベクトル の長さc

ベクトル の長さ

つまり、同じ方向を向く成分にあわせてあげて、 その方向の長さを 掛け算したもの!

a

Page 26: 「内積が見えると統計学も見える」第5回 プログラマのための数学勉強会 発表資料

a

b

θ

c= kbk cos ✓

この絵の場合、aの方向にあわせている

以上の議論をふまえて、内積を理解する

a · b = kakkbk cos ✓

ベクトル の長さc

ベクトル の長さa

つまり、同じ方向を向く成分にあわせてあげて、 その方向の長さを 掛け算したもの!

Page 27: 「内積が見えると統計学も見える」第5回 プログラマのための数学勉強会 発表資料

なので、角度が垂直だと、射影した の長さ が0になってしまうので、内積も 0 になる。

c

 逆も然り。  内積が0だと垂直と言える。

Page 28: 「内積が見えると統計学も見える」第5回 プログラマのための数学勉強会 発表資料

2つのベクトル , の    長さが1だった場合

a b

Page 29: 「内積が見えると統計学も見える」第5回 プログラマのための数学勉強会 発表資料

a · b = kakkbk cos ✓ = cos ✓= 1 = 1

Page 30: 「内積が見えると統計学も見える」第5回 プログラマのための数学勉強会 発表資料

a · b = kakkbk cos ✓ = cos ✓= 1 = 1

内積はcosθ となる。

Page 31: 「内積が見えると統計学も見える」第5回 プログラマのための数学勉強会 発表資料

この節のまとめ

Page 32: 「内積が見えると統計学も見える」第5回 プログラマのための数学勉強会 発表資料

この節のまとめ

a · b = a1b1 + · · ·+ anbn =nX

i=1

aibi

a · b = kakkbk cos ✓

a

b

θ

c = kbk cos ✓

内積には2つの定義があり、

射影される側のベクトルの長さが1の時は、内積は cosθである。

計算するならこちら

意味がわかるのはこちら

Page 33: 「内積が見えると統計学も見える」第5回 プログラマのための数学勉強会 発表資料

ここで次に統計学の話を

Page 34: 「内積が見えると統計学も見える」第5回 プログラマのための数学勉強会 発表資料

carsデータセット→ 車が走る速度と、ブレーキを踏んだ時に止まる ことができるまでの距離のデータ(ちょっと古いです)

ヒストグラム 散布図

Page 35: 「内積が見えると統計学も見える」第5回 プログラマのための数学勉強会 発表資料

分散、標準偏差とは?散らばり:小 分散  :小

散らばり:大 分散  :大

分散とは、データの散らばりの指標。

上のグラフは散らばりが少なく、 下のグラフは散らばりが大きい。

xは大体20~40の範囲

xは大体5~55の範囲

これを、数値的な 指標で表す。

Page 36: 「内積が見えると統計学も見える」第5回 プログラマのための数学勉強会 発表資料

carsデータセット (speedデータ)

= x =1

n

nX

i=1

xi平均

= s

2 =1

n

nX

i=1

(xi � x)2分散

標準偏差 = s =

vuut 1

n

nX

i=1

(xi � x)2

偏差

Page 37: 「内積が見えると統計学も見える」第5回 プログラマのための数学勉強会 発表資料

標準偏差 = s =

vuut 1

n

nX

i=1

(xi � x)2

carsデータセット (speedデータ)

= x =1

n

nX

i=1

xi平均

= s

2 =1

n

nX

i=1

(xi � x)2分散 各データ平均からの差をそれぞれ2乗して和をとったもの。散らばり具合の指標

偏差

Page 38: 「内積が見えると統計学も見える」第5回 プログラマのための数学勉強会 発表資料

分散・標準偏差の視覚的イメージ

2

= s

2 =1

n

nX

i=1

(xi � x)2

偏差は、単純に足してしまうと、釣り合っているので0になる

→ 偏差2乗しているオレンジの正方形の面積を平均したもの。下記では中心をずらしているが、最小となるのが平均( )の位置

x

2乗する

https://goo.gl/6DROOAアニメーション:

Page 39: 「内積が見えると統計学も見える」第5回 プログラマのための数学勉強会 発表資料

分散・標準偏差の視覚的イメージ分散のままだと、単位が面積になので元のデータの単位と合わない。なので、ルートをとって元の単位に戻したものが標準偏差。

= s =

vuut 1

n

nX

i=1

(xi � x)2

Page 40: 「内積が見えると統計学も見える」第5回 プログラマのための数学勉強会 発表資料

分散・標準偏差のもう一つのイメージ

x = (x1, · · · , xn)

x

0 = (x1 � x, · · · , xn � x)

データをn次元ベクトル として見てみる。x

平均 からの偏差のベクトルをx

とすると、その時、 の長さ はx

0 kx0k

kx0k =

vuutnX

i=1

(xi � x)2

で、表される。

Page 41: 「内積が見えると統計学も見える」第5回 プログラマのための数学勉強会 発表資料

分散・標準偏差のもう一つのイメージよって

= s =

vuut 1

n

nX

i=1

(xi � x)2

=

r1

n

vuutnX

i=1

(xi � x)2 =

r1

n

kx0k

となり、標準偏差はベクトル の長さの一種と考えられる。

x

0

kx0k =

vuutnX

i=1

(xi � x)2

x’kx

0 k

Page 42: 「内積が見えると統計学も見える」第5回 プログラマのための数学勉強会 発表資料

ちなみに、Ex: 偏差値

名前  数学  偏差 標準偏差 何個分? ← × 10倍 ← + 50

田中 96 15 1.27 12.74 62.74高橋 63 -18 -1.53 -15.29 34.71鈴木 85 4 0.34 3.40 53.40渡辺 66 -15 -1.27 -12.74 37.26清水 91 10 0.85 8.50 58.50木村 89 8 0.68 6.80 56.80山本 77 -4 -0.34 -3.40 46.60

平均 81.00 標準偏差 11.77

これが「偏差値」

Page 43: 「内積が見えると統計学も見える」第5回 プログラマのための数学勉強会 発表資料

この節のまとめ

Page 44: 「内積が見えると統計学も見える」第5回 プログラマのための数学勉強会 発表資料

この節のまとめデータをn次元上の1本のベクトル として見てみる。 また、平均からの偏差ベクトルを下記のように定義した

x

s =

r1

n

vuutnX

i=1

(xi � x)2 =

r1

n

kx0k

x

0 = (x1 � x, · · · , xn � x)

このようにすると標準偏差は、

のようにベクトルの長さの一種と捉えることができる。

Page 45: 「内積が見えると統計学も見える」第5回 プログラマのための数学勉強会 発表資料

相関係数について

Page 46: 「内積が見えると統計学も見える」第5回 プログラマのための数学勉強会 発表資料

相関係数Xの値が増加すると、Yの値も増加する → 正の相関があるXの値が増加すると、Yの値が減少する → 負の相関がある ⇒ これを数値化したものに「相関係数」がある。

r =

P(xi � x)(yi � y)pP

(xi � x)2pP

(yi � y)2相関係数 =

Page 47: 「内積が見えると統計学も見える」第5回 プログラマのための数学勉強会 発表資料

相関係数

Page 48: 「内積が見えると統計学も見える」第5回 プログラマのための数学勉強会 発表資料

相関係数: 1 は 完全に横軸と縦軸が

依存関係にあり、一方が増えると もう一方も増えている。

相関係数

Page 49: 「内積が見えると統計学も見える」第5回 プログラマのための数学勉強会 発表資料

相関係数: -1 は やはり、完全に横軸と縦軸が 依存関係にあり、一方が増えると

もう一方が減っている。

相関係数

Page 50: 「内積が見えると統計学も見える」第5回 プログラマのための数学勉強会 発表資料

相関係数: 0 は 横軸と縦軸が全くなく 一方が増えてももう一方は

それとは関係なく値が決まる。

相関係数

Page 51: 「内積が見えると統計学も見える」第5回 プログラマのための数学勉強会 発表資料

相関係数

r =

P(xi � x)(yi � y)pP

(xi � x)2pP

(yi � y)2相関係数 =

式をよく見てみると、

=x

0 · y0

kx0kky0k あれ、これって?

Page 52: 「内積が見えると統計学も見える」第5回 プログラマのための数学勉強会 発表資料

相関係数

r =

P(xi � x)(yi � y)pP

(xi � x)2pP

(yi � y)2相関係数 =

式をよく見てみると、

=x

0 · y0

kx0kky0k

= cos ✓ 内積の定義からcosθだ!

あれ、これって?

θx’

y’

データ数nのとき、n次元の 高次元空間の2本のベクトル と見なす(平均を引いて中心を揃えてあることに注意)

Page 53: 「内積が見えると統計学も見える」第5回 プログラマのための数学勉強会 発表資料

相関係数よって、データ数n次元空間上の2本のベクトルの間の 角度であると考えられる!

https://goo.gl/bXgHncアニメーション:

=x

0 · y0

kx0kky0k = cos ✓

Page 54: 「内積が見えると統計学も見える」第5回 プログラマのための数学勉強会 発表資料

この節のまとめ

Page 55: 「内積が見えると統計学も見える」第5回 プログラマのための数学勉強会 発表資料

この節のまとめ

r =

P(xi � x)(yi � y)pP

(xi � x)2pP

(yi � y)2相関係数 =

=x

0 · y0

kx0kky0k = cos ✓

2つのデータ間の相関関係を表す「相関係数」は データをベクトルとして捉えると、n次元空間上の 2本のベクトルの間の角度と捉えることができた。

θx’

y’

Page 56: 「内積が見えると統計学も見える」第5回 プログラマのための数学勉強会 発表資料

回帰分析について

Page 57: 「内積が見えると統計学も見える」第5回 プログラマのための数学勉強会 発表資料

回帰分析 (単回帰分析) : carデータセット→ スピードと距離の間に直線的な関係がありそうに   みえる。

距離 = + × スピード↵ �

Page 58: 「内積が見えると統計学も見える」第5回 プログラマのための数学勉強会 発表資料

→ スピードと距離の間に直線的な関係がありそうに   みえる。

回帰分析

一番良い線を選ぶ基準として点と線の間の長さを全部足し合わせたものを最小することを考える。

残差

yi = ↵+ �xi + ei これを i について和をとる

Page 59: 「内積が見えると統計学も見える」第5回 プログラマのための数学勉強会 発表資料

回帰分析

yi = ↵+ �xi + ei

ei = yi � (↵+ �xi)→

minS(↵,�) = minnX

i=1

e

2i = min

nX

i=1

{yi � (↵+ �xi)}2

よって、下記の最小化問題となる。(最小二乗法)

↵+ �xi

yiei

Page 60: 「内積が見えると統計学も見える」第5回 プログラマのための数学勉強会 発表資料

回帰分析→ 黒い線(残差)が最小になるようにα、βを調整する

αを変えてみる βを変えてみる

https://goo.gl/BDtIU0 https://goo.gl/jmrk07アニメーション:アニメーション:

Page 61: 「内積が見えると統計学も見える」第5回 プログラマのための数学勉強会 発表資料

回帰分析

@S(↵,�)

@↵= 0

@S(↵,�)

@�= 0

を解くことで、Sが最小となる αとβを求められる。

Page 62: 「内積が見えると統計学も見える」第5回 プログラマのための数学勉強会 発表資料

回帰分析

前ページの計算を解くと、

↵ = y � �x

となる。

� =

P(xi � x)(yi � y)P

(xi � x)2

Page 63: 「内積が見えると統計学も見える」第5回 プログラマのための数学勉強会 発表資料

を深掘りしてみる�

Page 64: 「内積が見えると統計学も見える」第5回 プログラマのための数学勉強会 発表資料

回帰分析前述のように、偏差をプライムで表すと、

� =

P(xi � x)(yi � y)P

(xi � x)2

=x

0 · y0

kx0k2内積と、ベクトルの長さで 表現できる!

Page 65: 「内積が見えると統計学も見える」第5回 プログラマのための数学勉強会 発表資料

回帰分析

� =x

0 · y0

kx0k2 =x

0

kx0k2 · y0

この2つのベクトルの内積と 考えられる。

x’

y’

θ= x

0/kx0k

=1

kx0kx

0

kx0k · y0

長さ 1

はベクトルx’をかけると射影と同じ長さのベクトル

ˆ�x = ky0k cos ✓/kx0k x

=

ky0kkx0k cos ✓

スカラ ベクトル

Page 66: 「内積が見えると統計学も見える」第5回 プログラマのための数学勉強会 発表資料

この節のまとめ

Page 67: 「内積が見えると統計学も見える」第5回 プログラマのための数学勉強会 発表資料

この節のまとめ2つのデータの間に線形関係を当てはめてみる分析手法

yi = ↵+ �xi + ei

上記のモデルに対して、残差eiを最小にするα、βを 最小二乗法で求めた。

Page 68: 「内積が見えると統計学も見える」第5回 プログラマのための数学勉強会 発表資料

傾きに相当する はベクトル x’に掛けあわせると ベクトル y’ の射影の長さと同じベクトルになる、と 捉えることができた。

この節のまとめ

x’

y’

θ= x

0/kx0k

ˆ�x = ky0k cos ✓/kx0k x

スカラ ベクトル

Page 69: 「内積が見えると統計学も見える」第5回 プログラマのための数学勉強会 発表資料

主成分分析について

Page 70: 「内積が見えると統計学も見える」第5回 プログラマのための数学勉強会 発表資料

例:Iris(アヤメ)データセット→ データ分析界のHello World的なデータです

ID sepal_length sepal_width petal_length petal_width target

0 5.1 3.5 1.4 0.2 0

1 4.9 3.0 1.4 0.2 0

2 4.7 3.2 1.3 0.2 0

3 4.6 3.1 1.5 0.2 0

4 5.0 3.6 1.4 0.2 0

5 5.4 3.9 1.7 0.4 0

6 4.6 3.4 1.4 0.3 0

7 5.0 3.4 1.5 0.2 0

8 4.4 2.9 1.4 0.2 0

9 4.9 3.1 1.5 0.1 0

http://blog.kaggle.com/2015/04/22/scikit-learn-video-3-machine-learning-first-steps-with-the-iris-dataset/

 アヤメの種別 0: setosa, 1: versicolor, 2: virginica

花弁

萼片

Page 71: 「内積が見えると統計学も見える」第5回 プログラマのための数学勉強会 発表資料

散布図を描くには、2次元にしなくてはならない。

右図は、各列の組み合わせごとに、 散布図を書いた例

例:Iris(アヤメ)データセット

Page 72: 「内積が見えると統計学も見える」第5回 プログラマのための数学勉強会 発表資料

sepal_length

sepal_width

petal_length

petal_width

z1

z2

4つの特徴から、 なるべく情報を 損なわないように 2つに減らした。

z2

z1

「主成分分析」という

explained: 0.9776

例:Iris(アヤメ)データセット情報の約98%がキープできている

Page 73: 「内積が見えると統計学も見える」第5回 プログラマのための数学勉強会 発表資料

3次元から2次元に落とした時のイメージ 4次元は 、もう想像できない世界だが、これと同様なことを行って、4次元から2次元に落としたのが前ページの例

次元を落とす

面より上の点が黒 面より下の点がグレー

データ点 xi

平面に垂直に落とす

Page 74: 「内積が見えると統計学も見える」第5回 プログラマのための数学勉強会 発表資料

sepal_length

sepal_width

petal_length

petal_width

z1

z2

4つの特徴から、 なるべく情報を 損なわないように 2つに減らした。

z2

z1

「主成分分析」という

explained: 0.9776主成分分析

多くの特性を持つ多変量データを、少ない個数で 総合的に特徴を表す量にまとめることを行う分析

例:Iris(アヤメ)データセット

Page 75: 「内積が見えると統計学も見える」第5回 プログラマのための数学勉強会 発表資料

主成分分析の仕組み (もう少し単純なデータで)

ID Math Japanese

1 20 9

2 4 2

3 12 15

4 5 10

5 10 6

6 8 11

7 1 4

8 15 9

9 5 6

数学・国語の2教科の成績データから総合的な学力の 指標を算出してみます。⇒ 2次元データを1次元に落とす

Page 76: 「内積が見えると統計学も見える」第5回 プログラマのための数学勉強会 発表資料

主成分分析の仕組み (2次元の例)赤い線(長さ1のベクトル)を延長したものに垂直に 線を落としたところを、そのデータの特性値とする。

Page 77: 「内積が見えると統計学も見える」第5回 プログラマのための数学勉強会 発表資料

主成分分析の仕組み (2次元の例)

https://goo.gl/lAqbz5アニメーション:

線上に落ちた点(赤い点)の分散が一番大きくなるような 角度を選ぶ。← その角度のとき、一番データを説明できていると言える。

Page 78: 「内積が見えると統計学も見える」第5回 プログラマのための数学勉強会 発表資料

xi = (xi1, xi2)

1

1

長さ: kxik c

o

s

✓θ

z (1)

a

内積!

主成分としての1つ目の軸を とすると、 に対する 主成分は と表せる。 ( )

z(1) xiz(1)i = (a · xi)a

主成分分析の仕組み (2次元の例)

= z (1)i= a

· xi

a = (a1, a2)T

情報損失量

Page 79: 「内積が見えると統計学も見える」第5回 プログラマのための数学勉強会 発表資料

この赤い点の分散を求める。

主成分分析の仕組み (2次元の例)

V(z(1)) =1

n

nX

i=1

(z(1)i � z(1))2

分散

=1

n

nX

i=1

{(a · xi)� (a · x)}2

~ 中略 ~は軸1の分散

は軸1,2の共分散

siisij

z(1)

z(1)

= a21s11 + 2a1a2s12 + a22s22

Page 80: 「内積が見えると統計学も見える」第5回 プログラマのための数学勉強会 発表資料

この赤い点の分散を求める。

主成分分析の仕組み (2次元の例)

V(z(1)) =1

n

nX

i=1

(z(1)i � z(1))2

分散

=1

n

nX

i=1

{(a · xi)� (a · x)}2

~ 中略 ~は軸1の分散

は軸1,2の共分散

siisij

z(1)

z(1)

分散を最大にするaの角度 つまり

これを最大にするa1, a2 を求める

= a21s11 + 2a1a2s12 + a22s22

Page 81: 「内積が見えると統計学も見える」第5回 プログラマのための数学勉強会 発表資料

主成分分析の仕組み (2次元の例)

= a2i s11 + 2a1a2s12 + a22s22

ただし、

は、ベクトル が長くなればなるほど大きくなるので、 長さは1

a

kak2 = 1

という制約をつける。

以上より・・・

Page 82: 「内積が見えると統計学も見える」第5回 プログラマのための数学勉強会 発表資料

主成分分析の仕組み (2次元の例)

主成分分析は以下の条件つき最大化問題として解く。

s.t. kak2 = 1

max a21s11 + 2a1a2s12 + a22s22

条件つき最適化問題 ⇒ 「ラグランジュの未定乗数法」で解く

Page 83: 「内積が見えると統計学も見える」第5回 プログラマのための数学勉強会 発表資料

s.t. kak2 = 1

max a21s11 + 2a1a2s12 + a22s22

主成分分析の仕組み (2次元の例)

F (a1, a2,�) = a21s11 + 2a1a2s12 + a22s22 � �(a21 + a22 � 1)

@F

@a1= 2a1s11 + 2a2s12 � 2�a1 = 0

@F

@a2= 2a2s22 + 2a1s12 � 2�a2 = 0

@F

@�= a21 + a22 � 1 = 0

微分して0と置く

Page 84: 「内積が見えると統計学も見える」第5回 プログラマのための数学勉強会 発表資料

主成分分析の仕組み (2次元の例)

前ページの式を整理すると、s11 s12s12 s22

� a1a2

�= �

a1a2

分散共分散行列の固有値問題となっている!

Page 85: 「内積が見えると統計学も見える」第5回 プログラマのための数学勉強会 発表資料

分散共分散行列の固有値問題?

Page 86: 「内積が見えると統計学も見える」第5回 プログラマのための数学勉強会 発表資料

(※ よりこれが言える)

分散共分散行列の固有値問題?

S =

s11 s12s12 s22

�=

2.0 s12s12 5.0

�例) 分散が、横軸 2.0、縦軸 5.0の場合

また、分散と共分散の関係から、共分散の上下限は それぞれの標準偏差を掛けたものとなる。

|sij | psiisjj

|a · b| = |kakkbk cos ✓| kakkbk

上記の数値例の場合、 上下限は±13.1622

Page 87: 「内積が見えると統計学も見える」第5回 プログラマのための数学勉強会 発表資料

分散共分散行列の固有値問題?例) 分散が、横軸 2.0、縦軸 5.0の、共分散0の場合

S =

s11 s12s12 s22

�=

2.0 00 5.0

(1, 0)

(0, 1)

(2, 0)

(0, 5)

Page 88: 「内積が見えると統計学も見える」第5回 プログラマのための数学勉強会 発表資料

分散共分散行列の固有値問題?例) 分散が、横軸 2.0、縦軸 5.0の、共分散1.0の場合

(1, 0)

(0, 1) (2, 1)

(1, 5)

S =

s11 s12s12 s22

�=

2.0 1.01.0 5.0

Page 89: 「内積が見えると統計学も見える」第5回 プログラマのための数学勉強会 発表資料

分散共分散行列の固有値問題?共分散の上下限の範囲でアニメーションしてみる。

円周上の青い点に 分散共分散行列を 掛けて線形変換した ものが赤い点

分散共分散行列

緑と黒の線が、 固有ベクトル

https://goo.gl/WGWXWrアニメーション:

Page 90: 「内積が見えると統計学も見える」第5回 プログラマのための数学勉強会 発表資料

分散共分散行列の固有値問題?共分散の上下限の範囲でアニメーションしてみる。

分散共分散行列

https://goo.gl/rIzRCAアニメーション:

円周上の青い点に 分散共分散行列を 掛けて線形変換した ものが赤い点

緑と黒の線が、 固有ベクトル

Page 91: 「内積が見えると統計学も見える」第5回 プログラマのための数学勉強会 発表資料

分散共分散行列の固有値問題?分散共分散行列をベクトルにかけると、ベクトルが回転と 引き延ばしされる。固有ベクトルは、下記の楕円の場合、長い方のベクトルは長軸方向 短い方のベクトルは短軸方向を指すようになっている。

共分散=0 共分散=0.666 共分散=3.162(上限)

Page 92: 「内積が見えると統計学も見える」第5回 プログラマのための数学勉強会 発表資料

分散共分散行列の固有値問題?分散共分散行列をベクトルにかけると、ベクトルが回転と 引き延ばしされる。固有ベクトルは、下記の楕円の場合、長い方のベクトルは長軸方向 短い方のベクトルは短軸方向を指すようになっている。

共分散=0 共分散=0.666 共分散=3.162(上限)

固有値問題を解いて、軸の方向がわかると ベクトル a の向きが決定できる。

Page 93: 「内積が見えると統計学も見える」第5回 プログラマのための数学勉強会 発表資料

主成分分析の仕組み (2次元の例)ベクトル a の向きが決まったので、その軸上にデータを落として指標としたり、分類を実行したりする。

Page 94: 「内積が見えると統計学も見える」第5回 プログラマのための数学勉強会 発表資料

この節のまとめ

Page 95: 「内積が見えると統計学も見える」第5回 プログラマのための数学勉強会 発表資料

この節のまとめ次元を削減する手法の1つとして主成分分析を紹介し、その求め方には、内積を理解すると何をしている処理 であるか、イメージをつけやすいことを説明した。

ID sepal_length sepal_width petal_length petal_width target

0 5.1 3.5 1.4 0.2 01 4.9 3.0 1.4 0.2 02 4.7 3.2 1.3 0.2 03 4.6 3.1 1.5 0.2 04 5.0 3.6 1.4 0.2 05 5.4 3.9 1.7 0.4 0

4次元から 2次元へ

Page 96: 「内積が見えると統計学も見える」第5回 プログラマのための数学勉強会 発表資料

参考・【統計学】初めての「標準偏差」(統計学に挫折しないために) (Qiita) http://qiita.com/kenmatsu4/items/e6c6acb289c02609e619

・【数学】固有値・固有ベクトルとは何かを可視化してみる(Qiita) http://qiita.com/kenmatsu4/items/2a8573e3c878fc2da306

・主成分分析   http://www.e.okayama-u.ac.jp/~nagahata/bstat/rta5syo.pdf

・今日のPythonコード on GitHub https://github.com/matsuken92/Qiita_Contents/blob/master/math_for_programmer/demo_math_stats_004.ipynb