Slide 1

Slide 1 text

化学⼯学特論2 第12回 2018年12月17日 (月) 0 理⼯学部 応用化学科 データ化学⼯学研究室 専任講師 ⾦⼦ 弘昌

Slide 2

Slide 2 text

前回の達成目標 クラスタリングについて理解する 階層的クラスタリングを実⾏して、デンドログラムや可視化の結果を 確認できるようになる クラス分類について理解する 決定⽊とランダムフォレストを実⾏してクラス分類ができるようになる 1

Slide 3

Slide 3 text

今回の達成目標 クラス分類について理解する ランダムフォレストを実⾏してクラス分類ができるようになる 回帰分析について理解する Partial Least Squares (PLS) と Least Absolute Shrinkage and Selection Operator (LASSO) を実⾏して回帰分析ができるようになる 2

Slide 4

Slide 4 text

クラスタリングとクラス分類 クラスタリング • サンプルを塊 (クラスター) ごとに、自動に分ける • クラスの情報 (正解) は用いない ⁃ 階層的クラスタリング クラス分類 • クラスの情報 (正解) に基づいて、サンプルを分類する ⁃ 決定⽊ (Decision Tree, DT) ⁃ ランダムフォレスト (Random Forests, RF) 3

Slide 5

Slide 5 text

決定⽊ (Decision Tree, DT) とは︖ クラス分類モデルが、⽊のような構造で与えられる モデルを直感的に理解しやすい 理解しやすい反⾯、モデルの精度は低くなってしまうことが多い 4

Slide 6

Slide 6 text

Random Forest (RF) とは︖ サンプルと説明変数とをランダムにサンプリングして、 決定⽊をたくさん作る 複数の決定⽊の推定結果を統合して、最終的な推定値とする アンサンブル(集団)学習 (Ensemble learning) の1つ 決定⽊と⽐べて精度は⾼くなることが多いが、モデルを解釈することは 難しい 説明変数の重要度を議論できる 5

Slide 7

Slide 7 text

RFの概略図 6 データセット サブデータ セット1 決定⽊1 決定⽊2 決定⽊ k ・・・ ・・・ サブデータ セット2 サブデータ セット k

Slide 8

Slide 8 text

どのようにサブデータセットを作るか︖ データセットのサンプル数: m • サンプルを重複を許してランダムに m 個選択 データセットの説明変数(記述⼦)の数: n • 説明変数を重複を許さずランダムに p 個選択 7 が得られる サブデータセット 説明変数の数 : p サンプルの数 : m 決定⽊作成

Slide 9

Slide 9 text

サブデータセットの数・説明変数の数はどうする︖ グリッドサーチ + クロスバリデーション サブデータセットの数の候補 例 • 100, 200, 300, 400, 500 説明変数の数の候補 例 • データセットにおける説明変数(記述⼦)の数の 10, 20, …, 80, 90 % 8

Slide 10

Slide 10 text

どのように推定結果を統合するか︖ k 個のクラス分類結果で多数決 9

Slide 11

Slide 11 text

Out-Of-Bag (OOB) サブデータセットを作るとき、m 個のサンプルから重複を許して m 個の サンプルを選択 10 サブデータセットごとに、選ばれなかったサンプル (Out-Of-Bag, OOB) が存在 OOBにより、外部データに対する予測性能を検討可能

Slide 12

Slide 12 text

ランダムフォレストをしてみよう︕ 11

Slide 13

Slide 13 text

[補足] 説明変数 (記述⼦) の重要度 説明変数 (記述⼦) の重要度 Ij 12 , 1 t j t T t T j m I E k m ∈ = ∆   k : サブデータセットの数 (決定⽊の数) m : サンプル数 T : ある決定木 t : T におけるあるノード ΔEt : t にしたときの E (決定⽊における評価関数) の変化  目的変数の誤差の二乗和 (回帰分析)  Gini 係数など (クラス分類) * Scikit-learn では変数の重要度としてこれを採用

Slide 14

Slide 14 text

[補足] OOBを用いた説明変数 (記述⼦) の重要度 説明変数 (記述⼦) の重要度 Ij 13 ( ) ( ) 1 1 k j i i i I F E p j k = = −  k : サブデータセットの数 (決定⽊の数) p(j) : i 番目の決定⽊に変数 j が使われていたら 1, そうでなければ 0 Ei : i 番目の決定⽊において、OOBを推定したときの  平均二乗誤差 (回帰分析)  誤分類率 (クラス分類) Fi : i 番目の決定⽊を作成した後に、説明変数をランダムに並び替えて、 OOBを推定したときの  平均二乗誤差 (回帰分析)  誤分類率 (クラス分類) Ei が小さいほど、Fi が大きいほど、Ij が大きい → j 番目の説明変数 (記述⼦) の重要度が⾼い

