Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Datamining 4th adaboost

1,747 views

Published on

  • Be the first to comment

Datamining 4th adaboost

  1. 1. データマイニングクラス分類(III) - AdaBoost クロスバリデーション 瀬々 潤 sesejun@is.ocha.ac.jp
  2. 2. クロスバリデーション
  3. 3. 擬似的なテストデータ• 訓練データとテストデータがある,と言ったが多くの例で はテストデータは本当に当てたいもの •本当の予測をするまえに,分類手法の精度を測りたい •治療効果の分からない手術はできないのと同様• 訓練データの一部を,擬似的にテストデータと見なして, 正答率のチェックを行う •擬似的なテストデータを用いることで,正答率の見積も りを出す• 訓練データ全体を使って,訓練データの予測が高くなるよ うに学習させる例をみかけるが,これはオーバーフィット を招くので,訓練データとは独立したテストデータを用意 する必要がある.
  4. 4. クロスバリデーション (交差検証,Cross Validation)• 様々な手法,様々なパラメータのうち,最も正答率の良いルールを 生成する手法&パラメータを求めたい •決定木の枝刈りをどこで止めるか決めたい •AdaBoostのWeakLearnerの数を決めたい •K-最近点分類の,最も良いKを求めたい時,など.• クロスバリデーションを行い,正答率を計算する •元データから複数の訓練データ&テストデータを選び,何度も正 答率を調べる •それらの正答率の平均値を,選んだ手法(変数)の正答率とする • 最も正答率の高い変数の値を最終的に選択する •訓練データ&テストデータの選択方法として,主に,次の2つの 方法がある • n-フォールドクロスバリデーション • Leave-one-out クロスバリデーション
  5. 5. • n-fold cross validation • 与えられたサンプルをn個のグループに均等に分ける • n-1グループを訓練データ,残りの1グループをテスト データとして,正答率を求める • グループをn種類選択し,それぞれ正答率を求める. • 正答率の平均を求める 訓練データ テストデータ3-fold cross validation の例 4 5 2 A 9 3 1 C 1 8 6 7 B 2 4 5 2 A4 4 5 2 A 8 6 7 B 3 8 6 7 B8 6 5 9 3 1 C 9 7 9 3 1 C 8 6 7 B 4 5 2 A 各四角はサンプルを表す 9 3 1 C
  6. 6. • leave-one-out cross validation  • 与えられたn個のサンプルをn個のグループに分けた n-fold cross validationleave-one-out の例 訓練データ テストデータ 1 1 2 3 4 5 6 7 8 9 2 4 1 2 3 4 5 6 7 9 8 3 8 6 1 2 3 4 5 6 8 9 7 5 9 7 1 2 3 4 5 7 8 9 6 1 2 3 4 6 7 8 9 5 1 2 3 5 6 7 8 9 4 1 2 4 5 6 7 8 9 3 1 3 4 5 6 7 8 9 2 9回ルールの作成& 2 3 4 5 6 7 8 9 1 正答率の調査を行う
  7. 7. オーバーフィット(Over Fit)• クロスバリデーションは,オーバーフィットを防げる事がある• もし,訓練データを完全に信用して「良い」ルールを作成すると, 訓練データに偏ったルールが生成されてしまう. •→オーバーフィットと呼ぶ訓練データ モデル を作成 比較的適切なモデル モデルは訓練データを 完全に正しく分割できる 必要はない モデル を作成 オーバーフィット と思われるモデル 7
  8. 8. アダブースト
  9. 9. アダブースト(AdaBoost)• 決定木,Naive Bayes同様,Yes, Noの属性(テスト)と○,×のクラ スが訓練データとして与えられているとする. • 説明の都合上,クラスは○と×ではなく,1と0とする• 「3人寄れば文殊の知恵」の発想で作られる分類器• 重み付き分類器(Weighted Voting)と呼ばれる分類器の一種(発展 版) • 一般の重み付き分類器は,属性に重みを付ける • どの属性が重要かを判定する • 決定木なら選択する属性、ナイーブベイズなら属性の確率 • アダブーストでは,サンプル毎に重みをつける • どのサンプルが重要かを判定する• 訓練データにおいて,エラー率が限りなく0に近い分類器を作成 できることが,理論的に保証されている
  10. 10. 利用する訓練データ ID C:コンタクト T1:30才未満 T2:近視 T3:乱視 T4:ドライアイ A 1 YES YES YES YES B 1 YES YES NO YES C 1 NO YES YES YES D 1 NO YES NO YES E 0 YES YES YES NO F 0 YES YES NO NO G 0 NO NO NO NO H 0 NO NO NO YES I 0 NO NO NO NO J 0 NO NO NO YES• クラスを1と0にしてある• サンプルの個数をN個• (Xi , ci )(i = 1, . . . , N ) 訓練データは,          と表す。たとえばCは XC = (No, Yes, Yes, Yes), cC = 1
  11. 11. 初期化• R: 最終的に組み合わせる分類器の個数. • この数が大きい程,良い分類器(ルール)が作成できる 代わりに,生成に時間がかかる• 初期状態として,各サンプルに均等に重みを割り当てる. • 1 wi サンプルiの初期の重みを  で表す. • 初期状態で,重みは全サンプルで均等であって欲しい. サンプルの個数はNなので, wi = 1/N (i = 1, . . . , N ) 1 • 例題の訓練データでは,10個のサンプルがあるので, wi = 1/10 1
  12. 12. • 各t=1,...,Rに対し次のステップを繰り返す1. 正規化: t回目の繰り返しで正規化したサンプルiの重み t pt を  とする. pt = i wi i N t i=1 wi N • p1 = wi = 1/10 1 wi = 1 t t=1の時は,     なので, i i=12. 何らかの学習アルゴリズムWeakLearnerを用意する. t 1/2 WeakLearnerを使い,次の条件(    )を満たす仮説htを求 め,重み付きエラー率 を計算する t N t = pt |ht (Xi ) − ci | 1/2 i i=1 ここで 0, ht (Xi ) と が一致する時 ci ht (Xi ) − ci = 1, それ以外 Step 3へ続く
  13. 13. • t=1の時を考える.WeakLearnerが仮説として,下記を検討し たとする. 属性 T2=Yes の時,クラスC=1, 属性T2=No の時,クラスC=0ID C:コンタクト T2:近視 IDが A∼F のサンプルは h1(Xi) = 1A 1 YES E,F 以外はh1(Xi)=ci.D,Jはci=0で不一致B 1 YES IDが G,H,I,J のサンプルは h1(Xi) = 0C 1 YESD 1 YES  全て一致E 0 YES 以上より,WeakLearnerの仮説では,F 0 YES 10サンプル中2サンプルが誤り.G 0 NOH 0 NO p1 = 1/10       より, iI 0 NO 1 = 1/10 × 2 = 1/5 1/2J 0 NO よって,属性T2による予測は WeakLearnerとして採用できる
  14. 14. t+13. 重み   を更新する.重み変更の度合いとしてβtを作成する wi t βt = 0 ≤ t 1/2, より 0 ≤ βt 1 1 − t • βを使い重みを更新する 1−|ht (Xi )−ci | wi = wi βt t+1 t • エラーεtが小さいとβtも小さくなり,一気に重みが下がる. • εtが大きいとβtも大きくなり,重みの変更が小さくなる • 重みの更新は,WeakLearnerの予測ht が正しいサンプルのみ 行われ,正しくないサンプルでは,更新が起こらない
  15. 15. • 例題で実際に計算してみる.t=1の場合を考える. 1 = 0.2 1 β1 = = 0.2/0.8 = 0.25 1 − 1 • サンプルA∼D, G∼J では予測htが実際のクラスと一致,E, F ではクラスと異なるので, wA = wB = wC = wD = wG = wH = wI = wJ 2 2 2 2 2 2 2 2 = 1/10 × β1 = 0.025 1 wE = wF = 1/10 × β1 = 0.1 2 2 0 ID C T2:近視 w^1_i h_1 w^2_i A 1 YES 0.1 1 0.025 B 1 YES 0.1 1 0.025 C 1 YES 0.1 1 0.025 D 1 YES 0.1 1 0.025 E 0 YES 0.1 1 0.1 F 0 YES 0.1 1 0.1 G 0 NO 0.1 0 0.025 H 0 NO 0.1 0 0.025 I 0 NO 0.1 0 0.025 J 0 NO 0.1 0 0.025
  16. 16. WeakLearnerの選択• t=1の計算では,WeakLearnerとしてT2を選択した• どのようなWeakLearnerを選択するのが良い? • 重みが一気に下がる,重み付きエラーの少ないWeakLearner • ここでは,シンプルに最も重み付きエラーの少ない属性を WeakLearnerとして選択しよう• t=1で最も重み付きエラーの少ない属性を選択してみよう • 属性T1がYesの時のε1をε1(T1=Yes)と書く
  17. 17. ID C:コンタクト T1:30才未満 T2:近視 T3:乱視 T4:ドライアイ A 1 YES YES YES YES B 1 YES YES NO YES C 1 NO YES YES YES D 1 NO YES NO YES E 0 YES YES YES NO F 0 YES YES NO NO G 0 NO NO NO NO H 0 NO NO NO YES I 0 NO NO NO NO J 0 NO NO NO YESp1 = 1/10(i ∈ {A, B, ..., J}) i 1 より 1 (T1 = Yes) = × 4 = 0.4 10 1 1 (T2 = Yes) = × 2 = 0.2 10 1 1 (T3 = Yes) = × 3 = 0.3 10 1 1 (T4 = Yes) = × 2 = 0.2 10 よってT2=Yes もしくは、T4=Yesが最も良い。 ここでは、T2を選ぼう。
  18. 18. • t=2の場合 wA = wB = wC = wD = wG = wH = wI = wJ 2 2 2 2 2 2 2 2 = 1/10 × β1 = 0.025 1 wE = wF = 1/10 × β1 = 0.1 及び 2 2 0 wi = 0.400 より 2 i∈{A,...,J} p2 = p2 A B = p2 = p2 = p2 = p2 = p2 = p2 C D G H I J = 0.025/0.400 = 0.0625 p2 = p2 E F = 0.1/0.400 = 0.25• この重みを考慮して,WeakLearnerを選択する 2 (T1 = Yes) = 0.0625 × 2 + 0.25 × 2 = 0.625 2 (T1 = No) = 0.375 2 (T2 = Yes) = 0.25 + 0.25 = 0.5 2 (T3 = Yes) = 0.0625 × 2 + 0.25 × 1 = 0.3125 2 (T4 = Yes) = 0.0625 × 2 = 0.125 よってT4=Yesが最も良い
  19. 19. β2 = 2 /(1 − 2 ) = 0.143 h_1 h_2ID C T2:近視 w^1_i w^2_i w^3_i (T2=Yes) (T4=Yes) A 1 YES 0.1 1 0.025 1 0.00358 B 1 YES 0.1 1 0.025 1 0.00358 C 1 YES 0.1 1 0.025 1 0.00358 D 1 YES 0.1 1 0.025 1 0.00358 E 0 YES 0.1 1 0.1 0 0.0143 F 0 YES 0.1 1 0.1 0 0.0143 G 0 NO 0.1 0 0.025 0 0.00358 H 0 NO 0.1 0 0.025 1 0.025 I 0 NO 0.1 0 0.025 0 0.00358 J 0 NO 0.1 0 0.025 1 0.025
  20. 20. 求めた重みから最終仮説を求める R 1 if (− log10 βt )ht (X) ≥ (− log10 βt ) 1hf (X) = t=1 2 0 othrewise t βt = 1 − t • 仮説の(対数付き)重み付き平均より大きかったら予測は1, 小 さかったら予測は0 • Logの底は何でも良い • エラー率εtが0に近づくと,βtもゼロに近づく.-Log βtは値が大 きくなり,WeakLearnerによる仮説ht(X)が支配的になる. • 一方,エラー率が増えると-Log βtは小さくなり ht(X)の値の影 響が小さくなる.
  21. 21. 重み付き平均を計算する β1 = 0.25, β2 = 0.1432 1 (− log βt )t=1 2 1 1 = − log10 0.25 × − log10 0.143 × 2 2 = 0.723 • この値以上なら,予測は1. 未満なら予測0
  22. 22. サンプルのクラス予測ID コンタクト h1:30才未満 h2:近視 h3:乱視 h4:ドライアイK ? NO NO YES NOL ? NO YES NO NO • h1: T2=Yesの時C=1, h2: T4=Yesの時C=1 • 2 サンプルKで予測を行うと, (− log βt )ht (XK )t=1 = − log10 0.25 × 0 − log10 0.143 × 1 = 0.845 0.723 より大きいので予測は○ • 2 サンプルLで予測を行うと (− log βt )ht (XL )t=1 = − log10 0.25 × 1 − log10 0.143 × 0 = 0.602 0.723 より小さいので予測は×
  23. 23. AdaBoostで学習が進む証明• 最終仮説hfに対するエラー率εを次のように定義する. = D(i) {i|hf (Xi )=yi } • D(i)は,訓練データ上の初期の重み• 以下が成立することを証明する.εtはt回目の仮説のエラー R ≤ 2 t (1 − t ) t=1 • t回目の仮説のエラー率εt1/2なので, 2 t (1 − t ) 1 • よって上の式が成立すれば,WeakLearnerの数を増やすと,急 速にエラー率εは減少する
  24. 24. • 補題1 • R番目までの分類器の重みとR+1番目までの各サンプルのエ ラー率に関し,次の不等式が成立する. N R 1/2 R+1 wi ≥ βt i=1 t=1 • 証明 • N R+1 R+1 wi ≥ wi i=1 {i|hf (Xi )=yi } t+1 wi = t 1−|hf (Xi )−yi | wi βi より R 1−|hf (Xi )−yi | t+1 wi = D(i) βt{i|hf (Xi )=yi } {i|hf (Xi )=yi } t=1
  25. 25. R 最終仮説 hf が誤って予想するサンプル (hf (Xi ) = yi ) について考 1−|hf (Xi )−yi | β説が間違う場合は,hf (Xi ) = 1 かつ yi = 0 の時と,hf (Xi ) = 0 t を計算する t=1 の時の 2 通りがある. 最終仮説hfが間違っている場合は2通りあり,それぞれを考える hf (Xi ) = 1 かつ yi = 0 の場合を考えると,式 5.1 より hf (Xi ) = 1 かつ yi = 0, の場合hf(Xi)=1なので,予想するサンプル (hf (Xi ) = yi ) について考えると,仮 R R 1Xi ) = 1 かつ yi = 0 の時と,h(− log βt )hfかつ) y≥ = 1 (− log βt ) f (Xi ) = 0 (Xi i t=1 t=1 2 0 の場合を考えると,式 5.1) より 両辺に t=1 (log βt を加算し, R R R R 1 1− log βt )hf (Xi ) ≥ (− log(log βt )(1 − hf (Xi )) ≥ βt ) (log βt ) 2 t=1 t=1 2 t=1 1 − hf (Xi ) = 1− | hf (Xi ) − yi | に注意し,変形すると,加算し, R R 1/2 R 1t f (Xi )−yi | ≥ 1−|hg βt )(1 − hf (Xi )) ≥ (log βt ) β βt t=1 2 t=1 t=1
  26. 26. t t t=1 t=1 hf (Xi )hf (Xi ) = 0 yi = i1= の場合 次に, = 0 かつ かつ y 1 の場合を考える.式 5.1 より R R 1 (− log βt )ht (Xi ) (− log βt ) t=1 t=1 2174 である.両辺に −1 を乗じ h (X ) = 1− | h (X ) 5 章 | 離散値のクラス分 第 − y に注意すると, f i t i i 1 R R 2 1−|ht (Xi )−yi | βt βt t=1 t=1 以上より,仮説が間違う hf (Xi ) = 1 かつ yi = 0 の時と,hf (Xi ) =yi = 1 の何れの場合でも,よっていずれの場合も,同一の式が成立する 1 R R 2 1−|ht (Xi )−yi | βt ≥ βt t=1 t=1が成立する.
  27. 27. が成立する. この不等式を,式 5.2 に代入し,  1  R R 2 1−|hf (Xi )−yi | D(i)  D(i) βt ≥ βt{i|hf (Xi )=yi } t=1 {i|hf (Xi )=yi } t=1   1 R 2 = D(i) βt {i|hf (Xi )=yi } t=1よって,   1 R 2 R+1 wi ≥ D(i) βt {i|hf (Xi )=yi } {i|hf (Xi )=yi } t=1 1 R 2 = · βt t=1 証明終 □補題 5.2 各サンプルに付いての重みについて,次の不等式がなりたつ.
  28. 28. = · t=1 βt □ t=1 • 補題2題 5.2 各サンプルに付いての重みについて,次の不等式がなりたつ. • 各サンプルの重みに関して,次の式が成立する 補題 5.2 各サンプルに付いての重みについて,次の不等式がなりたつ. N N t+1 wi N ≥ t wi N× 2 i i=1 t+1 wi i=1≥ wi × 2 t i明: •α 証明および r = {0, 1}i=1 ≥0 より i=1 証明: α ≥ 0 および r = {0, 1} より αr ≤ 1 − (1 − α)r αr ≤ 1 − (1 − α)rなるので,次の不等式が計算できる. となるので,次の不等式が計算できる. を利用することで,次ページの式変形が成り立つ
  29. 29. 5.6. ア ダ ブ ー ス ト 175 N N 1−|ht (Xi )−yi | t+1 wi = t wi βt i=1 i=1 N ≤ wi (1 − (1 − βt )(1 − |ht (Xi ) − yi |)) t i=1 N N N = wi − (1 − βt ) t t wi − wi |ht (Xi ) − yi | t i=1 i=1 i=1 N N N = wi − (1 − βt ) t t wi − t t wi i=1 i=1 i=1 N N = wi − (1 − βt ) t t wi (1 − t ) i=1 i=1 N = t wi × (1 − (1 − βt )(1 − t )) i=1 更に,t = β t /(1 − t ) なので, N = t wi ×2 t i=1 証明終
  30. 30. • 定理理 5.3 を t 回目の繰り返しで WeakLearner が出した仮説のエラー率 • t εtをt回目の繰り返しでWeakLearnerが出した仮説のエる.このとき,最終仮説 hf のエラー率 が以下の不等式を満たす. ラー率とする.このとき,最終仮説hfのエラー率εは,次 式を満たす R ≤ 2 t (1 − t) • 証明 1/2 t=1 N N R N R明: 補題 5.1 および補題 5.2 より次の不等式が成り立つ. w1 βt ≤ R+1 wi ≤ wi × 2t ≤ R i 2t t=1 t=1 R 1/2 i=1 N i=1 i=1 N βt wi = 1 なので (補題 5.1 より) 1 ≤ R+1 wi t=1 i=1 i=1 R N = 2t ≤ t=1 R wi × 2 t (補題 5.2 より) i=1 βt = t /(1 − t ) と,上の不等式より − 1, R − 2, . . . , 1 に順に適用 補題 5.2 を, = R t R N R R −1/2 ≤ 2t × βt = 1 2 t (1 − t ) ≤ wi 2 t 証明終 t=1 t=1
  31. 31. AdaBoostのまとめ• 「3人寄れば文殊の知恵」の発想で作られる分類器 • でも集まる人が重要なので,集まる人を選ぶ • =サンプル毎に重みを付ける • 重み付き分類器(Weighted Voting)と呼ばれる分類器の一種• 訓練データにおいて,エラー率が限りなく0に近い分類器 を作成できることが,理論的に保証されている• WeakLearnerを任意に選べるので,WeakLearnerとして,今 まで紹介した,決定木,NaiveBayesや,今後紹介するK-NN, SVMなども利用が可能 • 複数のクラス分類手法を組み合わせた学習(=Ensemble Learning)の土台となることができる.

×