Upgrade to Pro — share decks privately, control downloads, hide ads and more …

第7回ケモインフォマティクス入門講座 講義資料

Hiromasa Kaneko
November 05, 2017

第7回ケモインフォマティクス入門講座 講義資料

ケモメトリックス
データセットの定義
内容 1/2
内容 2/2
注意点
どうしてデータの前処理をするの?
オートスケーリング (標準化)
オートスケーリングの例
センタリング
スケーリング
モデル検証用(テスト)データのオートスケーリング
分散が0の変数の削除
同じ値を多くもつ変数の削除
注意点
相関係数の高い変数の組の1つの削除
しきい値は?どちらを消す?
注意
内容 1/2
入門編の復習
回帰分析ってなに?
最小二乗法による線形重回帰分析
最小二乗法による重回帰分析
どうして PLS を使うの?~多重共線性~
PLS とは?
PLSと一般的な重回帰分析
線形判別分析 (LDA) とは?
“最もよく判別する” とは?
重み w の求め方
サポートベクターマシン (SVM) とは?
線形判別関数
SVMの基本的な考え方
きれいに分離できないときは?
2つの項を一緒に最小化
線形判別関数
非線形SVMへの拡張
カーネルトリック
カーネル関数の例
グリッドサーチ+クロスバリデーション
内容 1/2
“良い”回帰モデル・クラス分類モデルとは何か?
データセットの呼び方
比較指標
回帰分析 決定係数 r2
回帰分析 RMSE
回帰分析 MAE
クラス分類 混同行列・正解率・精度・検出率
クラス分類 Kappa係数
モデルの評価・比較 ハイパーパラメータの決定
どのようなハイパーパラメータを用いるか?
クロスバリデーション
クロスバリデーションの補足
どのようにデータセットを分けるか?
Y-randomization (Yランダマイゼイション)
内容 1/2
決定木 (Decision Tree, DT) とは?
決定木でできることのイメージ (回帰分析)
決定木のでできることのイメージ (クラス分類)
決定木モデルの木構造 (回帰分析)
決定木モデルの木構造 (クラス分類)
決定木のアルゴリズム
回帰分析における評価関数 E
クラス分類における評価関数 E
いつ木の成長を止めるか?
内容 1/2
Random Forest (RF) とは?
RFの概略図
どのようにサブデータセットを作るか?
サブデータセットの数・説明変数の数はどうする?
どのように推定結果を統合するか?
Out-Of-Bag (OOB)
OOBを用いた説明変数 (記述子) の重要度
内容 1/2
RR・LASSO・EN とは?
OLS・RR・LASSO・EN・SVR
OLS・RR・LASSO・EN・SVRの共通点
OLS・RR・LASSO・EN・SVRの違い 1/2
OLS・RR・LASSO・EN・SVRの違い 2/2
回帰係数の求め方
どうしてLASSOは回帰係数が0になりやすいの?
どうしてLASSOは回帰係数が0になりやすいの?
重み λ, α の決め方
内容 1/2
サポートベクター回帰 (SVR) とは?
基本的にSVRは線形の回帰分析手法
回帰係数 b
非線形の回帰モデルへ
SVMとSVRとの比較
SVRの誤差関数
スラック変数
RR・LASSO・EN との関係
Lagrangeの未定乗数法
偏微分して0
G の変形
カーネル関数の例
α を求める
二次計画問題
SVRの回帰式
サポートベクターとは
SVRのまとめ・特徴
C, ε, γ の決め方
内容 2/2
Stepwise (ステップワイズ) 法とは?
Stepwise法の種類
どのように説明変数を増やすか?
評価指標 (最小二乗法による重回帰分析用) 1/2
評価指標 (最小二乗法による重回帰分析用) 2/2
評価指標 (任意の回帰分析手法で使える)
どのように説明変数を減らすか?
減らすときだけで使える手法
どのように説明変数を増やすか減らすかするか?
scikit-learn を使う方へ 1/2
scikit-learn を使う方へ 2/2
参考資料

Hiromasa Kaneko

November 05, 2017
Tweet

More Decks by Hiromasa Kaneko

Other Decks in Science