Slide 15

Slide 15 text

回帰分析ってなに︖ 14 20 25 30 35 250 300 350 400 450 500 ビール注文数[個] (y) 最高気温[℃] (X) 例 • 目的変数 (y) ⁃ ビール注文数[個] • 説明変数 (X) ⁃ 最⾼気温[℃] 目的変数(y)と説明変数(X)の関係をモデル化し、 Xによってyがどれだけ説明できるのかを定量的に分析すること どうやってモデル化する(式を作る)のか︖ y = 12.9X + 4.2

Slide 16

Slide 16 text

部分的最小二乗回帰 (PLS) とは︖ 部分的最小二乗回帰 (Partial Least Squares Regression, PLS) • 線形の回帰分析手法の1つ • 説明変数(記述⼦)の数がサンプルの数より多くても計算可能 • 回帰式を作るときにノイズの影響を受けにくい • 説明変数の間の相関が⾼くても対応可能 • 主成分分析をしたあとの主成分と目的変数との間で最小二乗法を ⾏うのは主成分回帰 (PCR) であり、PLSとは異なるので注意 • PLS回帰とかPLSRとも呼ばれているが、ここでは PLS 15

Slide 17

Slide 17 text

どうして PLS を使うの︖〜多重共線性〜 多重共線性の問題 • 説明変数の間に強い相関がある場合、回帰係数が不安定になる • わずかなデータの変化(追加、削除)で回帰係数が大きく 変わってしまう 16 赤い線を中心に回帰平⾯が回りやすい → 回帰係数が変わりやすい y x1 x2

Slide 18

Slide 18 text

多重共線性への対策 事前に共線性のある変数(記述⼦)を削除 → 変数選択 • 必要な変数(記述⼦)を取り除いてしまう危険もある Xを無相関化 (相関係数=0 に) してから重回帰分析 Xの情報の一部のみを使用して重回帰分析 17 主成分分析 (Principal Component Analysis, PCA) + 重回帰分析 主成分回帰 (Principal Component Regression, PCR) 重回帰分析については こちら、PCAについては こちら

Slide 19

Slide 19 text

主成分回帰 (PCR) 主成分回帰 (Principal Component Regression, PCR) • 説明変数のデータ X のみを用いて主成分分析を⾏い 主成分 T を得る ⁃ T の成分(変数)の間は無相関 • T と目的変数 y との間で最小二乗法による重回帰分析 18 T X y 成分抽出 (PCA) 最小二乗法 X y 最小二乗法 通常の重回帰分析 PCR 説明変数(記述⼦) サンプル 目的変数(物性・活性) 主成分

Slide 20

Slide 20 text

PCR と PLS との違い PCA • 主成分 t の分散 ( tTt ) が最大になるように主成分を抽出 PLS • 主成分 t と目的変数 y との共分散 ( tTy ) が最大になるように 主成分を抽出 19 -2 0 2 -2 -1 0 1 2 y t -2 0 2 -2 -1 0 1 2 y t 共分散 大きい 共分散 小さい

Slide 21

Slide 21 text

PLS の概要 PCA • 主成分 t の分散 ( tTt ) が最大になるように主成分を抽出 PLS • 主成分 t と目的変数 y との共分散 ( tTy ) が最大になるように 主成分を抽出 20 T X y 最小二乗法 成分抽出 yの情報 説明変数(記述⼦) サンプル 主成分

Slide 22

Slide 22 text

PLSの基本式 (yは1変数) 21  A : PLS の成分数  ta : a 番目の主成分  pa : a 番目のローディング  E : X の残差 E TP E p t X + = + =  T T A a a a f Tq f t y + = + =  A a a a q  qa : a 番目の係数  f : y の残差 X、y はオートスケーリング後 (平均0、標準偏差1) オートスケーリングについては こちら ⾏列の表し⽅やローディングについては こちら

Slide 23

Slide 23 text

22 1成分のPLSモデル wa : a番目の重みベクトル 大きさ(ノルム)は1とする t1 は X の線形結合で表わされると仮定 1 1 Xw t = 1 1 = w E p t X + = T 1 1 f t y + = 1 1 q PLSモデル式

Slide 24

Slide 24 text

