クラス分類問題 (Classification)

Slides:



Advertisements
Similar presentations
Maxent model への挑戦 - 驚きとドキドキ感の理論 - 大野ゆかり Phillips et al. (2006) Maximum entropy modeling of species geographic distributions. Ecological Modeling 190:
Advertisements

区間グラフにおける区間表現からMPQ-treeを効率よく構成するアルゴリズム
極小集合被覆を列挙する 実用的高速アルゴリズム
離散システム特論 整列(sorting)アルゴリズム 2.
データ構造と アルゴリズム 第十二回 知能情報学部 知能情報学科 新田直也.
ラベル付き区間グラフを列挙するBDDとその応用
プログラミング言語としてのR 情報知能学科 白井 英俊.
近似アルゴリズム 第10章 終了時刻最小化スケジューリング
群論とルービックキューブ 白柳研究室  水野貴裕.
知能システム論 ー アソシエーションルール -.
計算の理論 II NP完全 月曜4校時 大月美佳.
Approximation of k-Set Cover by Semi-Local Optimization
JAG Regional Practice Contest 2012 問題C: Median Tree
データ構造と アルゴリズム 第二回 知能情報学部 新田直也.
確率・統計輪講資料 6-5 適合度と独立性の検定 6-6 最小2乗法と相関係数の推定・検定 M1 西澤.
9.NP完全問題とNP困難問題.
疑似頻出アイテム集合の 多項式遅延列挙アルゴリズム
最尤推定によるロジスティック回帰 対数尤度関数の最大化.
アルゴリズムとデータ構造 第7回探索のためのデータ構造(1) 2015/11/18 アルゴリズムとデータ構造 2015.
大域的データフロー解析 流れグラフ 開始ブロック 基本ブロックをnodeとし、 基本ブロック間の制御関係をedgeとするグラフを、
二分探索木によるサーチ.
Classification Problem
Classification Problem
k 個のミスマッチを許した点集合マッチング・アルゴリズム
シャノンのスイッチングゲームにおけるペアリング戦略について
独立成分分析 1.問題は何か:例:解法:全体の見通し 2007/10/17 名雪 勲.
計算の理論 II NP完全 月曜5校時 大月美佳 平成17年1月17日 佐賀大学理工学部知能情報システム学科.
論文紹介 Query Incentive Networks
ネットワーク上での社会的効用と個人的効用の対立問題に対するアルゴリズム的研究
人工知能特論 7.決定木の学習 北陸先端科学技術大学院大学 鶴岡 慶雅.
東京工科大学大学院 バイオニクス・情報メディア学専攻科 担当: 亀田 弘之
決定木とランダムフォレスト 和田 俊和.
モデルの適用範囲 モデルの適用領域 Applicability Domain (AD)
モデルの逆解析 明治大学 理工学部 応用化学科 データ化学工学研究室 金子 弘昌.
7.4 Two General Settings D3 杉原堅也.
確率伝搬法と量子系の平均場理論 田中和之 東北大学大学院情報科学研究科
Songzhu Gao, Tetsuya Takiguchi, Yasuo Ariki (Kobe University) 
第14章 モデルの結合 修士2年 山川佳洋.
第5章 特徴の評価とベイズ誤り確率 5.5 ベイズ誤り確率の推定法 [1] 誤識別率の偏りと分散 [2] ベイズ誤り確率の上限および下限
東京工科大学大学院 バイオニクス・情報メディア学専攻科 担当: 亀田 弘之
Extractor D3 川原 純.
計算量理論輪講 chap5-3 M1 高井唯史.
計算の理論 II 言語とクラス 月曜4校時 大月美佳.
決定木 Decision Tree DT 明治大学 理工学部 応用化学科 データ化学工学研究室 金子 弘昌.
Data Clustering: A Review
決定木による知識の獲得 認知システム論 知識と推論(4) 学習と帰納推論 決定木 ID3アルゴリズム 性能評価と応用
1-Q-9 SVMとCARTの組み合わせによる AdaBoostを用いた音声区間検出
決定木-II 学習目標 1.○与えられた事例集合から,指定された属性選択基準に基づいて決定木を生成 できる 利得 利得比
第5章 計算とプログラム 本章で説明すること ・計算の概観と記述法 ・代表的な計算モデル ・プログラムとプログラム言語.
SUNFLOWER B4 岡田翔太.
生物情報ソフトウェア特論 (2)たたみ込みとハッシュに 基づくマッチング
ナップサック問題 クマさん人形をめぐる熱いドラマの結末.
わかりやすいパターン認識 第7章:部分空間法  7.1 部分空間法の基本  7.2 CLAFIC法                  6月13日(金)                  大城 亜里沙.
情報経済システム論:第13回 担当教員 黒田敏史 2019/5/7 情報経済システム論.
サポートベクターマシン Support Vector Machine SVM
Data Clustering: A Review
「ICAによる顔画像特徴量抽出とSVMを用いた表情認識」
第16章 動的計画法 アルゴリズムイントロダクション.
Selfish Routing 4章前半 岡本 和也.
HMM音声合成における 変分ベイズ法に基づく線形回帰
人工知能特論II 第8回 二宮 崇.
情報工学概論 (アルゴリズムとデータ構造)
確率と統計2007(最終回) 平成20年1月17日(木) 東京工科大学 亀田弘之.
7.8 Kim-Vu Polynomial Concentration
コストのついたグラフの探索 分枝限定法 A*アルゴリズム.
卒業研究 Treedecompositionを生成するヒューリスティックアルゴリズムの幅に関する評価実験
情報生命科学特別講義III (3)たたみ込みとハッシュに 基づくマッチング
Q q 情報セキュリティ 第7回:2005年5月27日(金) q q.
グラフ-ベクトル変換を用いたグラフ構造表現による一般物体認識
グラフの帯域幅連続多重彩色 を求めるアルゴリズム (Bandwidth Consective Multicolorings of Graphs) 西関研究室 西川和秀.
Presentation transcript:

