1

データサイエンス概論I＆II
主成分分析

九州大学 数理・データサイエンス教育研究センター

九州大学 数理・データサイエンス教育研究センター／ 2022年9月版

2

このセクションの話
 「主成分分析」の考え方を説明
 いろいろな分野で非常によく使うデータ分析法
 主成分分析とは，なるべく少ない基底で，データを表現（分析）する方法

 データをコンパクトに表現できる！

 「どういう基底を使えば，少なくて済むのか」がポイント
 あれ，すでにそういう話，あったような…
 そうなんです，実はもう，主成分分析の大事なところは，説明済みなんです

九州大学 数理・データサイエンス教育研究センター／ 2022年9月版

3

本セクションの最後にこんな図も出てきます

第2次元
(身長)

分
散

平均分散

クラスタリング

第1次元(体重)九州大学 数理・データサイエンス教育研究センター／ 2022年9月版

4

真の次元

そのベクトルデータの分布は，どれぐらいコンパクトなのか？
九州大学 数理・データサイエンス教育研究センター／ 2022年9月版

5「真の次元」 (1/3)
𝑥2𝑥2
1次元データ6個単位ベクトルの方向を変えると2次元データ6個

𝑥1𝑥1

𝑑ሚ = 1(< 𝑑 = 2)次元で表せた！
(真の次元=1)

九州大学 数理・データサイエンス教育研究センター／ 2022年9月版

6「真の次元」 (2/3)
𝑥2𝑥2
1次元データ6個単位ベクトルの方向を変えると2次元データ6個

𝑥1𝑥1
誤差

ሚ
ほぼ𝑑=1(<𝑑 = 2)次元で表せた！
(真の次元≒1)
九州大学 数理・データサイエンス教育研究センター／ 2022年9月版

7「真の次元」(3/3)
𝑑次元ベクトルの分布𝑑ሚ (< 𝑑)次元ベクトルの分布

𝑥2𝑥2

𝑥𝑑

𝑥𝑑𝑥1

𝑥1

ほぼ𝑑ሚ (< 𝑑)次元で表せた！
ሚ(真の次元≒ 𝑑)
九州大学 数理・データサイエンス教育研究センター／ 2022年9月版

8

真の次元の分かりやすい例： 皆さんの頭の分布 講義室の皆さんの頭の位置は𝑑 = 3次元ベクトル(𝑥, 𝑦, 𝑧)で表現可能
 多くの学生さんがいれば，𝑑 =3次元上に点（データ）が分布

九州大学 数理・データサイエンス教育研究センター／ 2022年9月版

9

真の次元の分かりやすい例： 皆さんの頭の分布ሚ 座高があまり変わらないとすれば，真の次元𝑑は２次元！

九州大学 数理・データサイエンス教育研究センター／ 2022年9月版

10

真の次元の分かりやすい例： 皆さんの頭の分布 「ひな壇」に並んで立っているとすれば，傾いた平面にሚ 依然として真の次元𝑑は２次元

九州大学 数理・データサイエンス教育研究センター／ 2022年9月版

11

真の次元の分かりやすい例： 皆さんの頭の分布ሚ 立ったり座ったり好き勝手だとすると，「真の次元𝑑は２次元」とは言いづらいሚ 真の次元𝑑はもともとの次元𝑑と同じで3次元

九州大学 数理・データサイエンス教育研究センター／ 2022年9月版

12

真の次元の分かりやすい例： 皆さんの頭の分布
 横一列に並んでいるとすれば，ほぼ直線ሚ 真の次元𝑑は1次元に！

九州大学 数理・データサイエンス教育研究センター／ 2022年9月版

13

主成分分析の原理コンパクトな基底の求め方
九州大学 数理・データサイエンス教育研究センター／ 2022年9月版

14

わかりやすさのため，しばらく「データ集合の平均＝0」としましょう

𝑥2𝑥2

ഥ
𝒙𝑥1
𝑥1

ഥ=𝟎𝒙

※単に平行移動でずらしただけ
九州大学 数理・データサイエンス教育研究センター／ 2022年9月版

15

分析(=分布把握)に最も適した基底を考える：
どれが最も「コンパクト」に分布を表現？

