SlideShare a Scribd company logo
1 of 29
Rで学ぶデータサイエンス
   パターン認識
     第14章

  集団学習

    降旗啓
集団学習
強力な判別器1個作って、判別させるより、
弱学習器(決定木とか)を複数組み合わせて精
度を上げる!!



 ・コストが低い!(必要とするデータ量、学習時間)
 ・精度、汎化能力高い!
 ・欠損地を持つデータでも有効に作動
他手法との比較




          ちなみにこれは
          「Random Forest」
          集団学習一種
          今回は割愛。
(まずは)2値判別アルゴリズム


  バギング
 (bagging)

ブースティング
 (boosting)
(まずは)2値判別アルゴリズム


  バギング
 (bagging)

ブースティング
 (boosting)
バギング
Bootstrap AGGregatING
      ブートストラップで弱学習器を集めるアルゴ
ブートストラップ法(ノンパラメトリッ
      リズム
        ク版)        ブートストラップ小さな標本から得られた
                  母数の推定値の誤差を推定することが可能
         母集団      になり,その精度を調べることができ
                  る!!
 ランダム
 サンプリン
 グ
標本                 標本を擬似母集団と考えて
リサンプリング             B回(適当に定める)復元抽出を行
                    う そこから
 ブ                    ブートストラップ推定量を求める
 ー
 ト
本ス
 ラ
 ッ
 プ
 標
バギング




       標本

       リサンプリング


     ブ
     ー
     ト
    本ス
     ラ
     ッ
     プ
     標

判別問題・・・多数決               回帰問題・・・平均
(各弱学習器に標本をぶちこんで,各サンプルに   (各弱学習器に標本をぶちこんで,各サンプルに
つ                         ついて出力されたラベルを平均する)
 いて もっとも多いラベルを正しいラベルと
みなす)
バギング

        んで、どのくらい優秀になった?




 つまりバギング後、

       弱学習器平均の標本推定値とのばらつき
                          の
 分だけ 誤差尐ない!
バギング

        バギングの特徴

• 過学習を起こしやすかったり、局所解に
  陥りやすいものほど効果高い(出力の平
  均化)
• ブースティングと違って、弱学習器が事
  例を重み付け出来なくても適用でき容易