クラス分類問題 (Classification)

T1, T2, T3, T4 の値 クラス分類器 (classifier) 目標属性の値 1 0 1 1 1 1 1 1 1 1 1 0 1 1 1 1 1 1 1 1 1 1 1 0 0 1 0 1 0 0 1 1 0 1 0 1 0 0 1 0 0 1 0 1 1 0 0 1 1 1 0 1 0 1 1 0 0 0 1 1 0 0 1 0 0 0 1 0 0 0 T1, T2, T3, T4 の値 クラス分類器 (classifier) 目標属性の値

クラス分類器 (Classifier) の様々な手法  決定木 (decision tree) k-nearest neighbor Boosting  Neural Network  Hidden Markov Model  Support Vector Machine

テスト If T1=1 Then If T3=1 If T4=1 Then 目標属性=1 Else 目標属性=0 Else 目標属性=0 T1 T2 T3 T4 目標属性 (Objective) 1 0 1 1 1 1 1 1 1 1 1 1 1 0 0 1 0 1 0 0 1 1 0 1 0 1 0 0 1 0 0 1 0 1 1 0 0 1 1 1 0 1 0 1 1 0 0 0 1 1 0 0 1 0 0 0 1 0 0 0 If T1=1 Then If T3=1 If T4=1 Then 目標属性=1 Else 目標属性=0 Else 目標属性=0 決定木(decision tree)

If T1=1 Then If T3=1 If T4=1 Then 目標属性=1 Else 目標属性=0 Else 目標属性=0 T1 T3 T3 T4 1 1 T4 1 1 1

T1 T2 T3 T4 目標属性 1 1 1 1 1 1 1 1 0 0 1 1 0 1 0 0 1 0 1 1 0 1 0 0 0 1 0 1 1 1 0 0 1 1 1 0 0 0 1 1 1 0 0 1 0 0 0 1 0 0 1 0 1 0 0 T2 1 T1 T4 1 1 T3 T4 T3 1 1 1 T4 1 1 T1 1 1 1 1