𝑥2𝑥1

九州大学 数理・データサイエンス教育研究センター／ 2022年9月版

16

まずは最も広がった方向でしょう！
(「ソコソコ戻る」可能性が最も高い=分布を最もよく表現)𝑥2𝑥1

 これを「第1主成分」と呼ぶ

九州大学 数理・データサイエンス教育研究センター／ 2022年9月版

17

2番目は，第1主成分に直交する方向𝑥2

第1主成分方向

第2主成分方向𝑥1

 これを「第2主成分」と呼ぶ
 元々が2次元(𝑑 = 2)の場合はこれらを基底に選らんで終了
九州大学 数理・データサイエンス教育研究センター／ 2022年9月版

18

主成分ベクトルの長さ＝広がり具合 ∝ 重要度
 主成分は「方向」だけでなく，「重要度」も持ってます その方向にデータがどれぐらい広がっているか(分散)＝重要度

𝑥2

第2主成分方向𝑥2

第1主成分方向

第1主成分方向

第2主成分方向𝑥1𝑥1広がり∝重要度
第1第2広がり∝重要度
第1第2
九州大学 数理・データサイエンス教育研究センター／ 2022年9月版

19𝑑(≥ 3)次元の場合は...
 「直交し，かつ広がりの大きい方向から」，第1主成分，第2主成分，… ，第𝑑主成分

ഥ𝒙

第1主成分方向𝑥3𝑥2𝑥3𝑥2

第3平均ഥ
𝒙 ＝0に

𝑥1

第2主成分方向𝑥1

以上が「主成分分析の基本的考え方

九州大学 数理・データサイエンス教育研究センター／ 2022年9月版

20

主成分はいくつ求まる？
 𝑑次元ベクトル集合については，第1主成分方向𝑑個の主成分が求まる

𝑥3𝑥2

 ＝直交基底が自動的に求まるということです𝑥1第3 ただし，データ(＝ベクトル集合)の広がりには偏りがあるので，重要度の高い主成分は𝑑よりも少ない ＝「真の次元」の数ぐらいしか，重要な主成分は存在しない

第2主成分方向広がり∝重要度
第1第2第3

 よって，上位𝑑ሚ (< 𝑑)個の主成分のみを利用する場合が多い
九州大学 数理・データサイエンス教育研究センター／ 2022年9月版

21

各主成分の重要度を見ると「分布の姿」や「真の次元」がわかる(1/2)
 「広がり」がほぼゼロの主成分がたくさんあれば，広がり≒ゼロそれだけ真の次元は低いということ

 重要度の変化を見れば，より細かいことまでわかる
 次スライド
九州大学 数理・データサイエンス教育研究センター／ 2022年9月版

22

各主成分の重要度を見ると「分布の姿」や「真の次元」がわかる(2/2)
広がり∝重要度

広がり∝重要度

広がり∝重要度

第1第2
第3第1第2第3第𝑑第𝑑第𝑑…

…

第1第2第3

高次元データの広がりの様子を把握する重要なツール！
九州大学 数理・データサイエンス教育研究センター／ 2022年9月版

23

顔画像データ集合を例に(高次元ベクトルを対象とした)
主成分分析の挙動を理解する

画像もベクトルなので主成分分析可能
九州大学 数理・データサイエンス教育研究センター／ 2022年9月版

24

顔画像データ(100 × 100画素)の集合とその主成分 (1/3)

10,000次元

平均顔九州大学 数理・データサイエンス教育研究センター／ 2022年9月版

25

顔画像データ(100 × 100画素)の集合とその主成分 (2/3)

10,000次元

第1主成分

第2主成分

平均顔

九州大学 数理・データサイエンス教育研究センター／ 2022年9月版

26

顔画像データ(100 × 100画素)の集合とその主成分 (3/3)

10,000次元

第1主成分

第2主成分

主成分もデータ(画像)と同様，10,000次元ベクトルなので，画像としてみることができる
九州大学 数理・データサイエンス教育研究センター／ 2022年9月版

27

得られた主成分

データ集合
（一部）

顔画像に対する主成分

上位
(重要)

中位
下位
九州大学 数理・データサイエンス教育研究センター／ 2022年9月版

