Python機械学習プログラミング
読み会
第7章
アンサンブル学習 - 異なるモデルの組み合わせ
1
[第2版]
基盤 江口春紀
目次
● アンサンブルによる学習
● 多数決による分類器の結合
● アンサンブル分類器の評価とチューニング
● バギング:ブートストラップ標本を使った分類器アンサンブルの構築
● アダブーストによる弱学習器の活用
2
3
アンサンブルによる学習
アンサンブルによる学習
● アンサンブル法(ensemble method)
● 複数の分類器を用意して、それらの予測結果を統合して汎化性能を高める
● 多数決で決定(分類器の大多数、つまり過半数によって予測されるクラスが選択される)
4
分類器
未知データ
人間
分類器1
分類器2
分類器3
分類器4
ネコ
ネコ
ネコ
人間
未知データ
アンサンブルによる学習
● アンサンブル法の手順
1. m個の分類器(C1~Cm)のトレーニングを行う
2. 個々の分類器で予測されたラベルをまとめ、
最も得票の多いクラスラベルを選択
5
アンサンブルによる学習
● 単体の分類器よりアンサンブル法の方が汎化性能が高くなる理由
● アンサンブル法の誤分類率 (誤分類する分類器の個数 yがk個より多くなる確率)
6
アンサンブルの誤分類率は個々の誤分類率よりもはるかに小さくなる
アンサンブルによる学習
● 単体の分類器よりアンサンブル法の方が汎化性能が高くなる理由
● ベース分類器の性能が当て推量より
高い限り、アンサンブル法の誤分類
率は個々のベース分類器の誤分類率
よりも常に低くなる
7
n=11
8
多数決による分類器の結合
多数決による分類器の結合
● 単純な多数決分類器の実装(クラスラベル)
● 重み付きの多数決
ここでC3の重みを0.6、C1とC2の重みを0.2にしてみると、
となり、クラス1に属するという予測になる。これは次のように記述できる。
9
重みが等しい場合
多数決による分類器の結合
● 単純な多数決分類器の実装(クラスの確率)
● 例
10
多数決の原理に基づいた予測
● データセット
● Irisデータセットの「がく片の長さ」と「花びらの長さ」を使用
● サンプルの50%をトレーニング、残りの 50%をテストに使用
● 分類器
● ロジスティック回帰
● 決定木
● k近傍
● 性能指標
● ROC曲線の曲線下面積
11
多数決の原理に基づいた予測
● 各分類器の性能を事前に評価する
12
ROC AUC: 0.87 (+/- 0.17) [Logistic regression]
ROC AUC: 0.89 (+/- 0.16) [Decision tree]
ROC AUC: 0.88 (+/- 0.15) [KNN]
多数決の原理に基づいた予測
● 各分類器の性能を事前に評価する
13
ROC AUC: 0.87 (+/- 0.17) [Logistic regression]
ROC AUC: 0.89 (+/- 0.16) [Decision tree]
ROC AUC: 0.88 (+/- 0.15) [KNN]
ROC AUC: 0.94 (+/- 0.13) [Majority voting]
14
アンサンブル分類器の
評価とチューニング
アンサンブル分類器の評価とチューニング
● テストデータセットを使用して汎化性能を測定
● ROC曲線をプロットするとテストデータセットでも
十分な性能を発揮していることがわかる
(AUC=0.95)
15
アンサンブル分類器の評価とチューニング
● 決定境界のプロット
● 今回の学習ではIrisデータセットの特徴量を 2つしか使っていないので、
2次元のグラフにプロットする
● 多数決分類の決定境界は、
決定木とk近傍に一部似ている
ことがわかる
16
17
バギング:
ブートストラップ標本を使った
分類器アンサンブルの構築
バギング:ブートストラップ標本を使った分類器アンサンブルの構築
● バギング
● アンサンブル学習法の 1つ
● アンサンブルを構成する個々の分類器
の学習に、ブートストラップ標本を抽出
して使う
18
バギングを使ってWineデータセットのサンプルを分類
● データセット
● Wineデータセットの「Alcohol」と
「OD280/OD315 of diluted wines」
の2つの特徴量を使用
● サンプルの80%をトレーニング、
残りの20%をテストに使用
19
Decision tree train/test accuracies 1.000/0.833
Bagging train/test accuracies 1.000/0.917
剪定されていない決定木は過学習で
あることがわかり、汎化性能を比較すると
バギング分類器の方がわずかに
良いことがわかる
500個の決定木でアンサンブル
バギングを使ってWineデータセットのサンプルを分類
● 決定境界をプロット
20
21
アダブーストによる弱学習器の活用
アダブーストによる弱学習器の活用
● ブースティング
● 分類の難しいトレーニングサンプルに焦点を当てて学習を行う。
つまり、誤分類されたトレーニングデータを弱学習器で学習しなおして、
アンサンブルの性能を向上させる
● アダブーストは、ブースティングアルゴリズムのうちの 1つ
22
ブースティングの仕組み
● アダブースト
● データセット全体を使って学習を行う。イテレーションの度に、重みを付け直し
学習済みの弱学習器の誤答から学習する、強学習器を構築する。
23
誤分類したサンプルの重みを大きくする
ブースティングの仕組み
● もう少し詳細にみると...
1. トレーニングサンプルの重みを次のように定義する。
2. m回実行するブースティングは、以下の手順を繰り返す。
a. 重み付けされた弱学習器 Cjをトレーニングする。
b. クラスラベル を予測する。
c. 重み付けされた誤分類率 εを計算する。
d. 重みの更新に用いる係数 αjを計算する。
e. 重みを更新する。
f. 重みを正規化して合計が 1になるようにする。
3. 入力Xに対する最終予測 を計算する。重みαjで
予測結果を重み付けた平均からラベルを予測する。
24
ブースティングの仕組み
● 具体的な例
25
x<=3を決定境界とした決定株を
仮定している
予測を外したサンプル
の重みが大きくなる
アダブーストの実装
● データセット
● Wineデータセットの「Alcohol」と
「OD280/OD315 of diluted wines」
の2つの特徴量を使用
● サンプルの80%をトレーニング、
残りの20%をテストに使用
● 500個の決定株でトレーニング
26
Decision tree train/test accuracies 0.916/0.875
AdaBoost train/test accuracies 1.000/0.917
アダブーストの実装
● 決定境界をプロット
27
まとめ
● アンサンブル学習
● 様々なモデルを組み合わせて、個々のモデルの弱点を補い合う
● バギング
● ブートストラップ標本を使い複数のモデルで多数決を行う
● アダブースト
● 弱学習器によって誤答を修正していく
● アンサンブル学習のデメリット
● 個々の分類器と比べて計算の複雑さが増すので、予測性能の改善にどれだけの
計算コストの増加が許容できるかを検討する必要がある
28