クラス分類問題の様々な応用例  製品の歩留まりの向上 (Improvement of Yields) 目標属性 機械の故障の有無 (Disorders of Machines) テスト 機械の状態 (Conditions of Machines)  薬品効果の分類 (Effectiveness of Medicine) 目標属性 薬の効果 発病 テスト 心拍数(Heartbeats) 血糖値(blood sugar level) 遺伝子マーカー(polymorphic markers on genome)  顧客の分類 (Customer Classification) 目標属性 顧客の忠誠度(Loyality)  自動車事故の有無 (Records of Automobile Accidents) テスト 年齢 (Age) 収入(Income) 購入履歴(Purchase Records)  詐欺行為の検出 (Fraud Detection) 目標属性 詐欺行為の有無 テスト 口座引落回数などの予兆 (Symptoms)

テスト属性(test attributes) 属性(attribute) フィーチャ-(feature) T1  T2  T3  T4 目標属性 1   1   1   1 1 1   1   1   0 0 : レコード(record)  データ(data) タップル(tuple) レコード t の属性 A の値を t[A] と表記 目標値  目標属性の値から一つ選択.  例えば 1 目標属性が A、目標値が 1 のとき、  t[A]= 1 となる t を 正(positive)  t[A]≠1となる t を 負(negative)

決定木の最小化はNP困難

根ノードから葉ノード x に至るテストの数 cost(x) 各葉ノードにおいて、到達する レコードがすべて正であるか、 すべて負であるかのいづれか が成り立つ決定木を生成する ことを考える 決定木の評価  根ノードから葉ノード x に至るテストの数 cost(x)  決定木のコスト = S {cost(x) | x は葉ノード}  決定木のコストは小さい  ほうが望ましい T1 1 T3 T4 1 1 T4 1 2 2 2 1 1 3 3 12

T1 T3 T4 T4 1 1 3+3+2+2+2=12 4+4+3+3+3+3+4+4+2=30 1 1 1 1 T2 1 T1 T4 1 1 T1 T4 T3 T4 1 1 1 1 T3 T4 T3 T4 1 1 1 1 T4 1 1 T1 1 1 1 1 3+3+2+2+2=12 1 1 4+4+3+3+3+3+4+4+2=30

コストがある w 以下の決定木は存在するか否か: NP完全 L. Hyafil and R. L  コストがある w 以下の決定木は存在するか否か: NP完全 L. Hyafil and R. L. Rivest: “Constructing Optimal Binary Decision Trees is NP-complete,” Information Processing Letters, Vol. 5, No. 1, May 1976  従って、コスト最小の決定木を求める最適化問題はNP困難 NPであること  決定木を生成する非決定性チューリング機械 T を構成する  Tが出力する決定木のコストは多項式時間で計算可能 NP完全であること  EXACT COVER BY 3-SETS 問題を決定木のコストを計算する  問題に多項式時間で変換できる

EXACT COVER BY 3-SETS 問題 (NP完全) 3個の元を含む X の部分集合の集まり S={T1, T2, …} が 与えられたとき、 次の条件を満たす S1 ⊆ S は存在するか?  ∪ { T | T ∈ S1 } = X  S1 の元は互いに素 (任意の i ≠ j について Ti ∩ Tj = φ) つまり X の任意の元は、S1の中でどれか一つに含まれる 例 X = {1,2,3,4,5,6,7,8,9} S = { {1,2,3}, {2,3,4}, {1,5,6}, {5,6,7}, {6,7,8}, {7,8,9} } 3 4 9 2 5 8 1 6 7

EXACT COVER BY 3-SETS 問題のNP完全性については M. R. Garey and D. S. Johnson. Computer and Intractability. A Guide to NP-Completeness W. H. Freeman, 1979 SAT → 3SAT → 3D Matching →  EXACT COVER BY 3-SETS