t1 の計算 yとの共分散の最大化 23 y と t1 の共分散 yTt1 を最大化するよう t1 を求める  オートスケーリングしているため X と y は平均0 y との関連性が大きい t1 を抽出したい ただし、 (制約条件) 1 1 = w

Slide 25

Slide 25 text

t1 の計算 Lagrangeの未定乗数法 24 Lagrangeの未定乗数法 μ を未知の定数として、下の G を最大化 ( ) ( ) 1 1 G 2 1 1 T 2 1 1 T − − = − − = w Xw y w t y µ µ 制約条件がある中での最大化

Slide 26

Slide 26 text

t1 の計算 Gの最大化 25 n : データ数 d : 説明変数の数 ( )       − − = − − =    = = = 1 1 G 1 2 , 1 , 1 , 1 1 2 1 1 T d k k k k i d k i n i w w x y µ µ w Xw y G は w1 の関数 0 2 G , 1 1 , , 1 = − = ∂ ∂  = k n i k i i k w x y w µ  k : 変数番号 G が最大値のとき、G を w1 の要素ごとに偏微分した値は 0

Slide 27

Slide 27 text

t1 の計算 式変形 26 0 2 , 1 1 , = −  = k n i k i i w x y µ k n i k i i w x y , 1 1 , 2µ =  = w1,k を両辺に掛けると、 2 , 1 1 , 1 , 2 k n i k k i i w w x y µ =  = µ 2 1 , 1 , 1 =   = = d k k k i i n i w x y k について 1 から d まで和を取る (制約条件を使ってwが消える) µ 2 1 T = t y より、 よって、

Slide 28

Slide 28 text

t1 の計算 w1 の計算 27 µ 2 1 , , 1  = = n i k i i k x y w μは yTt1 の値、w1 の 大きさ(ノルム)は1より、 y X y X w T T 1 = 1 1 Xw t = w1 が得られた後、t1 も計算 k n i k i i w x y , 1 1 , 2µ =  = より、

Slide 29

Slide 29 text

p1 とq1 の計算 28 p1 は X の残差 E の要素の二乗和が最小になるように求める (最小二乗法) 1 T 1 1 T 1 t t t X p = q1 は y の残差 f の要素の二乗和が最小になるように求める (最小二乗法) 1 T 1 1 T 1 t t t y = q

Slide 30

Slide 30 text

29 2成分のPLSモデル PLSモデル式 X2 : X の中で1成分のPLSモデルでは説明できない部分 y2 : y の中で1成分のPLSモデルでは説明できない部分 2 T 2 2 T 1 1 E p t p t X + + = 2 2 2 1 1 f t t y + + = q q T 1 1 2 p t X X − = 1 1 2 q t y y − = ただし、w2 の大きさ(ノルム)は1 t2 は X2 の線形結合 2 2 2 w X t = 1 2 = w

Slide 31

Slide 31 text

w2 、t2 、p2 、q2 の計算 30 y2 と t2 の共分散 y2 Tt2 を最大化するよう t2 を計算する y2 との関連性が大きい t2 を抽出したい 1成分の時と同様にして、 2 T 2 2 T 2 2 y X y X w = 2 2 Xw t = 2 T 2 2 T 2 2 t t t X p = 2 T 2 2 T 2 2 t t t y = q 3成分以降も同様に計算する

Slide 32

Slide 32 text

何成分まで用いるか︖ 多くの成分を用いるとモデルの自由度が大きく(モデルが複雑に)なり、 過学習の恐れがある • 過学習: モデル構築用データには回帰式(回帰モデル)が よく当てはまるが、新しいデータに対する予測誤差が 大きくなってしまうこと • 予測性の⾼いモデルが得られる適切な成分数を選択 31 クロスバリデーション

Slide 33

Slide 33 text

クロスバリデーション 例) 3-fold クロスバリデーション 32 X ⽐較 変数 サンプル y X1 X3 y1 y3 X2 y2 X1 y1 X2 y2 X3 モデル1 y3p y1 y3 y2 y1p y3p y2p ① X2 y2 X3 y3 X1 モデル2 y1p ② X3 y3 X1 y1 X2 モデル3 y2p ③ ① ③ ②

Slide 34

Slide 34 text