More Related Content

PDF
[第2版]Python機械学習プログラミング 第8章
PDF
人工知能11 カーネルモデル
PPTX
[DL Hacks]tensorflow/privacy 使ってみた
PDF
Pythonによる機械学習入門 ~Deep Learningに挑戦~
PDF
DNAマイクロアレイの解析と多重検定補正
PPTX
異常検知と変化検知の1~3章をまとめてみた
PPTX
Python基礎その2
PDF
ベイジアンネットワーク入門
[第2版]Python機械学習プログラミング 第8章
人工知能11 カーネルモデル
[DL Hacks]tensorflow/privacy 使ってみた
Pythonによる機械学習入門 ~Deep Learningに挑戦~
DNAマイクロアレイの解析と多重検定補正
異常検知と変化検知の1~3章をまとめてみた
Python基礎その2
ベイジアンネットワーク入門

What's hot (20)

PDF
フリーソフトウェアを通じた多変量解析講習
PPTX
MIRU2014 tutorial deeplearning
PDF
固有顔による生体認証
PDF
クラシックな機械学習の入門  11.評価方法
PPTX
[DL輪読会]FOTS: Fast Oriented Text Spotting with a Unified Network
PDF
論文紹介:Masked Vision and Language Modeling for Multi-modal Representation Learning
PDF
機械学習で嘘をつく話
PPTX
Visual Studio CodeでRを使う
PDF
因果推論の奥へ: "What works" meets "why it works"
PDF
物体検知(Meta Study Group 発表資料)
PPTX
Python基礎その1
PDF
企業の中の経済学
PPTX
データサイエンス概論第一=4-2 確率と確率分布
PPTX
画像処理AIを用いた異常検知
PDF
[第2版] Python機械学習プログラミング 第4章
PDF
心理学/認知科学者のための人工知能概論
PPTX
人間の意思決定を機械学習でモデル化できるか
PDF
13 分類とパターン認識
PPTX
観察研究の質の評価
PDF
夏のトップカンファレンス論文読み会 / Realtime Multi-Person 2D Pose Estimation using Part Affin...
フリーソフトウェアを通じた多変量解析講習
MIRU2014 tutorial deeplearning
固有顔による生体認証
クラシックな機械学習の入門  11.評価方法
[DL輪読会]FOTS: Fast Oriented Text Spotting with a Unified Network
論文紹介:Masked Vision and Language Modeling for Multi-modal Representation Learning
機械学習で嘘をつく話
Visual Studio CodeでRを使う
因果推論の奥へ: "What works" meets "why it works"
物体検知(Meta Study Group 発表資料)
Python基礎その1
企業の中の経済学
データサイエンス概論第一=4-2 確率と確率分布
画像処理AIを用いた異常検知
[第2版] Python機械学習プログラミング 第4章
心理学/認知科学者のための人工知能概論
人間の意思決定を機械学習でモデル化できるか
13 分類とパターン認識
観察研究の質の評価
夏のトップカンファレンス論文読み会 / Realtime Multi-Person 2D Pose Estimation using Part Affin...
Ad