EXACT COVER BY 3-SETS X,S = {T1, T2, …} |X| 個の新たな元を生成し 集合Y={y1,y2, ...} とおく X∪Y の元 t をレコード、 S∪Y の元をテストとみなす t∈ X∪Y t[Ti] = 1 t∈Ti = 0 otherwise t[y] = 1 t=y (y∈Y) t[A] = 1 t∈X = 0 t∈Y 目標属性 T1 T2 T3 ... y1 y2 y3 ... A 1 0 0 1 1 1 0 1 0 1 1 1 0 0 1 1 0 1 0 1 0 0 0 1 : 1 0 0 0 0 1 0 0 0 0 1 0 X Y 多項式時間で変換可能

正レコード t[A]=1 Xの元 負レコード t[A]=0 Yの元 テストとなる属性

正レコードと負レコードを 決定木で分離する戦略1 S = {T1, T2, …} のテスト を使って正レコードを包含する T1 T2 T3 T1 1 1 T2 1 1 T3 1 1

正レコードと負レコードを 決定木で分離する戦略2 Y = {y1, y2, …} のテストを すべて使って負レコードを包含する y1 1 y1 y2 y3 y2 1 y3 1 y9 1 1

正レコードと負レコードを 分離する決定木では  正レコードをすべて包含する  S の部分集合をテストとして使うか  負レコードを包含する Y のテストを  すべて使う 前者でYのテストを使うのは無駄で、 後者でSのテストを使うのも無駄 したがって、戦略1もしくは戦略2が コスト最小の木を生成する

y1 1 戦略2のコスト 1+2+…+|X|+|X| は戦略1のコストより大きい 戦略1がコスト最小の木を生成 EXACT COVER BY 3-SETSが 存在するならば、戦略1よりコストが 1+2+…+ (2*|X|)/3 (= w とおく) となるコスト最小の決定木を生成できる コストがw以下の決定木が存在することと、 EXACT COVER BY 3-SETSが存在することは同値 y2 1 y3 1 y|X| 1 1

近似的解法 Greedy Algorithm エントロピー

近似的解法 貪欲(greedy)アルゴリズム  「最も良さそうな」テストを選択し、  レコード集合を分割  分割したレコード集合に  同じ戦略を繰り返し適用する  一度選択したテストは変更しない  「最も良さそうな」 の基準を工夫

T1 T3 T4 T4 1 1 3+3+2+2+2=12 4+4+3+3+3+3+4+4+2=30 1 1 1 1 T2 1 T1 T4 1 1 T1 T4 T3 T4 1 1 1 1 T3 T4 T3 T4 1 1 1 1 T4 1 1 T1 1 1 1 1 3+3+2+2+2=12 1 1 4+4+3+3+3+3+4+4+2=30

#P : 正レコードの数 #N: 負レコードの数 T1 1 #P = 3 #N = 5 #P = 5 #N = 3 T2 1 #P = 4 T1 T2 T3 T4 目標属性 1 0 1 1 1 1 1 1 1 1 1 1 1 0 0 1 0 1 0 0 1 1 0 1 0 1 0 0 1 0 0 1 0 1 1 0 0 1 1 1 0 1 0 1 1 0 0 0 1 1 0 0 1 0 0 0 1 0 0 0 T1 1 #P = 3 #N = 5 #P = 5 #N = 3 T2 1 #P = 4 #N = 4 #P = 4 #N = 4 T2 ではなく T1 を選択する評価基準は?

test を選択すると (x, y) が定まるので、評価関数を φ(x, y) とおく #P+#N = n #P = m (m, m) (n, m) (x, y+Δ) test (x -Δ, y) (x, y) 1 (x, y) (x +Δ, y) #P+#N = x #P = y #P+#N = n-x #P = m-y (x, y-Δ) x (n-m, 0)  test を選択すると (x, y) が定まるので、評価関数を φ(x, y) とおく  評価基準 φ(x, y) が満たしてほしい条件 φ(x, y) は m/n = y/x のとき最小 φ(x, y) ≦ φ(x, y+Δ), φ(x, y) ≦ φ (x -Δ, y) if m/n < y/x φ(x, y) ≦ φ(x, y-Δ), φ(x, y) ≦ φ (x +Δ, y) if m/n > y/x Δ> 0