28

主成分分析でわかることどうしてこんな大変な思いをしなくてはならないのか？
九州大学 数理・データサイエンス教育研究センター／ 2022年9月版

29

主成分得点
 各データが，各主成分方向にどの程度成分量を持つか？
 ＝主成分を材料とみた場合の，各データの「レシピ」

第2主成分𝒙の第2主成分得点

𝒙

第1主成分

見やすいように回転𝒙の第1主成分得点

九州大学 数理・データサイエンス教育研究センター／ 2022年9月版

30

得られた主成分

データ集合
（一部）

【再掲】顔画像に対する主成分分析の結果

上位
(重要)

中位
下位
九州大学 数理・データサイエンス教育研究センター／ 2022年9月版

31

主成分得点で各データを表現≒ 10×+4×の主成分得点=(10, 4)T≒

2×画像を2次元で表現！

+ 8×の主成分得点= (2, 8)T

画像を2次元で表現！ 2022年9月版
九州大学 数理・データサイエンス教育研究センター／32

こんな感じになってます

第2主成分
8

１０

４

第1主成分
(分散最大方向)

2

九州大学 数理・データサイエンス教育研究センター／ 2022年9月版

33

主成分を増やせば「誤差」を減らせます≒ 10×+4×-2×+5×の主成分得点＝(10, 4, -2, 5) T
画像を４次元で表現！

≒2×+ 8×-11×-8×の主成分得点＝ (2, 8, -11, -8)T
九州大学 数理・データサイエンス教育研究センター／ 2022年9月版

34

主成分の向きは要素間の相関を表す(1/3)

𝑥2

こっち向きに主成分が求まったということは…

第1主成分

𝑥1

𝑥2

データがこのように広がっているということ．ということは…

第1主成分

𝑥1
（身長と体重のように）
𝑥1 が増えれば𝑥2 も増えるデータだとわかる 参考：「主成分負荷量」という用語があったりします

九州大学 数理・データサイエンス教育研究センター／ 2022年9月版

35

主成分の向きは要素間の相関を表す(2/3)
𝑥2

主成分が𝑥1 と𝑥2 の「正の相関」を示している

𝑥1

𝑥2

𝑥2

主成分が無相関を示している

主成分が𝑥1 と𝑥2 の「負の相関」を示している

𝑥1

𝑥1

九州大学 数理・データサイエンス教育研究センター／ 2022年9月版

36

主成分の向きは要素間の相関を表す(3/3)
非常に広がっている方向があり(=偏りがあり)，
𝑥1 →大，𝑥2 →大，𝑥3 →小(𝑥1 →小，𝑥2 →小，𝑥3 →大，と等価)

𝑥3

広がり一様→球状分布
→無相関

𝑥3
𝑥2𝑥2

𝑥1

𝑥1
九州大学 数理・データサイエンス教育研究センター／ 2022年9月版

37

データ分布の可視化にも使える𝑑次元ベクトル

第𝑑次元
第2主成分

主成分二つを使ってできる平面上の点に！
（平面なら可視化可能）

第1主成分