More from Haruki Eguchi (15)

PDF
[第2版]Python機械学習プログラミング 第16章
PDF
[第2版]Python機械学習プログラミング 第15章
PDF
[第2版]Python機械学習プログラミング 第14章
PDF
[第2版]Python機械学習プログラミング 第13章
PDF
[第2版]Python機械学習プログラミング 第12章
PPTX
[第2版]Python機械学習プログラミング 第11章
PPTX
[第2版]Python機械学習プログラミング 第12章
PPTX
[第2版]Python機械学習プログラミング 第10章
PPTX
[第2版]Python機械学習プログラミング 第9章
PDF
[第2版]Python機械学習プログラミング 第6章
PDF
[第2版] Python機械学習プログラミング 第5章
PDF
[第2版] Python機械学習プログラミング 第3章(5節~)
PDF
[第2版] Python機械学習プログラミング 第3章(~4節)
PDF
[第2版] Python機械学習プログラミング 第2章
PDF
[第2版] Python機械学習プログラミング 第1章
[第2版]Python機械学習プログラミング 第16章
[第2版]Python機械学習プログラミング 第15章
[第2版]Python機械学習プログラミング 第14章
[第2版]Python機械学習プログラミング 第13章
[第2版]Python機械学習プログラミング 第12章
[第2版]Python機械学習プログラミング 第11章
[第2版]Python機械学習プログラミング 第12章
[第2版]Python機械学習プログラミング 第10章
[第2版]Python機械学習プログラミング 第9章
[第2版]Python機械学習プログラミング 第6章
[第2版] Python機械学習プログラミング 第5章
[第2版] Python機械学習プログラミング 第3章(5節~)
[第2版] Python機械学習プログラミング 第3章(~4節)
[第2版] Python機械学習プログラミング 第2章
[第2版] Python機械学習プログラミング 第1章
Ad

[第2版]Python機械学習プログラミング 第7章