Transcript

  1. ケモメトリックス 1 X: 説明変数 y: 目的変数 回帰モデル クラス分類モデル y =

    f( X ) モデリング データベース yの推定値 新しいデータ xnew 構造記述⼦*など 予測 物性・活性など x1 x2 1 2 2 1 3 3 データ1 データ2 データ3 例) X: 2変数 データ数: 3 線形モデル *化学構造の情報を数値化したもの 例) 分⼦量、炭素原⼦の数、 ベンゼン環の数 y 活性なし 活性なし 活性あり 1 2 3 1 2 3 クラス分類 モデル
  2. ケモメトリックス 2 X: 説明変数 y: 目的変数 回帰モデル クラス分類モデル y =

    f( X ) モデリング データベース yの推定値 新しいデータ xnew 構造記述⼦*など 予測 物性・活性など x1 x2 1 2 2 1 3 3 データ1 y 5.1 3.9 9.2 データ2 データ3 例) X: 2変数 データ数: 3 線形モデル y = x1 + 2x2 + 誤差 回帰モデル *化学構造の情報を数値化したもの 例) 分⼦量、炭素原⼦の数、 ベンゼン環の数
  3. データセットの定義 トレーニングデータ (training dataset) • (回帰・クラス分類) モデルを構築するためのデータ バリデーションデータ (validation dataset)

    • モデルのハイパーパラメータを決めるためのデータ テストデータ (test dataset) • y の値を隠しておき、トレーニングデータ・バリデーションデータで 作られたモデルの性能を最終的に確認するためのデータ 3 https://en.wikipedia.org/wiki/Training,_test,_and_validation_sets
  4. 内容 1/2 データの前処理 • 標準化 (オートスケーリング) • 情報量の⼩さい変数の削除 モデリング •

    入門編の復習 • 決定木 (Decision Tree, DT) • ランダムフォレスト (Random Forests, RF) • リッジ回帰 (Ridge Regression, RR) • Least Absolute Shrinkage and Selection Operator (LASSO) • Elastic Net (EN) • Support Vector Regression (SVR) ⁃ モデルの検証 4
  5. どうしてデータの前処理をするの︖ 単位系が異なる場合など、各変数(記述⼦)が同等に扱われない • ⻑さ: km, m, cm, mm, nm など

    • 温度: ℃, K など データ分布の中心が 0 であると、何かとうれしい 情報量のない変数はいらない (かえって邪魔になるときもある) • ほぼすべてのサンプルで値が同じ変数 • 似た変数の組の1つ 7 オートスケーリング (標準化) 分散が0の変数の削除、同じ値を多くもつ変数の削除 相関係数の高い変数の組の1つを削除
  6. オートスケーリング (標準化) データ解析・ケモメトリックスにおける⼀般的な前処理の方法 オートスケーリング = センタリング + スケーリング • センタリング:

    変数(記述⼦)ごとにその平均を引き、 平均を 0 にする • スケーリング: 変数(記述⼦)ごとにその標準偏差で割り、 標準偏差を 1 にする 各変数(記述⼦)が同等の重みを持つようになる 8
  7. オートスケーリングの例 9 8 10 12 14 16 18 20 22

    0.5 1 1.5 2 2.5 記述子2 記述子1 -2 0 2 -2 -1 0 1 2 記述子2 記述子1 オートスケーリング
  8. センタリング 10 センタリング 各変数(記述⼦)の平均を0にする (それぞれのサンプルから平均を引く) ( ) k i x

    : k 個目のサンプルにおける、i 番目の変数(記述⼦) の値 ( ) ( ) ' k k i i i x x µ = − ( ) 1 n k i k i x n µ = = ∑ n : サンプル数
  9. スケーリング 11 スケーリング 各変数(記述⼦)の標準偏差を1にする (それぞれのサンプルを標準偏差で割る) ( ) k i x

    : k 個目のサンプルにおける、i 番目の変数(記述⼦) の値 ( ) ( ) ' " k k i i i x x σ = ( )2 ( ) 1 1 n k i i k i x n µ σ = − = − ∑
  10. モデル検証用(テスト)データのオートスケーリング モデル検証用データ(テストデータ)のオートスケーリングには、 モデル構築用データ(トレーニングデータ)の平均・標準偏差を使用 • テストデータの平均・標準偏差ではないので注意 • テストデータの平均・標準偏差を使うとトレーニングデータの スケールと変わってしまう 12 (

    ) test, k i x : テストデータのk 個目のサンプルにおける、i 番目の変数(記述⼦) の値 ( ) test, ( ) test, " k i i k i i x x µ σ − = i µ : トレーニングデータの i 番目の変数(記述⼦) の平均 i σ : トレーニングデータの i 番目の変数(記述⼦) の標準偏差
  11. 同じ値を多くもつ変数の削除 分散が 0 の変数を削除するだけで⼗分か︖ 1つのサンプルの値が1で、他のサンプルの値がすべて 0 のような 変数もいらなそう • (注意︕)

    分散の値が⼩さい、ということではない。 分散の⼩さい、たとえば 0.01未満の、変数を削除して しまうと、すべて⼩さい値でばらつきは⼩さいが重要な 変数を削除する危険性がある • クロスバリデーション(交差検定)をするときに、サンプルを分割した あとに分散が0になってしまうとよくない (クロスバリデーションを知らない人は意味がわからなくてOKです) 同じ値を多くもつ変数も削除しましょう︕ • わたし(⾦⼦)は、よく 5-fold クロスバリデーションを⾏うため、 8割以上が同じ値である変数を削除しています 14
  12. 注意点 1つのサンプルの値が1で、他のサンプルの値がすべて 0 のような変数 • ノイズで 1 になった変数のときは、過学習してしまうため変数を 削除すべき •

    その変数で 1 をとるサンプルが y に対して意味をもつときもある ⁃ ベンゼン環をもつ分⼦が⼀つだけあり、 ⁃ yが毒性の有無で、ベンゼン環によって毒性が発生するとき 削除しないときと、削除するときの両方モデリングして比較するとよい • クロスバリデーションでは注意が必要 15
  13. 相関係数の高い変数の組の1つの削除 同じ変数が2つあっても意味がない ちょっとしか違わないが (誤差︖というレベルで) 似ている変数も、 どちらか1つでOK 最初に変数の数を減らしておくことで、 • 「次元の呪い」 を低減できる

    • あとのデータ解析がやりやすくなる 相関係数が高い変数の組の1つを削除しましょう︕ 16 ( )( ) ( ) ( ) ( ) ( ) 1 2 2 ( ) ( ) 1 1 n k k i i j j k n n k k i i j j k k x x x x µ µ µ µ = = = − − − − ∑ ∑ ∑ : i 番目の変数 と j 番目の変数との相関係数
  14. しきい値は︖どちらを消す︖ しきい値は︖ • 0.8, 0.9, 0.95, 0.99など、いろいろな候補があります • たとえば、0.99 のように思い切って決めてしまうか、

    細かく最適化したい場合は試⾏錯誤的に決めることになります 2つのうち どちらを消す︖ • どちらでもあまり変わりませんが、その他の変数との相関係数を 調べて、その絶対値の和の大きい方が他の変数との重複が 大きいと考え、そちらを削除するようにしています 17
  15. 注意 主成分分析 (Principal Component Analysis, PCA) や 部分的最⼩二乗法 (Partial Least

    Squares, PLS) をすれば、 基本的に変数間の相関関係には対処できる 相関係数の高い変数の組の1つを削除したからといって、その後の 解析結果があまり変わらないこともある 18
  16. 内容 1/2 データの前処理 • 標準化 (オートスケーリング) • 情報量の⼩さい変数の削除 モデリング •

    入門編の復習 • 決定木 (Decision Tree, DT) • ランダムフォレスト (Random Forests, RF) • リッジ回帰 (Ridge Regression, RR) • Least Absolute Shrinkage and Selection Operator (LASSO) • Elastic Net (EN) • Support Vector Regression (SVR) ⁃ モデルの検証 19
  17. 入門編の復習 回帰分析 • 最⼩二乗法による重回帰分析 [1,2,4] • Partial Least Squares (PLS)

    [1,2,3] クラス分類 • 線形判別分析 (Linear Discriminant Analysis, LDA) [4,6] • Support Vector Machine (SVM) [2,5] 20 [1] 宮下芳勝・佐々木慎⼀,コンピュータ・ケミストリー シリーズ3 ケモメトリックス-化学パターン認識と多変量解析-,共⽴出版 (1995) [2] 船津公人・⾦⼦弘昌, ソフトセンサー入門〜基礎から実用的研究例まで〜, コロナ社 (2014) [3] S. Wold, et. al., Chemom. Intell. Lab. Syst., 58, 109–130, 2001. [4] C.M. ビショップ,パターン認識と機械学習 上, 丸善出版 (2012) [5] C.M. ビショップ,パターン認識と機械学習 下, 丸善出版 (2012) [6] ⾦ 明哲, ⾦森 敬文, 竹之内 高志, 村田 昇, Rで学ぶデータサイエンス〈5〉パターン認識, 共⽴出版 (2009)
  18. 回帰分析ってなに︖ 21 20 25 30 35 250 300 350 400

    450 500 ビール注文数[個] (y) 最高気温[℃] (X) 例 • 目的変数 (y) ⁃ ビール注文数[個] • 説明変数 (X) ⁃ 最高気温[℃] 目的変数(y)と説明変数(X)の関係をモデル化し、 Xによってyがどれだけ説明できるのかを定量的に分析すること どうやってモデル化する(式を作る)のか︖ y = 12.9X + 4.2
  19. 最⼩二乗法による重回帰分析 線形の式を仮定 • y = b1 x1 + b2 x2

    + ・・・ + bm xm ⁃ m︓説明変数 (記述⼦) の数 ⁃ bi ︓(標準) 回帰係数 ⁃ 標準化したあとのため、定数項は 0 誤差の二乗和が⼩さくなるように b1 , b2 ,…, bm を決定 23
  20. 線形判別分析 (LDA) とは︖ 線形判別分析 (Linear Discriminant Analysis, LDA) • 2つのクラスを

    “最もよく判別する” 直線を引く • 1次元(z)に線形写像し、zで2つのクラスを識別する • クラスが3つ以上あるときにも対応できる 27 1 1 2 2 z w x w x = + x1 x2 z クラス1 クラス-1
  21. “最もよく判別する” とは︖ ① 各クラスのサンプルは固まっている ② クラス1(赤) とクラス-1(⻘)は散らばっている 28 z でのクラス内のばらつき

    VWz z でのクラス間のばらつき VBz ( )2 Bz [1] [ 1] V z z − = − ( ) ( ) 2 2 ( ) ( ) Wz [1] [ 1] 1 i i i i V z z z z − ∈ ∈ = − + − ∑ ∑ クラス クラス-1 [ ] k z : クラス k のみの zの平均
  22. 重み w の求め方 ① 各クラスのサンプルは固まっている • z でのクラス内のばらつき VWz ②

    クラス1(赤) とクラス-1(⻘)は散らばっている • z でのクラス間のばらつき VBz 29 Bz Wz V J V = VWz が⼩さく(①)、VBz が大きくなる(②) 直線を引く (w1 , w2 を求める) が最大になるw1 , w2 を求める
  23. 線形判別関数 31 x1 x2 クラス1 クラス-1 1 2 1 1

    2 2 ( , ) f x x w x w x b b = + + = + xw [ ] 1 1 2 2 , w x x w   = =     x w 線形判別関数︓
  24. SVMの基本的な考え方 32 x1 x2 クラス1 クラス-1 マージンを最大化するように 判別関数を決める︕ 2 2

    1 2 2 2 w w = + w マージン = (点と直線との距離で計算) 1 2 1 1 2 2 ( , ) f x x w x w x b b = + + = + xw
  25. きれいに分離できないときは︖ 33 x1 x2 スラック変数 ξ を導入︕ ξi > 1

    0 < ξi < 1 ξi = 0 サンプルごとの ξi の和 を最⼩化 1 n i i ξ = ∑ n: モデル構築用 サンプル数
  26. 2つの項を⼀緒に最⼩化 ||w|| / 2 の最⼩化 → 計算の都合上、 ||w||2 / 2

    の最⼩化 ξi の和の最⼩化 34 C : 2つの項のバランスを決める係数 x(i): i 番目のサンプルの説明変数 y(i): i 番目のサンプルの値 (1 もしくは -1) 2 1 1 2 n i i C ξ = + ∑ w の最⼩化 ただし、 ( ) ( ) ( ) 0, 1 i i i i y f ξ ξ ≥ ≥ − x
  27. 線形判別関数 35 ( ) ( )T ( ) ( )T

    1 1 ( ) n n i i i i i i i i f b y b y b α α = = = + = + = + ∑ ∑ x xw x x xx ( ) ( ) ( ) ( )T S S S 1 i i i j j i j b y y n α ∈ ∈   = −     ∑ ∑ x x S : サポートベクター (αi ≠0 のサンプル) の集合 nS : サポートベクターの個数
  28. カーネルトリック 37 線形判別関数 (元の空間)︓ ( ) ( )T 1 (

    ) n i i i i f y b α = = + ∑ x xx ( ) ( )T ( ) ( ) 1 ( ) n i i i i f y b α φ φ = = + ∑ x x x 非線形判別関数 (高次元空間)︓ ϕ(x) を求める必要はなく、内積 ϕ(x)ϕ(x(i))T が分かればOK︕ 高次元空間への写像︓ ( ) ( ) ( )T ( ) ( ) ( ) ( ) , i j i j K φ φ = x x x x 高次元空間への写像 ϕ(x) ではなく、内積を指定 (カーネル関数 K ) ( ) φ → x x
  29. カーネル関数の例 線形カーネル ガウシアンカーネル (使われることが多い) 多項式カーネル 38 ( ) ( )

    ( ) ( ) ( )T , i j i j K = x x x x ( ) ( ) 2 ( ) ( ) 2 ( ) ( ) ( ) ( ) 2 , exp exp 2 i j i j i j K γ σ   −   = − = − −     x x x x x x ( ) ( ) ( ) ( ) ( ) ( )T , 1 d i j i j K λ = + x x x x
  30. グリッドサーチ+クロスバリデーション C と γ の候補を設定し、すべての組合せ (グリッド, 下図の• ) で クロスバリデーションを⾏う

    C と γ の候補の例 • C : 2-5, 2-4, ..., 29, 210 • γ : 2-10, 2-9, ..., 24, 25 例) クロスバリデーション後の 正解率が最も高い C ・ γ の組を選択 39 C γ 2-10 2-9 24 25 ・・・ 2-5 2-4 29 210 ・・・
  31. 内容 1/2 データの前処理 • 標準化 (オートスケーリング) • 情報量の⼩さい変数の削除 モデリング •

    入門編の復習 • 決定木 (Decision Tree, DT) • ランダムフォレスト (Random Forests, RF) • リッジ回帰 (Ridge Regression, RR) • Least Absolute Shrinkage and Selection Operator (LASSO) • Elastic Net (EN) • Support Vector Regression (SVR) ⁃ モデルの検証 40
  32. データセットの呼び方 トレーニングデータ (キャリブレーションデータ) • 回帰モデル・クラス分類モデルの構築に用いるデータ • 目的変数の値・ラベルは分かっている バリデーションデータ・テストデータ • 回帰モデル・クラス分類モデルの検証に用いるデータ

    • 実際には目的変数の値・ラベルは分かっているが、 わからないものとして (目隠し・ブラインドして)モデルから推定し、 実際と推定結果とがどれくらいあっているか確認する ⁃ バリデーションデータで、モデルのハイパーパラメータ (PLSの 最適成分数など) を最適化する ⁃ テストデータで、最終的にモデルの優劣を比較する ⁃ バリデーションデータはなく、トレーニングデータとテストデータだけ のときもある (このときのモデルのハイパーパラメータの最適化 については後述) 42
  33. 回帰分析 決定係数 r2 目的変数のばらつきの中で、回帰モデルによって説明できた割合 1に近いほど回帰モデルの”性能”が高い • どんな“性能”かは、r2 を計算したデータセット・推定値による 相関係数 r

    を二乗したものとは異なる 異なるデータセットの間で r2 を比較してはいけない 44 ( ) ( ) 2 ( ) ( ) EST 2 1 2 ( ) A 1 1 n i i i n i i y y r y y = = − = − − ∑ ∑  y(i)︓i 番目のサンプルにおける 目的変数の値 yEST (i)︓i 番目のサンプルにおける 目的変数の推定値 yA ︓目的変数の平均値 n︓サンプル数
  34. 回帰分析 RMSE 平均的な誤差の大きさ 0 に近いほど回帰モデルの”性能”が高い • どんな“性能”かは、RMSE を計算したデータセット・推定値による 異なるデータセットの間で RMSE

    を比較してはいけない データセットが同じであれば、r2 が大きいほど RMSE は⼩さい 外れ値 (異常に誤差が大きいサンプル) があると、その値の影響を 受けやすく、RMSE が大きくなりやすい 45 ( )2 ( ) ( ) EST 1 n i i i y y RMSE n = − = ∑ 
  35. 回帰分析 MAE 平均的な誤差の大きさ 0 に近いほど回帰モデルの”性能”が高い • どんな“性能”かは、MAE を計算したデータセット・推定値による 異なるデータセットの間で MAE

    を比較しないほうがよい 外れ値 (異常に誤差が大きいサンプル) の影響を受けにくい 46 ( ) ( ) EST 1 n i i i y y MAE n = − = ∑ 
  36. クラス分類 混同⾏列・正解率・精度・検出率 混同⾏列 (confusion matrix) 47 予測されたクラス 1 (Positive, 陽性)

    -1 (Negative, 陰性) 実際の クラス 1 (Positive, 陽性) True Positive (TP) False Negative (FN) -1 (Negative, 陰性) False Positive (FP) True Negative (TN) 正解率 = TP + TN TP + FN + FP + TN 検出率 = TP TP + FN 精度 = TP TP + FP 誤検出率 = FP FP + TN など
  37. クラス分類 Kappa係数 実際と予測結果の⼀致度を評価する指標 Positive(陽性)データとNegative(陰性)データの偏りがある時に有効 48 http://en.wikipedia.org/wiki/Cohen%27s_kappa Kappa係数 = 正解率 -

    偶然による⼀致率 1 - 偶然による⼀致率 偶然による⼀致率 = TP + FN A TP + FP A FP + TN A FN + TN A × × + ( A = TP + FN + FP + TN ) 予測されたクラス 1 (Positive, 陽性) -1 (Negative, 陰性) 実際の クラス 1 (Positive, 陽性) True Positive (TP) False Negative (FN) -1 (Negative, 陰性) False Positive (FP) True Negative (TN)
  38. モデルの評価・比較 ハイパーパラメータの決定 ハイパーパラメータ • PLSの最適成分数 • LASSOの λ • SVMの

    C、γ など 良いモデル (p.1 参照) になるようにハイパーパラメータを決めたい 49
  39. どのようなハイパーパラメータを用いるか︖ トレーニングデータの比較指標の値がよくなるようなハイパーパラメータ • そもそもモデルがトレーニングデータを用いて構築されているため、 トレーニングデータには合うが、新しいサンプルの目的変数を推定 できないようなハイパーパラメータが選ばれてしまう • 基本的に用いられない バリデーションデータの比較指標の値がよくなるようなハイパーパラメータ •

    新しいサンプルに対する推定性能を考慮できる • データに偏りがないようにトレーニングデータとバリデーションデータとを 分けるよう注意する • トレーニングデータが少なくなってしまう ⁃ ハイパーパラメータを決めた後、バリデーションデータも合わせて 再度モデルを構築する • ⼗分にデータ数が多いとき以外は、あまり用いられない 50 クロスバリデーション
  40. クロスバリデーション 例) 3-fold クロスバリデーション 51 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 ③ ① ③ ②
  41. どのようにデータセットを分けるか︖ トレーニングデータ・バリデーションデータ・テストデータで、 サンプルに偏りがない方がよい • 基本的にランダムに分けるのでOK トレーニングデータはなるべくばらついている方がよい • Kennard-Stone (KS) アルゴリズムにより、

    トレーニングデータ・バリデーションデータ・テストデータの順に選ぶ 1. データセットの説明変数の平均を計算 2. 平均とのユークリッド距離が⼀番大きいサンプルを選択 3. 選択されていない各サンプルにおいて、これまで選択された すべてのサンプルとの間でユークリッド距離を計算し、 その中の最⼩値を代表距離とする 4. 代表距離が最も大きいサンプルを選択する 5. 3. と 4. とを繰り返す 53
  42. Y-randomization (Yランダマイゼイション) 特に、サンプル数が少なく説明変数 (記述⼦) の数が多いとき、 本当は X と y の間に相関関係がなくても、r2,

    r2 CV (クロスバリデーションのときの r2) の値が大きくなってしまうことがある • たまたま X のノイズと y との間で相関がでてしまう • 偶然の相関 偶然の相関かどうかを⾒分けるため、Y-randomizationが⾏われる • Y のみ値をランダムに並べかえて、おかしなデータセットにする • モデリングして、 r2, r2 CV の値が 0 付近になることを確認する 54
  43. 内容 1/2 データの前処理 • 標準化 (オートスケーリング) • 情報量の⼩さい変数の削除 モデリング •

    入門編の復習 • 決定木 (Decision Tree, DT) • ランダムフォレスト (Random Forests, RF) • リッジ回帰 (Ridge Regression, RR) • Least Absolute Shrinkage and Selection Operator (LASSO) • Elastic Net (EN) • Support Vector Regression (SVR) ⁃ モデルの検証 55
  44. 決定木でできることのイメージ (回帰分析) 57 説明変数1 (x1 ) n 3.3 ・・・ 目的変数

    y の値が n のサンプル 説明変数2 (x2 ) 3 5 1 4 1.1 1.3 1.4 1.7 2.1 2.2 推定値 yP は、サンプル の平均値 2.25 2.5 2.4 2.7 2.5 2.8 2.1 2.0 2.3 2.6 3.0 3.5 yP = 1.2 yP = 1.85 yP = 2.58 yP = 3.27
  45. 決定木のでできることのイメージ (クラス分類) 58 説明変数1 (x1 ) 説明変数2 (x2 ) 3

    5 1 4 推定されたクラスは、 多数決で クラス 2 クラス 2 クラス 1 クラス 2 クラス 1 ・・・ クラスが 1 のサンプル ・・・ クラスが 2 のサンプル
  46. 決定木モデルの木構造 (回帰分析) 59 根ノード ノード 葉ノード x1 > 3 x1

    ≤ 3 x2 ≤ 1 x2 > 1 yP = 1.2 yP = 1.85 x2 > 4 x2 ≤ 4 x1 ≤ 5 x1 > 5 yP = 2.58 yP = 2.25 yP = 3.27 枝
  47. 決定木モデルの木構造 (クラス分類) 60 根ノード x1 > 3 x1 ≤ 3

    x2 ≤ 1 x2 > 1 x2 > 4 x2 ≤ 4 x1 ≤ 5 x1 > 5 枝 クラス 2 クラス 1 クラス 2 クラス 2 クラス 1 ノード 葉ノード
  48. 回帰分析における評価関数 E 目的変数の誤差の二乗和 • それぞれの葉ノードにおける目的変数の推定値は、 同じ葉ノードにあるサンプルの平均値で与えられる 62 1 n i

    i E E = = ∑ ( )2 ( ) P 1 i m j i i i j E y y = = − ∑ ( ) P 1 1 i m j i i j i y y m = = ∑ n : 葉ノードの数 Ei : 葉ノード i の評価関数 mi : 葉ノード i におけるサンプル数 yj (i) : 葉ノード i における、 j 番目の サンプルの目的変数の値 yPi : 葉ノード i における目的変数の 推定値
  49. クラス分類における評価関数 E 交差エントロピー誤差関数 ジニ係数 63 1 n i i E

    E = = ∑ 1 ln K i ik ik k E p p = = −∑ ( ) 1 1 K i ik ik k E p p = = − ∑ いずれも、 K : クラスの数 pik : 葉ノード i における、クラス k の サンプルの割合 (ジニ係数のほうが よく使われるかな・・・)
  50. いつ木の成⻑を⽌めるか︖ クロスバリデーションの誤差が最⼩になるように深さを決める 1つの葉ノードにおける最⼩サンプル数を決め ( 3 とか)、 とりあえずすべて木を生成させる 葉ノードを2つずつ枝刈りしていく • 下の基準

    C が大きくなったら枝刈りストップ • λ はクロスバリデーションで決める 64 C E n λ = + E : 評価関数 n : 葉ノードの数 λ : 木の精度と複雑度との間の トレードオフを決める重み
  51. 内容 1/2 データの前処理 • 標準化 (オートスケーリング) • 情報量の⼩さい変数の削除 モデリング •

    入門編の復習 • 決定木 (Decision Tree, DT) • ランダムフォレスト (Random Forests, RF) • リッジ回帰 (Ridge Regression, RR) • Least Absolute Shrinkage and Selection Operator (LASSO) • Elastic Net (EN) • Support Vector Regression (SVR) ⁃ モデルの検証 65
  52. Random Forest (RF) とは︖ サンプルと説明変数とをランダムにサンプリングして、 決定木をたくさん作る 複数の決定木の推定結果を統合して、最終的な推定値とする アンサンブル(集団)学習 (Ensemble learning)

    の1つ 決定木と比べて精度は高くなることが多いが、モデルを解釈することは 難しい 回帰分析にもクラス分類にも使える 説明変数の重要度を議論できる 66
  53. どのようにサブデータセットを作るか︖ データセットのサンプル数: m • サンプルを重複を許してランダムに m 個選択 データセットの説明変数(記述⼦)の数: n •

    説明変数を重複を許さずランダムに p 個選択 68 が得られる サブデータセット 説明変数の数 : p サンプルの数 : m 決定木作成 決定木については、p.56以降あるいは http://datachemeng.com/decisiontree/
  54. サブデータセットの数・説明変数の数はどうする︖ グリッドサーチ + クロスバリデーション サブデータセットの数の候補 例 • 100, 200, 300,

    400, 500 説明変数の数の候補 例 • データセットにおける説明変数(記述⼦)の数の 10, 20, …, 80, 90 % 69
  55. OOBを用いた説明変数 (記述⼦) の重要度 説明変数 (記述⼦) の重要度 Ij 72 ( )

    1 1 k j i i i I F E k = = − ∑ k : サブデータセットの数 (決定木の数) Ei : i 番目の決定木において、OOBを推定したときの 平均二乗誤差 (回帰分析) 誤分類率 (クラス分類) Fi : i 番目の決定木を作成した後に、説明変数をランダムに並び替えて、 OOBを推定したときの 平均二乗誤差 (回帰分析) 誤分類率 (クラス分類) Ei が⼩さいほど、Fi が大きいほど、Ij が大きい → j 番目の説明変数 (記述⼦) の重要度が高い
  56. 内容 1/2 データの前処理 • 標準化 (オートスケーリング) • 情報量の⼩さい変数の削除 モデリング •

    入門編の復習 • 決定木 (Decision Tree, DT) • ランダムフォレスト (Random Forests, RF) • リッジ回帰 (Ridge Regression, RR) • Least Absolute Shrinkage and Selection Operator (LASSO) • Elastic Net (EN) • Support Vector Regression (SVR) ⁃ モデルの検証 73
  57. RR・LASSO・EN とは︖ 線形の回帰分析手法 目的変数の誤差の二乗和に加えて、それぞれ以下の項を最⼩化する ことで、過学習を防ぐ RR: 回帰係数の二乗和 LASSO: 回帰係数の絶対値の和 EN:

    回帰係数の二乗和と絶対値の和 (RRとLASSOとの中間) LASSOとENは回帰係数の値が0になりやすく、変数選択としても 利用できる 74
  58. OLS・RR・LASSO・EN・SVR 最⼩二乗法による線形重回帰分析 (Ordinary Least Squares, OLS) リッジ回帰 (Ridge Regression, RR)

    Least Absolute Shrinkage and Selection Operator (LASSO) Elastic Net (EN) サポートベクター回帰 (Support Vector Regression, SVR) 75
  59. OLS・RR・LASSO・EN・SVRの共通点 線形の回帰分析手法 • たとえば説明変数が2つのとき、目的変数・説明変数を オートスケーリングしたあと、 と表わされる ある関数 G を最⼩化することで回帰係数を求める 76

    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 +
  60. OLS・RR・LASSO・EN・SVRの違い 1/2 OLS: G は誤差の二乗和 RR: G は誤差の二乗和と回帰係数の二乗和 LASSO: G

    は誤差の二乗和と回帰係数の絶対値の和 77 2 2 1 n i i G f = = = − ∑ y Xb n︓サンプル数 fi : i 番目のサンプルの誤差 ⾏列の表し方についてはこちら 2 2 1 m i i G b λ = = − + ∑ y Xb m︓説明変数の数 bi : i 番目の説明変数の回帰係数 λ : 重み 2 1 m i i G b λ = = − + ∑ y Xb
  61. OLS・RR・LASSO・EN・SVRの違い 2/2 EN: G は誤差の二乗和と回帰係数の二乗和と絶対値の和 SVR: G はある誤差関数 h と回帰係数の二乗和

    • h についてはSVRの資料のときに 78 ( ) 2 2 1 1 1 m m i i i i G b b λ α α = =   = − + + −     ∑ ∑ y Xb α : 重み (α=1 → RR, α=0 → LASSO) ( ) 2 1 m i i G h b λ = = − + ∑ y Xb
  62. 回帰係数の求め方 79 G が最⼩値を取る G を 各bi で偏微分したものが 0 G

    が極⼩値を取る 0 i G b ∂ = ∂ 必要に応じて繰り返し計算により、 を満たす各bi を求める 0 i G b ∂ = ∂
  63. どうしてLASSOは回帰係数が0になりやすいの︖ 80 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 λ = ∑
  64. どうしてLASSOは回帰係数が0になりやすいの︖ 81 b1 b2 2 1 m i i G

    b λ = = − + ∑ y Xb と との交点が、 G が最⼩になる (b1 , b2 ) の角が軸上にあるため b1 もしくは b2 が 0 になりやすい b1 = 0 (ENも回帰係数が0になりやすい)
  65. 重み λ, α の決め方 グリッドサーチによって、クロスバリデーションの後の r2 の値が もっとも高い λ (RR,

    LASSO) もしくは λとαの組み合わせ (EN) とする RRにおける λ の候補の例: 0.01, 0.02, …, 0.69, 0.7 LASSOにおける λ の候補の例: 0.01, 0.02, …, 0.69, 0.7 ENにおける λ の候補の例: 0.01, 0.02, …, 0.69, 0.7 ENにおける α の候補の例: 0, 0.01, …, 0.99, 1 82
  66. 内容 1/2 データの前処理 • 標準化 (オートスケーリング) • 情報量の⼩さい変数の削除 モデリング •

    入門編の復習 • 決定木 (Decision Tree, DT) • ランダムフォレスト (Random Forests, RF) • リッジ回帰 (Ridge Regression, RR) • Least Absolute Shrinkage and Selection Operator (LASSO) • Elastic Net (EN) • Support Vector Regression (SVR) ⁃ モデルの検証 83
  67. サポートベクター回帰 (SVR) とは︖ 線形の回帰分析手法 サポートベクターマシン (SVM) を回帰分析に応用 目的変数の誤差に加えて、それぞれ以下の項を最⼩化する ことで、過学習を防ぐ •

    リッジ回帰 (RR)・LASSO・Elastic Net (EN) と同じ • RR・LASSO・ENとの共通点はこちら 誤差に不感帯を設けることでノイズの影響を受けにくい カーネルトリックにより非線形の回帰モデルに 84
  68. 基本的にSVRは線形の回帰分析手法 線形の回帰分析手法 • たとえば説明変数が2つのとき、目的変数・説明変数を オートスケーリングしたあと、 と表わされる 85 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 +
  69. 回帰係数 b 回帰係数のベクトル b を とする あるサンプル ( i 番目のサンプル)

    の目的変数の推定値 f (x(i)) は と表わされる 86 [ ] 1 2 m b b b = b L m︓説明変数(記述⼦)の数 ( ) ( ) ( ) i i f = x x b x(i)︓あるサンプル ( i 番目の サンプル) の説明変数 (記述⼦)
  70. 非線形の回帰モデルへ 87 線形回帰モデル (元の空間) ︓ 非線形回帰モデル関数 (高次元空間)︓ 高次元空間への写像 (非線形写像)︓ (

    ) φ → x x ( ) ( ) ( ) i i f = x x b ( ) ( ) ( ) ( ) i i f c φ = + x x w [ ] 1 2 k w w w = w L c︓定数項 wi ︓重み k︓高次元空間での次元数 wi , k は、とりあえずこのように設定しておくだけで、 後に考えなくてもよくなるため、気にしなくて問題ない
  71. SVMとSVRとの比較 SVM SVR 88 2 1 1 2 n i

    i C ξ = + ∑ w の最⼩化 マージンの最大化 (重みの最⼩化) 誤分類するサンプル数の 最⼩化 (誤差の最⼩化) ( ) ( ) ( ) ( ) 2 1 1 2 n i i i C h y f = + − ∑ w x の最⼩化 重みの最⼩化 誤差の最⼩化 h︓誤差関数 C : 2つの項のバランスを決める係数 n︓モデル構築用サンプル数
  72. SVRの誤差関数 89 ( ) ( ) ( ) ( )

    ( ) ( ) ( ) ( ) max 0, i i i i h y f y f ε − = − − x x 0 ( ) ( ) ( ) i i y f − x ( ) ( ) ( ) ( ) i i h y f − x –ε ε 誤差の不感帯・・・εチューブと呼ぶ –ε ≦ 誤差 ≦ ε のとき、誤差 = 0 となる 誤差
  73. スラック変数 SVMと同様にスラック変数 ξ, ξ* を導入 90 ( ) ( )

    ( ) ( ) ( ) ( ) i i i i i i y f ξ y f ξ ε ε ∗ ≤ + + ≥ − − x x ただし、 0 0 i i ξ ξ ∗ ≥ ≥ f(x) x f(x) - ε y f(x)+ε ε ξi > 0 ξi > 0 ξi * > 0 ξi * > 0 ( ) ( ) ( ) ( ) 2 1 1 2 n i i i C h y f = + − ∑ w x ( ) 2 1 1 2 n i i i C ξ ξ ∗ = + + ∑ w ξi = 0
  74. Lagrangeの未定乗数法 ラグランジュ乗数 αi 、αi *、βi 、βi * ( i =1,

    2, ..., n ) を導入 92 ( ) ( ) ( ) ( ) ( ) ( ) 2 1 1 ( ) ( ) 1 1 1 2 n n i i i i i i i i n n i i i i i i i i i i G C ξ ξ C ξ ξ ξ f y ξ f y β β α ε α ε ∗ ∗ ∗ = = ∗ ∗ = = = + + − + − + + − − + − + ∑ ∑ ∑ ∑ w x x w、b、ξi 、ξi * に関してGを最⼩化し、αi 、αi *、βi 、βi *に関してGを最大化 w、b、ξi 、ξi * に関してGが極小 G を w、b、ξi 、ξi * それぞれで偏微分して 0 とする
  75. 偏微分して0 93 ( ) ( )T ( ) 1 n

    i i i i α α φ ∗ = = − ∑ w x ( ) 1, 2, , i i C i n α β + = = K ( ) 1 0 n i i i α α ∗ = − = ∑ G を w で偏微分して0 G を b で偏微分して0 G を ξi で偏微分して0 これらを使って G を変形すると・・・ G を ξi * で偏微分して0 ( ) 1, 2, , i i C i n α β ∗ ∗ + = = K
  76. G の変形 94 ( )( ) ( ) ( )

    ( ) ( ) ( ) 1 1 1 1 1 , 2 n n i j i i j j i j n n i i i i i i i G K y α α α α ε α α α α ∗ ∗ = = ∗ ∗ = = = − − − − + + − ∑∑ ∑ ∑ x x ( ) ( ) ( )T ( ) ( ) ( ) ( ) , i j i j K φ φ = x x x x K︓カーネル関数
  77. カーネル関数の例 線形カーネル ガウシアンカーネル (使われることが多い) 多項式カーネル 95 ( ) ( )

    ( ) ( ) ( )T , i j i j K = x x x x ( ) ( ) 2 ( ) ( ) 2 ( ) ( ) ( ) ( ) 2 , exp exp 2 i j i j i j K γ σ   −   = − = − −     x x x x x x ( ) ( ) ( ) ( ) ( ) ( )T , 1 d i j i j K λ = + x x x x
  78. α を求める 96 ( )( ) ( ) ( )

    ( ) ( ) ( ) 1 1 1 1 1 , 2 n n i j i i j j i j n n i i i i i i i G K y α α α α ε α α α α ∗ ∗ = = ∗ ∗ = = = − − − − + + − ∑∑ ∑ ∑ x x αi 、αi *、βi 、βi *はLagrange定数 αi ≧0、αi *≧0、βi ≧0、βi *≧0 ( ) 1, 2, , i i C i n α β + = = K ( ) 1, 2, , i i C i n α β ∗ ∗ + = = K p.10より αi ≦C、αi *≦C
  79. 二次計画問題 97 ( )( ) ( ) ( ) (

    ) ( ) ( ) 1 1 1 1 1 , 2 n n i j i i j j i j n n i i i i i i i G K y α α α α ε α α α α ∗ ∗ = = ∗ ∗ = = = − − − − + + − ∑∑ ∑ ∑ x x 制約 G を αi に対して最大化する二次計画問題を解くと αi , αi * が求まる 0 , 0 * i i C C α α ≤ ≤ ≤ ≤ のもとで、
  80. SVRの回帰式 98 ( ) ( ) ( ) ( )

    j j f c φ = + x x w ( ) ( )T ( ) 1 n i i i i α α φ ∗ = = − ∑ w x (p.10) ( ) ( ) ( ) ( ) ( ) ( )T ( ) 1 n j j i i i i f c α α φ φ ∗ = = − + ∑ x x x ( ) ( ) ( )T ( ) ( ) ( ) ( ) , i j i j K φ φ = x x x x より、 ( ) ( ) ( ) ( ) ( ) (i) 1 , n j j i i i f K c α α ∗ = = − + ∑ x x x ・・・ αi , αi * は求まっているため、SVRの回帰式も求まる
  81. サポートベクターとは 99 εチューブ内 (誤差の絶対値が ε 未満) のサンプル SVRの回帰式に寄与しない αi -

    αi * = 0 εチューブ上 (誤差の絶対値が ε ) のサンプル αi - αi * ≠ 0 εチューブ外 (誤差の絶対値が ε 以上) のサンプル これらのサンプルでSVRの回帰式がつくられる サポートベクター
  82. SVRのまとめ・特徴 100 f(x) x f(x)-ε y f(x)+ε ノイズに強いモデル カーネル関数 K

    非線形回帰モデル ε チューブ 誤差 0 αi , αi *の決定 αi , αi *の範囲 モデルの複雑度を調整 SVRの回帰式 0 0 * i i C C α α ≤ ≤ ≤ ≤ ( ) ( ) ( ) ( ) ( ) (i) 1 , n j j i i i f K c α α ∗ = = − + ∑ x x x ( ) ( ) 2 ( ) ( ) ( ) ( ) , exp i j i j K γ = − − x x x x
  83. C, ε, γ の決め方 グリッドサーチによって、クロスバリデーションの後の r2 の値が もっとも高い C, ε,

    γ (ガウシアンカーネル) の組み合わせとする • C の候補の例: 2-5, 2-4, …, 29, 210 • ε の候補の例: 2-10, 2-9, …, 2-1, 20 • γ の候補の例: 2-20, 2-19, …, 29, 210 101
  84. Stepwise法の種類 変数増加法 (forward stepwise) • 説明変数なしからはじめて、1つずつ説明変数を増やす 変数減少法 (backward stepwise) •

    すべての説明変数からはじめて、1つずつ説明変数を減らす 変数増減法 (forward-backward stepwise) • 説明変数なしからはじめて、1つずつ説明変数を 増やすか減らすかする 変数減増法 (backward-forward stepwise) • すべての説明変数からはじめて、1つずつ説明変数を 増やすか減らすかする 104
  85. 評価指標 (最⼩二乗法による重回帰分析用) 1/2 Mallows's Cp • ⼩さいほど良い 106 2 2

    p SSE C n m S = − + n︓サンプル数 m : 回帰モデルを構築した 説明変数の数 S2 : すべての説明変数を用いて 回帰分析を⾏ったときの 誤差の二乗の平均 y(i)︓i 番目のサンプルにおける 目的変数の値 yEST (i)︓i 番目のサンプルにおける 目的変数の推定値 ( )2 ( ) ( ) EST 1 n i i i SSE y y = = − ∑ 
  86. 評価指標 (最⼩二乗法による重回帰分析用) 2/2 赤池情報量規準 (Akaike’s Information Criterion, AIC) • ⼩さいほど良い

    Bayesian Information Criterion (BIC) • ⼩さいほど良い 107 ( ) log log SSE BIC m n m m   = +     log 2 SSE AIC m m   = +    
  87. 評価指標 (任意の回帰分析手法で使える) RMSECV ︓クロスバリデーション後のRoot Mean Squared Error • ⼩さいほど良い MAECV

    ︓クロスバリデーション後のMean Absolute Error (MAE) • ⼩さいほど良い 108 ( )2 ( ) ( ) CVEST 1 n i i i CV y y RMSE n = − = ∑  yCVEST (i)︓i 番目のサンプルにおける クロスバリデーション後の 目的変数の推定値 ( ) ( ) CVEST 1 n i i i CV y y MAE n = − = ∑ 
  88. scikit-learn を使う方へ 1/2 OLS,PLS︓sklearn.cross_decomposition.PLSRegression • PLSで最大成分数まで計算するとOLSです LDA︓sklearn.discriminant_analysis.LinearDiscriminantAnalysis SVM︓sklearn.svm.SVC SVR︓sklearn.svm.SVR •

    クロスバリデーション+グリッドサーチ︓sklearn.grid_search.GridSearchCV DT︓sklearn.tree.DecisionTreeRegressor sklearn.tree.DecisionTreeClassifier RF︓sklearn.ensemble.RandomForestRegressor, sklearn.ensemble.RandomForestClassifier 112
  89. 参考資料 最⼩二乗法による重回帰分析 [1,2,4] Partial Least Squares (PLS) [1,2,3] 線形判別分析 (Linear

    Discriminant Analysis, LDA) [4,6] Support Vector Machine (SVM) [2,5] Support Vector Regression (SVR) [5] 決定木 (Decision Tree, DT) [7] ランダムフォレスト (Random Forests, RF) [7,8] リッジ回帰 (Ridge Regression, RR) [9] Least Absolute Shrinkage and Selection Operator(LASSO) [9] Elastic Net (EN) [9] 114 [1] 宮下芳勝・佐々木慎一,コンピュータ・ケミストリー シリーズ3 ケモメトリックス-化学パターン認識と多変量解析-,共立出版 (1995) [2] 船津公人・金子弘昌, ソフトセンサー入門~基礎から実用的研究例まで~, コロナ社 (2014) [3] S. Wold, et. al., Chemom. Intell. Lab. Syst., 58, 109–130, 2001. [4] C.M. ビショップ,パターン認識と機械学習 上, 丸善出版 (2012) [5] C.M. ビショップ,パターン認識と機械学習 下, 丸善出版 (2012) [6] 金 明哲, 金森 敬文, 竹之内 高志, 村田 昇, Rで学ぶデータサイエンス〈5〉パターン認識, 共立出版 (2009) [7] 金 明哲, Rによるデータサイエンス~データ解析の基礎から最新手法まで~, 森北出版 (2007) [8] L. Breiman, “Random Forests”, Machine Learning, 45, 5–32, 2001 [9] Jared P. Lander, みんなのR -データ分析と統計解析の新しい教科書-, マイナビ (2015)