正レコードの割合 p = #P / (#P + #N) 負レコードの割合 1-p = #N / (#P+#N) エントロピー ent(p) = - p log2 p - (1-p) log2 (1-p) レコード数  n 正レコードの割合  p0 = m / n 1 n1 = x p1 = y / x n2 = n - x p2 = (m - y) / (n - x) Entropy Gain Ent(x, y) = ent(p0) - (n1/n) ent(p1) - (n2 /n) ent(p2)

#P = 8 #N = 8 ent(8/16) = 2 (- (1/2) log2(1/2)) = 1 T1 1 #P = 3 #N = 5 #P = 5 #N = 3 ent(3/8) = - (3/8)log2(3/8) - (5/8)log2(5/8) = 0.95444 ent(5/8) = ent(3/8) Entropy Gain = ent(8/16) - (8/16)ent(3/8) - (8/16)ent(5/8) = 1 - 0.95444 = 0.04556

#P = 8 #N = 8 ent(8/16) = 1 T2 1 #P = 4 #N = 4 #P = 4 #N = 4 ent(4/8) = 1 ent(4/8) = 1 Entropy Gain = ent(8/16) - (8/16)ent(4/8) - (8/16)ent(4/8) = 0

Ent(x, y) は m/n = y/x のとき最小  Ent(x, y) は凸関数 任意の点 v1, v2 と 0≦λ≦1について Ent(λv1+(1-λ)v2 ) ≦ λEnt(v1) + (1-λ) Ent(v2)  すると Ent(λv1+(1-λ)v2 ) ≦ max{Ent(v1) , Ent(v2)} (m, m) (n, m) (x -Δ, y) (y(n/m), y) (x, y) Ent(x,y) ≦ max{Ent (x -Δ, y), Ent (y(n/m), y)} ≦ Ent (x -Δ, y) x (n-m, 0)

巨大な決定木と Overfitting 問題

決定木は巨大になりがち Pretty printing of the C4.5 output © R. Kohavi

未知のテストレコードに対する正答率 訓練(training)レコード T1 T3 T4 1 テスト (test) レコード T1 T2 T3 T4 目標属性 1 0 1 1 1 1 1 1 1 1 1 1 1 0 0 1 0 1 0 0 1 1 0 1 0 1 0 0 1 0 0 1 0 1 1 0 0 1 1 1 0 1 0 1 1 0 0 0 1 1 0 0 1 0 0 0 1 0 0 0 テスト (test) レコード T1 T2 T3 T4 目標属性 1 1 1 1 1 1 0 0 1 0 1 1 0 1 1 0 1 1 1 1 0 0 0 0 0 正答率 = 4/5

Overfitting 問題 決定木を十分に大きくすれば、 訓練レコードに関しては正答率を改善できる  決定木を十分に大きくすれば、  訓練レコードに関しては正答率を改善できる  しかし巨大な木のテストレコードに対する正答率は  必ずしも高くない  訓練レコードに対して過剰に適合 (overfitting)した状態

pre-pruning 法 決定木を構成中に Entropy Gain が 小さいテスト属性は生成しない Overfitting に対する対症療法  pre-pruning 法  決定木を構成中に Entropy Gain が  小さいテスト属性は生成しない   post pruning 法  決定木を構成後に Entropy Gain が  小さいテスト属性を木の葉ノードから  ボトムアップに除く  様々なテストを利用  実験的(empirical) には Overfitting を  ある程度回避できると言われている pre-pruning post-pruning