r2 CV (予測的説明分散) クロスバリデーションによる予測値を用いた説明分散 r2 • Leave-one-out クロスバリデーション • N-fold クロスバリデーション など モデルの予測性を表す指標 1に近いほど良い 33 ( ) ( ) 2 ( ) ( ) CV 2 1 CV 2 ( ) A 1 1 n i i i n i i y y r y y = = − = − −   y(i)︓i 番目のサンプルにおける 目的変数の値 yCV (i)︓i 番目のサンプルにおける クロスバリデーションによる 目的変数の推定値 yA ︓目的変数の平均値 n︓サンプル数

Slide 35

Slide 35 text

成分数の決め⽅ 例) r2 CV 値を指標にして判断 • r2 CV 値が最大値を取る成分数 • r2 CV 値が最初の極大値を取る成分数 • r2 CV 値の上昇が最初に0.03以下となる成分数 34 成分数 r2(⻘) r2 CV (赤) モデル構築用データに 対する性能は⾼くなって いるが、予測性能は低下 → 過学習が起きている

Slide 36

Slide 36 text

Root Mean Squared Error (RMSE) : 誤差の指標 35 RMSEC (RMSE of Calibration) RMSECV (RMSE with Cross-Validation) r2 , r2 CV が大きい ⇔ RMSEC , RMSECV が小さい データが同じであれば、 ( ) ( ) 2 ( ) ( ) 2 1 2 ( ) 1 ˆ 1 n i i i n i i y y r y y = = − = − −   ( )2 ( ) ( ) 1 C ˆ n i i i y y RMSE n = − =  ( ) ( ) 2 ( ) ( ) 2 1 CV 2 ( ) 1 ˆ 1 n i i CV i n i i y y r y y = = − = − −   yの計算値 ( )2 ( ) ( ) 1 CV ˆ n i i CV i y y RMSE n = − =  クロスバリデーションによるyの予測値

Slide 37

Slide 37 text

PLS を実⾏してみよう︕ 36

Slide 38

Slide 38 text

LASSO とは︖ Least Absolute Shrinkage and Selection Operator (LASSO) 線形の回帰分析手法 目的変数の誤差の二乗和に加えて、回帰係数の絶対値の和の項を 最小化することで、過学習を防ぐ 回帰係数の値が0になりやすく、変数選択としても利用できる 37

Slide 39

Slide 39 text

線形の回帰分析手法 線形の回帰分析手法 • たとえば説明変数が2つのとき、目的変数・説明変数を オートスケーリングしたあと、 と表わされる ある関数 G を最小化することで回帰係数を求める 38 yC ︓ y の、x で表すことができる部分 f︓ y の、x で表すことができない部分 (誤差、残差) y︓ 目的変数 x1 , x2 ︓ 説明変数 (記述⼦) b1 , b2 ︓ (標準)回帰係数 1 1 2 2 C y x x f y f b b = + + = + ( ) C 1 1 2 2 y = x x b b +

Slide 40

Slide 40 text

LASSO 最小二乗法: G は誤差の二乗和 LASSO: G は誤差の二乗和と回帰係数の絶対値の和 39 2 2 1 n i i G f = = = −  y Xb n︓サンプル数 fi : i 番目のサンプルの誤差 m︓説明変数の数 bi : i 番目の説明変数の回帰係数 λ : 重み 2 1 m i i G b λ = = − +  y Xb

Slide 41

Slide 41 text

回帰係数の求め⽅ 40 G が最小値を取る G を 各bi で偏微分したものが 0 G が極小値を取る 0 i G b ∂ = ∂ 必要に応じて繰り返し計算により、 を満たす各bi を求める 0 i G b ∂ = ∂

Slide 42

Slide 42 text

どうしてLASSOは回帰係数が0になりやすいの︖ 41 b1 b2 2 1 m i i G b λ = = − +  y Xb ||y-Xb||2 が最小になる (b1 , b2 ) b1 , b2 を変えたときの||y-Xb||2 の 等⾼線 が最小になる (b1 , b2 ) = (0,0) 1 m i i b λ =  b1 , b2 を変えたときの の 等⾼線 1 m i i b λ = 

Slide 43

Slide 43 text

どうしてLASSOは回帰係数が0になりやすいの︖ 42 b1 b2 2 1 m i i G b λ = = − +  y Xb と との交点が、 G が最小になる (b1 , b2 ) の角が軸上にあるため b1 もしくは b2 が 0 になりやすい b1 = 0

Slide 44

Slide 44 text

重み λ の決め⽅ グリッドサーチによって、クロスバリデーションの後の r2 の値が もっとも⾼い λ とする λ の候補の例: 0.01, 0.02, …, 0.69, 0.7 43

Slide 45

Slide 45 text

LASSO を実⾏してみよう︕ 44