• それぞれの学習器が独立(並列に実行
  可)
  ➝貧弱な学習器の強化には向かない。
     (ex. 天気予報50%であてるモデルを
いくら
2値判別の    典型的なアルゴリズム


          バギング
         (bagging)
そこで!

        ブースティング
         (boosting)
ブースティン
グ
         ブースティング

• 各試行を独立じゃなくする

• 弱学習器を追加する際、逐次的に学習さ
  せる。
• 並列化が困難

    2値判別・・・アダブースト、Uブース
ト
    多値判別・・・アダブーストM1、
             アダブーストM2
他手法との比較




          ちなみにこれは
          「Random Forest」
          集団学習一種
          今回は割愛。
ブースティン
グ
 アダブースト・Uブースト              のイ
       メージ




   間違ったものに敏感になる弱学習器を作ってく
アダブースト      アルゴリズ
ム
・初期化               重み



    ・step1[fの決定]
T
回
繰
り   ・step2[αの計算]
返
す

    ・step3[重み更
    新]


・出
力
Uブースト

・アダブーストを一般化したもの
・U関数を導入しロス関数を逐次的最小化




                     (Uは凸な単調増加関数)


                        アダブーストと等価
                        ロジットブーストと等価
        3.マダブースト
        4.イーターブースト
Uブースト      アルゴリズム
                    アダブーストとほぼいっしょ

・初期化


T
回                      アダブースト
繰
り   ・step2[αの計算]
返
す




 ・step4[重み更
 新]
・出
力
2値から多値へ

• アダブースト、Uブーストは2値で定義し
  てた

• アダブーストM.1、アダブーストM.2とい
  う
  は多値で定義したアルゴリズム

• M.1はアダブーストを2値からG値にしただ
アダブーストM.1      アルゴリズム

・初期化

    ・step1[fの決定]
T
回
繰
り   ・step2[αの計算]
返
す

 ・step3[重み更
 新]
・出
力
    !ポイント! 重み付き誤り率>0,5になることもある
           重み付き誤り率≧0.5のときは使えない!
        それなりに“強い”弱学習器でないとだめ・・・
M.1    微妙・・・
ex.晴れ、雨、雪の3ラベルの場合
  2値だったら,「晴れ40%」の弱い学習器が「雨60%」の弱学習器とでき
た。
  しかし!3値になった瞬間、「晴れ40%」は依然弱いまま・・・
 でも要求は重み付き誤り率0.5より小・・・
      1つ1つの判別器を多尐ゆとりをもたせて考慮.
      クラス集合に収まる?収まらない?として,2値判別として考える.



M.2    どや!

ex.晴れ、雨、雪の3ラベルの場合
    「晴れ」「晴れ以外」,「雨」「雨以外」,「雪」「雪以外」と考えれ
ば
    2値で考えられる!
アダブーストM.2 アルゴリズム
                             True? or false?
               弱学習器改め、 「弱仮
               説」
・初期化


T
回
繰
り   ・step2[αの計算]
返
す




 ・step4[重み更
 新]
・出                      やってることはいっしょ
                        より正確な判別器を選んで
力                       不正解に敏感になるように重み更新
Rで実装
パッケージ

○バギング
   ・adabag
  ・ipred
○ブースティング
   ・ada
  ・adabag
○ランダムフォレスト
   ・randomForest
Adabagパッケージ
• バギングとブースティングが実装されて
  る
• 弱学習器として決定木(rpartパッケー
  ジ)
• 関数
    ・bagging
   ・boosting
bagging関数
boosting
バギング(adabag)
> library(kernlab)
> data(spam)
> set.seed(50)
> tr.num<-sample(4601,2500)
> spam.train<-spam[tr.num,]
> spam.test<-spam[-tr.num,]
> library(adabag)
> spam.bag<-bagging(type~.,data=spam.train)
> spam.predict<-predict(spam.bag,spam.test)
> 1-spam.predict$error
[1] 0.9057592
 予測誤差 正判別率%
アダブースト(adabag)
> library(rpart)
> library(adabag)
> data <- iris
> ndata <- nrow(data)
> set.seed(101)
> ridx <- sample(ndata, ndata * 0.5)
> data.train <- data[ridx,]
> data.test <- data[-ridx,]
> data.adaCv <- boosting(Species ~ .,data
= data.train, mfinal = 10)
> resultPredict <- predict(data.adaCv,
newdata = data.test, type="class")
> resultPredict
$confusion
Observed Class
Predicted Class setosa versicolor virginica
setosa 26 0 0
versicolor 0 17 3
virginica 0 1 28

$error
[1] 0.05333333


予測誤差:5%

More Related Content

What's hot

誤差逆伝播法の計算(ディープラーニング)
誤差逆伝播法の計算(ディープラーニング)誤差逆伝播法の計算(ディープラーニング)
誤差逆伝播法の計算(ディープラーニング)t dev
 
Fisher線形判別分析とFisher Weight Maps
Fisher線形判別分析とFisher Weight MapsFisher線形判別分析とFisher Weight Maps
Fisher線形判別分析とFisher Weight MapsTakao Yamanaka
 
パターン認識 04 混合正規分布
パターン認識 04 混合正規分布パターン認識 04 混合正規分布
パターン認識 04 混合正規分布sleipnir002
 
深層学習と活性化関数
深層学習と活性化関数深層学習と活性化関数
深層学習と活性化関数spade630
 
TokyoNLP#7 きれいなジャイアンのカカカカ☆カーネル法入門-C++
TokyoNLP#7 きれいなジャイアンのカカカカ☆カーネル法入門-C++TokyoNLP#7 きれいなジャイアンのカカカカ☆カーネル法入門-C++
TokyoNLP#7 きれいなジャイアンのカカカカ☆カーネル法入門-C++sleepy_yoshi
 
はじめてのパターン認識輪読会 10章後半
はじめてのパターン認識輪読会 10章後半はじめてのパターン認識輪読会 10章後半
はじめてのパターン認識輪読会 10章後半koba cky
 
PoisoningAttackSVM (ICMLreading2012)
PoisoningAttackSVM (ICMLreading2012)PoisoningAttackSVM (ICMLreading2012)
PoisoningAttackSVM (ICMLreading2012)Hidekazu Oiwa
 
Practical recommendations for gradient-based training of deep architectures
Practical recommendations for gradient-based training of deep architecturesPractical recommendations for gradient-based training of deep architectures
Practical recommendations for gradient-based training of deep architecturesKoji Matsuda
 
第8章 ガウス過程回帰による異常検知
第8章 ガウス過程回帰による異常検知第8章 ガウス過程回帰による異常検知
第8章 ガウス過程回帰による異常検知Chika Inoshita
 
PRML 4.1 Discriminant Function
PRML 4.1 Discriminant FunctionPRML 4.1 Discriminant Function
PRML 4.1 Discriminant FunctionShintaro Takemura
 
ゼロから始める深層強化学習(NLP2018講演資料)/ Introduction of Deep Reinforcement Learning
ゼロから始める深層強化学習(NLP2018講演資料)/ Introduction of Deep Reinforcement Learningゼロから始める深層強化学習(NLP2018講演資料)/ Introduction of Deep Reinforcement Learning
ゼロから始める深層強化学習(NLP2018講演資料)/ Introduction of Deep Reinforcement LearningPreferred Networks
 
機械学習と深層学習の数理
機械学習と深層学習の数理機械学習と深層学習の数理
機械学習と深層学習の数理Ryo Nakamura
 
SVM実践ガイド (A Practical Guide to Support Vector Classification)
SVM実践ガイド (A Practical Guide to Support Vector Classification)SVM実践ガイド (A Practical Guide to Support Vector Classification)
SVM実践ガイド (A Practical Guide to Support Vector Classification)sleepy_yoshi
 
Or seminar2011final
Or seminar2011finalOr seminar2011final
Or seminar2011finalMikio Kubo
 
PRML復々習レーン#7 前回までのあらすじ
PRML復々習レーン#7 前回までのあらすじPRML復々習レーン#7 前回までのあらすじ
PRML復々習レーン#7 前回までのあらすじsleepy_yoshi
 

What's hot (20)

誤差逆伝播法の計算(ディープラーニング)
誤差逆伝播法の計算(ディープラーニング)誤差逆伝播法の計算(ディープラーニング)
誤差逆伝播法の計算(ディープラーニング)
 
Fisher線形判別分析とFisher Weight Maps
Fisher線形判別分析とFisher Weight MapsFisher線形判別分析とFisher Weight Maps
Fisher線形判別分析とFisher Weight Maps
 
パターン認識 04 混合正規分布
パターン認識 04 混合正規分布パターン認識 04 混合正規分布
パターン認識 04 混合正規分布
 
FOBOS
FOBOSFOBOS
FOBOS
 
深層学習と活性化関数
深層学習と活性化関数深層学習と活性化関数
深層学習と活性化関数
 
TokyoNLP#7 きれいなジャイアンのカカカカ☆カーネル法入門-C++
TokyoNLP#7 きれいなジャイアンのカカカカ☆カーネル法入門-C++TokyoNLP#7 きれいなジャイアンのカカカカ☆カーネル法入門-C++
TokyoNLP#7 きれいなジャイアンのカカカカ☆カーネル法入門-C++
 
はじめてのパターン認識輪読会 10章後半
はじめてのパターン認識輪読会 10章後半はじめてのパターン認識輪読会 10章後半
はじめてのパターン認識輪読会 10章後半
 
PoisoningAttackSVM (ICMLreading2012)
PoisoningAttackSVM (ICMLreading2012)PoisoningAttackSVM (ICMLreading2012)
PoisoningAttackSVM (ICMLreading2012)
 
Practical recommendations for gradient-based training of deep architectures
Practical recommendations for gradient-based training of deep architecturesPractical recommendations for gradient-based training of deep architectures
Practical recommendations for gradient-based training of deep architectures
 
Python opt
Python optPython opt
Python opt
 
第8章 ガウス過程回帰による異常検知
第8章 ガウス過程回帰による異常検知第8章 ガウス過程回帰による異常検知
第8章 ガウス過程回帰による異常検知
 
PRML 4.1 Discriminant Function
PRML 4.1 Discriminant FunctionPRML 4.1 Discriminant Function
PRML 4.1 Discriminant Function
 
ゼロから始める深層強化学習(NLP2018講演資料)/ Introduction of Deep Reinforcement Learning
ゼロから始める深層強化学習(NLP2018講演資料)/ Introduction of Deep Reinforcement Learningゼロから始める深層強化学習(NLP2018講演資料)/ Introduction of Deep Reinforcement Learning
ゼロから始める深層強化学習(NLP2018講演資料)/ Introduction of Deep Reinforcement Learning
 
機械学習と深層学習の数理
機械学習と深層学習の数理機械学習と深層学習の数理
機械学習と深層学習の数理
 
PFI Christmas seminar 2009
PFI Christmas seminar 2009PFI Christmas seminar 2009
PFI Christmas seminar 2009
 
Gurobi python
Gurobi pythonGurobi python
Gurobi python
 
SVM実践ガイド (A Practical Guide to Support Vector Classification)
SVM実践ガイド (A Practical Guide to Support Vector Classification)SVM実践ガイド (A Practical Guide to Support Vector Classification)
SVM実践ガイド (A Practical Guide to Support Vector Classification)
 
Or seminar2011final
Or seminar2011finalOr seminar2011final
Or seminar2011final
 
PRML復々習レーン#7 前回までのあらすじ
PRML復々習レーン#7 前回までのあらすじPRML復々習レーン#7 前回までのあらすじ
PRML復々習レーン#7 前回までのあらすじ
 
More modern gpu
More modern gpuMore modern gpu
More modern gpu
 

Viewers also liked

「はじめてでもわかる RandomForest 入門-集団学習による分類・予測 -」 -第7回データマイニング+WEB勉強会@東京
「はじめてでもわかる RandomForest 入門-集団学習による分類・予測 -」 -第7回データマイニング+WEB勉強会@東京「はじめてでもわかる RandomForest 入門-集団学習による分類・予測 -」 -第7回データマイニング+WEB勉強会@東京
「はじめてでもわかる RandomForest 入門-集団学習による分類・予測 -」 -第7回データマイニング+WEB勉強会@東京Koichi Hamada
 
機会学習ハッカソン:ランダムフォレスト
機会学習ハッカソン:ランダムフォレスト機会学習ハッカソン:ランダムフォレスト
機会学習ハッカソン:ランダムフォレストTeppei Baba
 
トピックモデルを用いた 潜在ファッション嗜好の推定
トピックモデルを用いた 潜在ファッション嗜好の推定トピックモデルを用いた 潜在ファッション嗜好の推定
トピックモデルを用いた 潜在ファッション嗜好の推定Takashi Kaneda
 
はじめてでもわかるベイズ分類器 -基礎からMahout実装まで-
はじめてでもわかるベイズ分類器 -基礎からMahout実装まで-はじめてでもわかるベイズ分類器 -基礎からMahout実装まで-
はじめてでもわかるベイズ分類器 -基礎からMahout実装まで-Naoki Yanai
 
パターン認識 第10章 決定木
パターン認識 第10章 決定木 パターン認識 第10章 決定木
パターン認識 第10章 決定木 Miyoshi Yuya
 
今日から使える! みんなのクラスタリング超入門
今日から使える! みんなのクラスタリング超入門今日から使える! みんなのクラスタリング超入門
今日から使える! みんなのクラスタリング超入門toilet_lunch
 
Simple perceptron by TJO
Simple perceptron by TJOSimple perceptron by TJO
Simple perceptron by TJOTakashi J OZAKI
 
バンディットアルゴリズム入門と実践
バンディットアルゴリズム入門と実践バンディットアルゴリズム入門と実践
バンディットアルゴリズム入門と実践智之 村上
 
SVMについて
SVMについてSVMについて
SVMについてmknh1122
 
ロジスティック回帰の考え方・使い方 - TokyoR #33
ロジスティック回帰の考え方・使い方 - TokyoR #33ロジスティック回帰の考え方・使い方 - TokyoR #33
ロジスティック回帰の考え方・使い方 - TokyoR #33horihorio
 
機械学習チュートリアル@Jubatus Casual Talks
機械学習チュートリアル@Jubatus Casual Talks機械学習チュートリアル@Jubatus Casual Talks
機械学習チュートリアル@Jubatus Casual TalksYuya Unno
 

Viewers also liked (13)

「はじめてでもわかる RandomForest 入門-集団学習による分類・予測 -」 -第7回データマイニング+WEB勉強会@東京
「はじめてでもわかる RandomForest 入門-集団学習による分類・予測 -」 -第7回データマイニング+WEB勉強会@東京「はじめてでもわかる RandomForest 入門-集団学習による分類・予測 -」 -第7回データマイニング+WEB勉強会@東京
「はじめてでもわかる RandomForest 入門-集団学習による分類・予測 -」 -第7回データマイニング+WEB勉強会@東京
 
機会学習ハッカソン:ランダムフォレスト
機会学習ハッカソン:ランダムフォレスト機会学習ハッカソン:ランダムフォレスト
機会学習ハッカソン:ランダムフォレスト
 
トピックモデルを用いた 潜在ファッション嗜好の推定
トピックモデルを用いた 潜在ファッション嗜好の推定トピックモデルを用いた 潜在ファッション嗜好の推定
トピックモデルを用いた 潜在ファッション嗜好の推定
 
はじめてでもわかるベイズ分類器 -基礎からMahout実装まで-
はじめてでもわかるベイズ分類器 -基礎からMahout実装まで-はじめてでもわかるベイズ分類器 -基礎からMahout実装まで-
はじめてでもわかるベイズ分類器 -基礎からMahout実装まで-
 
パターン認識 第10章 決定木
パターン認識 第10章 決定木 パターン認識 第10章 決定木
パターン認識 第10章 決定木
 
今日から使える! みんなのクラスタリング超入門
今日から使える! みんなのクラスタリング超入門今日から使える! みんなのクラスタリング超入門
今日から使える! みんなのクラスタリング超入門
 
Simple perceptron by TJO
Simple perceptron by TJOSimple perceptron by TJO
Simple perceptron by TJO
 
バンディットアルゴリズム入門と実践
バンディットアルゴリズム入門と実践バンディットアルゴリズム入門と実践
バンディットアルゴリズム入門と実践
 
決定木学習
決定木学習決定木学習
決定木学習
 
SVMについて
SVMについてSVMについて
SVMについて
 
ロジスティック回帰の考え方・使い方 - TokyoR #33
ロジスティック回帰の考え方・使い方 - TokyoR #33ロジスティック回帰の考え方・使い方 - TokyoR #33
ロジスティック回帰の考え方・使い方 - TokyoR #33
 
一般向けのDeep Learning
一般向けのDeep Learning一般向けのDeep Learning
一般向けのDeep Learning
 
機械学習チュートリアル@Jubatus Casual Talks
機械学習チュートリアル@Jubatus Casual Talks機械学習チュートリアル@Jubatus Casual Talks
機械学習チュートリアル@Jubatus Casual Talks
 

Similar to 第14章集団学習

不均衡データのクラス分類
不均衡データのクラス分類不均衡データのクラス分類
不均衡データのクラス分類Shintaro Fukushima
 
RandomForestとR package
RandomForestとR packageRandomForestとR package
RandomForestとR packageShuma Ishigami
 
【2017年度】勉強会資料_学習に関するテクニック
【2017年度】勉強会資料_学習に関するテクニック【2017年度】勉強会資料_学習に関するテクニック
【2017年度】勉強会資料_学習に関するテクニックRyosuke Tanno
 
One Class SVMを用いた異常値検知
One Class SVMを用いた異常値検知One Class SVMを用いた異常値検知
One Class SVMを用いた異常値検知Yuto Mori
 
LCCC2010:Learning on Cores, Clusters and Cloudsの解説
LCCC2010:Learning on Cores,  Clusters and Cloudsの解説LCCC2010:Learning on Cores,  Clusters and Cloudsの解説
LCCC2010:Learning on Cores, Clusters and Cloudsの解説Preferred Networks
 
2014/5/29 東大相澤山崎研勉強会:パターン認識とニューラルネットワーク,Deep Learningまで
2014/5/29 東大相澤山崎研勉強会:パターン認識とニューラルネットワーク,Deep Learningまで2014/5/29 東大相澤山崎研勉強会:パターン認識とニューラルネットワーク,Deep Learningまで
2014/5/29 東大相澤山崎研勉強会:パターン認識とニューラルネットワーク,Deep LearningまでHokuto Kagaya
 
第五回統計学勉強会@東大駒場
第五回統計学勉強会@東大駒場第五回統計学勉強会@東大駒場
第五回統計学勉強会@東大駒場Daisuke Yoneoka
 
Deep learningbook chap7
Deep learningbook chap7Deep learningbook chap7
Deep learningbook chap7Shinsaku Kono
 
TokyoNLP#5 パーセプトロンで楽しい仲間がぽぽぽぽ~ん
TokyoNLP#5 パーセプトロンで楽しい仲間がぽぽぽぽ~んTokyoNLP#5 パーセプトロンで楽しい仲間がぽぽぽぽ~ん
TokyoNLP#5 パーセプトロンで楽しい仲間がぽぽぽぽ~んsleepy_yoshi
 

Similar to 第14章集団学習 (11)

不均衡データのクラス分類
不均衡データのクラス分類不均衡データのクラス分類
不均衡データのクラス分類
 
RandomForestとR package
RandomForestとR packageRandomForestとR package
RandomForestとR package
 
【2017年度】勉強会資料_学習に関するテクニック
【2017年度】勉強会資料_学習に関するテクニック【2017年度】勉強会資料_学習に関するテクニック
【2017年度】勉強会資料_学習に関するテクニック
 
One Class SVMを用いた異常値検知
One Class SVMを用いた異常値検知One Class SVMを用いた異常値検知
One Class SVMを用いた異常値検知
 
LCCC2010:Learning on Cores, Clusters and Cloudsの解説
LCCC2010:Learning on Cores,  Clusters and Cloudsの解説LCCC2010:Learning on Cores,  Clusters and Cloudsの解説
LCCC2010:Learning on Cores, Clusters and Cloudsの解説
 
2014/5/29 東大相澤山崎研勉強会:パターン認識とニューラルネットワーク,Deep Learningまで
2014/5/29 東大相澤山崎研勉強会:パターン認識とニューラルネットワーク,Deep Learningまで2014/5/29 東大相澤山崎研勉強会:パターン認識とニューラルネットワーク,Deep Learningまで
2014/5/29 東大相澤山崎研勉強会:パターン認識とニューラルネットワーク,Deep Learningまで
 
機械学習
機械学習機械学習
機械学習
 
第五回統計学勉強会@東大駒場
第五回統計学勉強会@東大駒場第五回統計学勉強会@東大駒場
第五回統計学勉強会@東大駒場
 
Deep learningbook chap7
Deep learningbook chap7Deep learningbook chap7
Deep learningbook chap7
 
TokyoNLP#5 パーセプトロンで楽しい仲間がぽぽぽぽ~ん
TokyoNLP#5 パーセプトロンで楽しい仲間がぽぽぽぽ~んTokyoNLP#5 パーセプトロンで楽しい仲間がぽぽぽぽ~ん
TokyoNLP#5 パーセプトロンで楽しい仲間がぽぽぽぽ~ん
 
Maeshori missing
Maeshori missingMaeshori missing
Maeshori missing
 

第14章集団学習

  • 1. Rで学ぶデータサイエンス パターン認識 第14章 集団学習 降旗啓
  • 3. 他手法との比較 ちなみにこれは 「Random Forest」 集団学習一種 今回は割愛。
  • 4. (まずは)2値判別アルゴリズム バギング (bagging) ブースティング (boosting)
  • 5. (まずは)2値判別アルゴリズム バギング (bagging) ブースティング (boosting)
  • 6. バギング Bootstrap AGGregatING ブートストラップで弱学習器を集めるアルゴ ブートストラップ法(ノンパラメトリッ リズム ク版) ブートストラップ小さな標本から得られた 母数の推定値の誤差を推定することが可能 母集団 になり,その精度を調べることができ る!! ランダム サンプリン グ 標本 標本を擬似母集団と考えて リサンプリング B回(適当に定める)復元抽出を行 う そこから ブ ブートストラップ推定量を求める ー ト 本ス ラ ッ プ 標
  • 7. バギング 標本 リサンプリング ブ ー ト 本ス ラ ッ プ 標 判別問題・・・多数決 回帰問題・・・平均 (各弱学習器に標本をぶちこんで,各サンプルに (各弱学習器に標本をぶちこんで,各サンプルに つ ついて出力されたラベルを平均する) いて もっとも多いラベルを正しいラベルと みなす)
  • 8. バギング んで、どのくらい優秀になった? つまりバギング後、 弱学習器平均の標本推定値とのばらつき の 分だけ 誤差尐ない!
  • 9. バギング バギングの特徴 • 過学習を起こしやすかったり、局所解に 陥りやすいものほど効果高い(出力の平 均化) • ブースティングと違って、弱学習器が事 例を重み付け出来なくても適用でき容易 • それぞれの学習器が独立(並列に実行 可) ➝貧弱な学習器の強化には向かない。 (ex. 天気予報50%であてるモデルを いくら
  • 10. 2値判別の 典型的なアルゴリズム バギング (bagging) そこで! ブースティング (boosting)
  • 11. ブースティン グ ブースティング • 各試行を独立じゃなくする  • 弱学習器を追加する際、逐次的に学習さ せる。 • 並列化が困難 2値判別・・・アダブースト、Uブース ト 多値判別・・・アダブーストM1、 アダブーストM2
  • 12. 他手法との比較 ちなみにこれは 「Random Forest」 集団学習一種 今回は割愛。
  • 13. ブースティン グ アダブースト・Uブースト のイ メージ 間違ったものに敏感になる弱学習器を作ってく
  • 14. アダブースト アルゴリズ ム ・初期化 重み ・step1[fの決定] T 回 繰 り ・step2[αの計算] 返 す ・step3[重み更 新] ・出 力
  • 15.
  • 16. Uブースト ・アダブーストを一般化したもの ・U関数を導入しロス関数を逐次的最小化 (Uは凸な単調増加関数) アダブーストと等価 ロジットブーストと等価 3.マダブースト 4.イーターブースト
  • 17. Uブースト アルゴリズム アダブーストとほぼいっしょ ・初期化 T 回 アダブースト 繰 り ・step2[αの計算] 返 す ・step4[重み更 新] ・出 力
  • 18. 2値から多値へ • アダブースト、Uブーストは2値で定義し てた • アダブーストM.1、アダブーストM.2とい う は多値で定義したアルゴリズム • M.1はアダブーストを2値からG値にしただ
  • 19. アダブーストM.1 アルゴリズム ・初期化 ・step1[fの決定] T 回 繰 り ・step2[αの計算] 返 す ・step3[重み更 新] ・出 力 !ポイント! 重み付き誤り率>0,5になることもある 重み付き誤り率≧0.5のときは使えない! それなりに“強い”弱学習器でないとだめ・・・
  • 20. M.1 微妙・・・ ex.晴れ、雨、雪の3ラベルの場合 2値だったら,「晴れ40%」の弱い学習器が「雨60%」の弱学習器とでき た。 しかし!3値になった瞬間、「晴れ40%」は依然弱いまま・・・ でも要求は重み付き誤り率0.5より小・・・ 1つ1つの判別器を多尐ゆとりをもたせて考慮. クラス集合に収まる?収まらない?として,2値判別として考える. M.2 どや! ex.晴れ、雨、雪の3ラベルの場合 「晴れ」「晴れ以外」,「雨」「雨以外」,「雪」「雪以外」と考えれ ば 2値で考えられる!
  • 21. アダブーストM.2 アルゴリズム True? or false? 弱学習器改め、 「弱仮 説」 ・初期化 T 回 繰 り ・step2[αの計算] 返 す ・step4[重み更 新] ・出 やってることはいっしょ より正確な判別器を選んで 力 不正解に敏感になるように重み更新
  • 23. パッケージ ○バギング ・adabag ・ipred ○ブースティング ・ada ・adabag ○ランダムフォレスト ・randomForest
  • 24. Adabagパッケージ • バギングとブースティングが実装されて る • 弱学習器として決定木(rpartパッケー ジ) • 関数 ・bagging ・boosting
  • 27. バギング(adabag) > library(kernlab) > data(spam) > set.seed(50) > tr.num<-sample(4601,2500) > spam.train<-spam[tr.num,] > spam.test<-spam[-tr.num,] > library(adabag) > spam.bag<-bagging(type~.,data=spam.train) > spam.predict<-predict(spam.bag,spam.test) > 1-spam.predict$error [1] 0.9057592 予測誤差 正判別率%
  • 28. アダブースト(adabag) > library(rpart) > library(adabag) > data <- iris > ndata <- nrow(data) > set.seed(101) > ridx <- sample(ndata, ndata * 0.5) > data.train <- data[ridx,] > data.test <- data[-ridx,] > data.adaCv <- boosting(Species ~ .,data = data.train, mfinal = 10) > resultPredict <- predict(data.adaCv, newdata = data.test, type="class") > resultPredict
  • 29. $confusion Observed Class Predicted Class setosa versicolor virginica setosa 26 0 0 versicolor 0 17 3 virginica 0 1 28 $error [1] 0.05333333 予測誤差:5%