小さい決定木を生成するアプローチ   Entropy Gain を最大化する様々なテストを    効率的に計算するアルゴリズムの開発  テスト属性が2値の場合 すべてのテスト属性の Entropy Gain を計算  テスト属性 T の領域に3つ以上の異なる離散値がある場合 T の領域 {1, 2, …, k} の部分集合 S を使い、 条件 T ∈ S でレコード集合を分割することを考える Entropy Gain を最大化する S は効率的に計算できるか?  テスト属性が数値の場合 (現実のデータベースの殆どの場合) T ∈ [c, d] のような条件で分割  論理積でレコード集合を分割 (T1 = 1) ∧ (T2 = 1) ∧ … ∧ (Tn = 1)

テスト属性 T の領域に3つ以上の異なる離散値がある場合  T の領域を {1, 2, …, k} T ... 目標属性A 2 1 3 0 1 1 : : 例えば k=1000 のときは巨大な 木になる n0 p0 T 1 2 3 k n1 p1 n2 p2 n3 p3 nk pk ent(p0) - Σ (ni / n0) ent(pi)

T 一般性を失うことなく  p1 ≧ p2 ≧ … ≧ pk と仮定 1 2 3 k n1 p1 n2 p2 n3 p3 nk pk #P+#N = n #P = m S ⊆{1, 2, …, k} T∈ S 定理  ある j≦ k が存在し S ={i | 1≦ i ≦ j } が Entropy Gain を最大化 Yes No #P+#N = Σ{ni | i∈S} = x #P = Σ{pini | i∈S} = y #P+#N = Σ{ni | i∈S} #P = {pini | i∈S}

各テスト T∈ S に (x, y) を対応させる 上凸包 (Upper Convex Hull) (n, m) v1 Ent(v) ≦ max{Ent(v1), Ent(v2)} Ent(v2) は最小値 Ent(v) ≦ Ent(v1) v v2

(n, m) v y =λx + a 上凸包を探せばOK 凸包上の点 v = (Σ{ni | i∈S}, Σ{pini | i∈S} ) に対して、 傾きλの直線が存在し、全点中で v は y 切片 a を最大化  a = Σ{pini | i∈S} - λ Σ{ni | i∈S} = Σ{ (pi - λ) ni | i∈S} pj ≧ λ ≧ pj+1 のとき  pi - λ≧ 0 となるには、 S = {1, …, j}

数値属性の場合 正レコード 負レコード b2 b3 b4 a1 a3 a2 b1 Y<b1 ? X<a1 ? X<a2 ? 1 X<a3 ? Y<b4 ? Y<b3 ? Yes No 正レコード 負レコード

決定木だけだと理解しにくい Y<b1 ? X<a1 ? X<a2 ? Y<b2 ? 1 X<a3 ? 1 X<a3 ? Y<b4 ? Y<b3 ? Yes No 決定木だけだと理解しにくい

領域 Q 領域 Q に入るか? Yes No 1 多項式時間で効率的に計算できるか?

領域 Q 領域 Q に入るか? Yes No 負レコード が大多数 正レコード が大多数 正レコード 負レコード

目標属性が数値の場合の拡張

T T1 T2 … 目標属性A (血圧) 1 0 125 0 1 145 1 1 113 : : : 遺伝子の状態 レコード数 = n 1 0 125 0 1 145 1 1 113 : : : 遺伝子の状態 レコード数 = n Σt[A] = m 平均値 = m / n = p0 T 1 レコード数 = x Σ{t[A] | t[T]=1} = y 平均値 = y / x = p1 レコード数 = n - x 平均値 = (m-y) / (n-x) = p2 クラス間分散   Var(x, y) = x (p1 - p0)2 + (n-x) (p2 - p0)2 クラス間分散を最大化する T をみつけたい

 Var(x, y) は m/n = y/x のとき最小  Var(x, y) は凸関数 任意の点 v1, v2 と 0≦λ≦1について Var(λv1+(1-λ)v2 ) ≦ λVar(v1) + (1-λ) Var(v2)  Entropy Gain を最大化する方法がクラス間分散を最大化  するのに使える  決定木のように、レコード分割を繰り返した木構造を  回帰木 (Regression Tree) と呼ぶ