木の葉(3次元空間内の点）が地面(2次元平面）に影を落とすような感じ

九州大学 数理・データサイエンス教育研究センター／ 2022年9月版

38

主成分を求める実際の方法

詳細略九州大学 数理・データサイエンス教育研究センター／ 2022年9月版

39

広がった方向を求めるための2つの基準(1):
分散最大基準 なるべく分散の大きくなる方向に主成分を求めたい
第2次元(身長)

分散小分散大good

第1次元(体重)bad
九州大学 数理・データサイエンス教育研究センター／ 2022年9月版

40

広がった方向を求めるための2つの基準(2):最小二乗誤差基準
 「なるべく誤差が小さくなる方向に主成分を求めたい」
第2次元(身長)

誤差小good

第1次元(体重)誤差大bad九州大学 数理・データサイエンス教育研究センター／ 2022年9月版

41

主成分分析の解法
 分散・最小誤差，どちらの基準でも，次のように解ける まったく同じ主成分が求まる
 というか，まったく同じ式に帰着するので，答え（＝主成分）も同じ

 【参考】実際には以下の3ステップで求まる
1. データ集合(各々𝑑次元ベクトル)から共分散行列 Σ を求める
2.
Σの固有値と固有ベクトルを求める
ሚ
3. 固有値の大きなものから𝑑個の固有ベクトルを主成分とする
ሚ（ 𝑑は適当に決定)

九州大学 数理・データサイエンス教育研究センター／ 2022年9月版

42

解法の雰囲気を図解する
楕円球と見てみる
共分散行列∑を求める

固有値固有ベクトルሚ 個だけ残す
上位𝑑
第1固有ベクトル（方向）第1固有値(広がり=重要度)
第2〃九州大学 数理・データサイエンス教育研究センター／ 2022年9月版

43

主成分分析で注意すべき点
 次元が高いのにデータが少ないと，分布の形がわからないので，求まる主成分も怪しい！

 可能なら次元数𝑑の10倍は欲しいところ…

𝑑 = 100, 𝑁 = 4

𝑑 = 2, 𝑁 = 4

多分こんな感じで分布
九州大学 数理・データサイエンス教育研究センター／ 2022年9月版

44

分布状況の解析手段について，これまでのまとめ

九州大学 数理・データサイエンス教育研究センター／ 2022年9月版

45

色々な方法で分布状況を解析してきました 平均
 分布の中心 (各軸の)分散
 各要素(各座標軸)での広がり具合
 クラスタリング
 分布全体をグループに分ける

どれがいいとか悪いとかではない．
みんな違ってみんないい．

 主成分
 分布が最も広がっている方向＝第一主成分
 第一主成分に直交しつつ，次に最も広がっている部分＝第二 分布の「真の次元」もわかる

九州大学 数理・データサイエンス教育研究センター／ 2022年9月版

46

それぞれを図示すると...
(図は2次元ですが，高次元でもできます)

第2次元
(身長)

分
散

平均

分散

クラスタリング

第1次元(体重)九州大学 数理・データサイエンス教育研究センター／ 2022年9月版

47

【付録１】
データ集合の因子分析

主成分分析とは，似て非なるもの

九州大学 数理・データサイエンス教育研究センター／ 2022年9月版

主成分分析 vs 因子分析
混同されがちだが，目的からして結構違う...
主成分分析＝
各データを主成分でうまく表現するのが仕事
主成分ベクトル48

因子分析＝
各座標軸(要素)を因子でうまく表現するのが仕事
因子ベクトルん？わかったようなわからんような...
九州大学 数理・データサイエンス教育研究センター／ 2022年9月版

49

因子分析，よく出てくる例で説明
国語の点数
全科目に共通する記憶力だけから推定される
国語の点数

記憶力

(長さ=記憶力の良さは人によって違う)

数学の点数

記憶力だけから推定される数学の点数共通因子とはいえ，数学独自のセンスもいるだろうからその影響

独自因子

実際の数学の点

九州大学 数理・データサイエンス教育研究センター／ 2022年9月版

50

もしかしたら複数の共通因子があるかも
全科目に共通する

国語の点数①文章読解力(長さ＝読解力の良さは人によって違う)

全科目に共通する②記憶力(長さ＝記憶力の良さは人によって違う)

数学の点数

読解力だけから推定される
数学の点数

記憶力だけから推定される数学の点数とはいえ，数学独自のセンスもいるだろうから
その影響

共通因子①

共通因子②

九州大学 数理・データサイエンス教育研究センター／ 2022年9月版

独自因子

実際の数学の点

51

共通因子は直交しなくてもよい
主成分分析だと必ず直交

共通因子2
共通因子1斜交といいます
九州大学 数理・データサイエンス教育研究センター／ 2022年9月版

52

共通因子の求め方

はじまりはやはりデータ集合いったん直交基底を求めておいて回転により斜交基底にこの部分が主成分分析に似ている（ただし因子分析では独自因子も考えるので，実際には主成分分析とは違う）
九州大学 数理・データサイエンス教育研究センター／ 2022年9月版

53

参考：より違いを深く知りたい方へ http://www.sigmath.es.osaka-u.ac.jp/~kano/research/seminar/30BSJ/kano.pdf

九州大学 数理・データサイエンス教育研究センター／ 2022年9月版