スライド タイトルなし

理学系研究科 情報科学専攻
データベース特論 II
10:15-12:15
新領域創成科学研究科 複雑理工学専攻
複雑計算論
10:15-11:55
オリエンテーション
森下 真一
データマイニング
• 理論
• アルゴリズム
• 実装
• 応用
市場のニーズ
大規模生データの存在
数ギガ~テラの生データ
•POSデータ
•顧客データ
•受注データ 等
検索可能状態
(大福帳システム
Data Warehouse)
•検索・集計・チャート化
•経験的ルールの検証
ルールの収集・発見
技術的シーズ
データ読取装置の普及
•バーコード
•クレジットカード
•OCR
記憶装置の低価格化
プロセッサーの高速化
並列計算機の商用化
関係DBの普及
多次元的問合せ OLAP
知識発見技術の高速化
(データマイニング)
•商品間関連 •ゲノム情報
•危険度分析 •検索エンジン
•顧客分類
•発見科学
• データベース問合せ最適化
• 組合せ論的アルゴリズム
• 並列処理
Association Rules
当座取引有無
結合ルール
定期口座有無
血液型
職業コード
カードローン延滞有無
X⇒Y
定期口座有無=No ⇒ カードローン延滞有無=Yes
サポート
Pr(XかつY)
例 5%
確信度
Pr(Y|X)
例 32%
閾値を設け、上回るルールを “interesting” と考える
Interesting Rules を枚挙したい
観察
B ⇒ C が interesting
Pr(BC) は閾値以上
Pr(B) と Pr(C) も閾値以上
成功例
• オーストラリア健康保険委員会
年間 数千万ドルの節約に成功
• 開業医が不必要な処方箋を出す
ケースを見つけ出す規則の発見
HIC Provides A Healthier Future With IBM
IBM data warehousing and data mining technologies are
enabling the Health Insurance Commission (HIC) to save
the Australian healthcare systems tens of millions of
dollars a year.
The HIC is a Federal Government agency which processes
claims for Medicare, Medibank Private and the
Pharmaceutical Benefits and Child Care Programs. Every
year, it deals with 300 million transactions and pays out
eight billion dollars worth of funds.
Healthcare systems around the world are attempting to
find ways to reduce the millions of taxpayers' dollars which
are wasted by fraud and the inappropriate use of medical
tests and services.
The HIC, together with IBM has implemented a worldleading data mining solution, which analyzes data and
detects unnecessary prescriptions or referrals by medical
practitioners then intervene to reduce the incidence.
http://www.software.ibm.com/data/intelli-mine/applbrief.html
ABCD
ABC
AB
ABD
ACD
まずサポートが閾値以上の条件集合
(大きい条件集合)を枚挙
BCD
AC
BC
AD
BD
A
B
C
D
CD
φ
条件集合{A,B,C} を ABC と簡略に記述
条件数が少ない集合から徐々に
サポートを計算
ABCD
ABC
AB
ABD
まずサポートが閾値以上の条件集合
(大きい条件集合)を枚挙
ACD
BCD
AC
BC
AD
BD
A
B
C
D
CD
条件数が少ない集合から徐々に
サポートを計算
枝狩り:
Pr(AB) < 閾値 ⇒ Pr(ABC) < 閾値
ルール B ⇒ C は確信度
Pr(C|B)=Pr(BC)/ Pr(B)
A
AB
φ
Pr(A)≧閾値
Pr(AB)<閾値
が閾値以上のとき生成
サポート計算の効率化
大きい条件集合の候補を枚挙
ABC
ABD
AB
ABE
AC
AD
ACD
AE
ACE
BC
ADE
BD
BCD
BE
CD
BCE
BDE
CE
各レコードが満たす条件集合を見つけ、サポートを増加
ACDE
DE
CDE
サポート計算の効率化
大きい条件集合の候補を枚挙
ABC
ABD
AB
ABE
AC
ACD
AD
ACE
AE
ADE
BC
BD
BCD
BE
BCE
CD
BDE
CE
各レコードが満たす条件集合を見つけ、サポートを増加
ACDE
A
Hash table
B
D
ABD
B
E
D
C
ADE
ABE
BCE
D
BDE
DE
CDE
サポート計算の効率化
大きい条件集合の候補を枚挙
ABC
ABD
AB
ABE
AC
ACD
AD
ACE
AE
ADE
BC
BD
BCD
BE
BCE
CD
BDE
CE
各レコードが満たす条件集合を見つけ、サポートを増加
ACDE
A
Hash table
B
D
ABD
B
E
D
C
ADE
ABE
BCE
D
BDE
DE
CDE
サポート計算の効率化
大きい条件集合の候補を枚挙
ABC
ABD
AB
ABE
AC
ACD
AD
ACE
AE
ADE
BC
BD
BCD
BE
BCE
CD
BDE
CE
各レコードが満たす条件集合を見つけ、サポートを増加
ABDE
A
Hash table
B
D
ABD
B
E
D
C
ADE
ABE
BCE
D
BDE
DE
CDE
条件集合の枝狩りの効率化
データベースの走査回数を
減らせないか?
ABCD
ABC
AB
ABD
ACD
BCD
AC
BC
AD
BD
A
B
C
D
φ
CD
例 サポートの
閾値が5%のとき
条件集合の枝狩りの効率化
ABCD
ABC
AB
ABD
ACD
BCD
AC
BC
AD
BD
A
B
C
D
CD
φ
A
A
A
A
落選
出馬
当確
当選
サイズ1の
条件集合の
計算を開始
ABCD
ABC
AB
ABD
ACD
BCD
AC
BC
AD
BD
A
B
C
D
CD
サイズ2
を開始
読込済
φ
A
A
A
A
落選
出馬
当確
当選
サイズ1の
条件集合の
計算を開始
ABCD
ABC
AB
AC
ABD
BC
ACD
AD
BCD
BD
サイズ3
を開始
CD
読込済
A
B
C
サイズ2
を開始
D
φ
A
A
A
A
落選
出馬
当確
当選
ABCD
ABC
AB
ABD
サイズ1の
サポート計算
終了
ACD
BCD
AC
BC
AD
BD
A
B
C
D
CD
サイズ3
を開始
読込済
サイズ2
を開始
φ
A
A
A
A
落選
出馬
当確
当選
サイズ1の
サポート計算
終了
ABCD
ABC
AB
ABD
ACD
BCD
AC
BC
AD
BD
A
B
C
D
CD
第
1
回
読
込
済
サイズ3
も開始
読
込
済
φ
A
A
A
A
落選
出馬
当確
当選
サイズ2の
計算終了
サイズ1の
条件集合の
サポート計算
を開始
A priori に比べ 20%から4倍の性能向上との報告されている
ABCD
ABC
AB
AC
A
ABD
BC
サイズ1の
サポート計算
終了
ACD
AD
B
C
BCD
BD
CD
D
φ
A
A
A
A
落選
出馬
当確
当選
第
1
回
読
込
済
サイズ3の
計算終了
読
込
済
サイズ2の
計算終了
サイズ1の
条件集合の
サポート計算
を開始
預金残高∈R ⇒ クレジットカード=Yes
預金残高
Pr(預金残高∈R )≧10%で
確信度最大
少しでも精度を上げたい
預金残高∈R ⇒ クレジットカード=Yes
預金残高
Pr(預金残高∈R )≧10%で
確信度最大
確信度80%以上で
Pr(預金残高∈R )最大
少しでも精度を上げたい
預金残高∈R ⇒ クレジットカード=Yes
入力: Pr(預金残高∈R) の閾値
出力: 確信度を最大化する区間 R
預金残高 X → ( Pr(預金残高≦X) ,
Pr({預金残高≦X,クレジットカード=Yes})
確信度
閾値
預金残高∈R ⇒ クレジットカード=Yes
入力: Pr(預金残高∈R) の閾値
出力: 確信度を最大化する区間 R
預金残高 X → ( Pr(預金残高≦X) ,
Pr({預金残高≦X,クレジットカード=Yes})
O(M log M)
M: number of records
確信度
R の候補
Clockwise Search
Counter Clockwise Search
Clockwise, Counter Clockwise
はともに、点を高々1回だけ走査
する
(年齢,預金残高)∈S ⇒ カードローン延滞=Yes
預金残高
年齢
(年齢,預金残高)∈S ⇒ カードローン延滞=Yes
預金残高
年齢
(年齢,預金残高)∈S ⇒ カードローン延滞=Yes
預金残高
年齢
(年齢,預金残高)∈S ⇒ カードローン延滞=Yes
預金残高
年齢
領域族
矩形領域
X単調領域
直交凸領域
p( (年齢,預金残高)∈S ) を「領域Sのサポート」
最大確信度領域 閾値以上のサポートをもち、確信度を最大にする領域S
最大サポート領域 閾値以上の確信度を導き、サポートを最大にする領域S
(年齢,預金残高)∈ S
⇒ カードローン延滞=Yes
領域族:矩形領域
最大サポート・最大確信度領域を O(n1.5)
で計算可能
預
金
残
高
年齢
グリッド領域へ
データ数 M, ピクセル数 n
領域族:X単調領域または直交凸領域
最大サポート・最大確信度領域を
X単調はO(n M)、直交凸はO(n 1.5 M) で
計算可能。
n と log M の多項式時間で計算すること
は P = NP でない限り不可能。
近似アルゴリズム
(年齢,預金残高)∈ S
S
⇒ カードローン延滞=Yes
p( {年齢,預金残高)∈S,
カードローン延滞=Yes} )
確信度
p((年齢,預金残高)∈S)
(年齢,預金残高)∈ S
S
⇒ カードローン延滞=Yes
p( {年齢,預金残高)∈S,
カードローン延滞=Yes} )
近似解
確信度
サポート値の閾値
p((年齢,預金残高)∈S)
Hand Probing による解の探索
1
凸閉包上の探索
3
2
確信度
サポート値の閾値
1回の hand probing のコスト
X単調領域
O(n)
直交凸領域
O(n1.5)
hand probing の回数はO(log M)
y =θx + a
切片 a の最大化
• 各ピクセルに実数で表現される濃度
• 濃度の和を最大化する領域を計算
ルールの評価 - 領域族別、メッシュ粒度別
矩形領域
#(pixels)
Training
Test
Test – Tra.
8×8
47.77%
46.92%
-0.85%
16×16
48.22%
47.66%
-0.56%
32×32
48.30%
47.52%
-0.78%
64×64
48.42%
47.03%
-1.39%
X単調領域
#(pixels)
Training
Test
Test – Tra.
8×8
52.70%
51.38%
-1.31%
16×16
53.72%
51.76%
-1.95%
32×32
55.24%
51.69%
-3.55%
64×64
57.47%
51.00%
-6.46%
直交凸領域
データを平面中に一様に生成
ガードローン延滞となる確率を
対角線からの距離に関して一様分布
#(pixels)
Training
Test
Test – Tra.
8×8
52.70%
51.56%
-1.14%
16×16
53.49%
52.24%
-1.25%
32×32
53.96%
51.79%
-2.17%
64×64
54.43%
51.75%
-2.67%
10-fold Cross Validation
Classification
入力データ例
血圧
心拍数
決定木
健康な人と心臓疾患の患者のデータ
中性脂肪
肥満度
GPT
GOT
心臓疾患
入力データ例
決定木
健康な人と心臓疾患の患者のデータ
血圧 < 125
Yes
Yes
No
No
領域分割
GPT
Yes
訓練データで木を生成
評価基準: 未知データでの予測精度
動機: 領域分割は予測精度向上に効くか?
No
血圧
決定木 データ分割の評価方法
正のデータ
負のデータ
決定木 データ分割の評価方法
Quinlanのエントロピー
最小化
正のデータ
負のデータ
n
Ent1=
- (p log p + q log q)
Ent2
n1
n2
p q
n1
n2
Ent1 +
Ent2
n
n
S
エントロピー関数は凸関数
エントロピー最小の領域は
凸包の境界上に存在
S中の正の
データ数
Hand Probing で探索
単純な二分探索は困難
(凸包上の全ての点の
エントロピーが一致する例)
S中のデータ数
Ent(三角形XYZ内の任意の点)
≧ min(Ent(X),Ent(Y),ENT(Z))
Z
Y
X
もし Ent(Z)≧ 現時点の最小エントロピー ならば枝狩り
Branch and Bound Search
実用上はほぼ、O(logM)のHand Probing
決定木性能評価
UC Irvine, Repository of Machine Learning databases
http://www.ics.uci.edu/~mlearn/MLRepository.html
10-fold Cross Validation
データベース
balance scale
breast-cancer-wisc
german credit
liver disorder
pima diabetes
segmentation
vehicle
waveform
waveform+noise
レコード数
625
699
1000
345
768
2310
846
5000
5000
属性数
4
9
24
6
8
19
18
20
40
クラス数
3
2
2
2
2
7
4
3
3
X単調
15.52
5.01
27.30
34.81
24.47
4.81
30.02
21.74
22.54
エラー率
直交凸
15.52
4.15
23.80
33.36
25.12
4.37
28.47
20.98
21.32
矩形
19.34
4.58
26.90
31.08
23.69
4.89
27.65
22.36
22.94
二分割
20.95
5.72
25.60
34.87
26.82
4.50
26.23
22.74
24.36
回帰木 (Regression Tree)
BPS
GDM
YEN
1.443530 0.407460 0.004980
1.446120 0.408050 0.004950
:
:
:
TB3M
TB30Y
SP500
GOLD
7.02
7.04
:
9.31
9.28
:
210.88
205.96
:
326.00
339.45
:
Yes
No
No
Yes
D1
領域中
外
μ1
D2
μ2
誤差二乗平均を最小化する領域
A
μ
D1
外
領域中
D2
μ1
誤差二乗平均の
最小化
クラス間分散の
最大化
μ2
Σ t∈D (t[A]-μ
1
2 +
)
1
Σ t∈D (t[A]-μ
2
2
)
2
| D1∪D2 |
| D1 |( μ -μ1 )2 +|D2 |( μ -μ2 )2
| D1∪D2 |
S
クラス間分散関数は凸関数
クラス間分散最大の領域は
凸包の境界上に存在
S中データ
の目標属性
の値の和
Hand Probing で探索
単純な二分探索は困難
Branch and Bound Search
で実用上はO(log M)
S中のデータ数
回帰木性能評価
http://www.cs.utoronto.ca/~delve/data/datasets.html
10-fold Cross Validation
データベース
add10
abalone
kin-8fh
kin-8fm
kin-8nh
kin-8nm
pumadyn-kin-8fh
pumadyn-kin-8fh
pumadyn-kin-8fh
pumadyn-kin-8fh
レコード数
9792
4177
8192
8192
8192
8192
8192
8192
8192
8192
属性数
10
8
8
8
8
8
8
8
8
8
誤差二乗平均(予測前と後の比)
X単調
直交凸
矩形
二分割
0.141
0.123
0.156
0.185
0.521
0.515
0.534
0.539
0.447
0.433
0.459
0.479
0.225
0.197
0.257
0.249
0.649
0.618
0.619
0.655
0.494
0.449
0.478
0.541
0.412
0.402
0.409
0.410
0.0604
0.0595
0.0653
0.0632
0.347
0.337
0.353
0.355
0.0530
0.0496
0.0550
0.0535
OLETF
インシュリン非依存型糖
尿病モデルラット
F344
正常のモデルラット
何世代か
交配後のラット
Intercross
Marker(1) = OLETF ホモ接合
Marker(2) = F344 ホモ接合
Marker(3) = OLETF / F344 ヘテロ接合
遺伝子型 (3×102列)
マーカー接合状態
個体
102
|
103
個
表現型
血糖値, 疾患,
遺伝子型 (102~107列)
遺伝子発現量, SNP, ...
個体
102
|
104
個
表現型
血糖値, 疾患,
遺伝子発現量,
薬の効果,
副作用, ...
Clustering
Expression Patterns of Genes in Various Tissues
tissues in organs
Identifier
MB00001
MB00002
MB00004
MB00005
MB00006
MB00007
MB00009
MB00010
brain heart lung kidney testis
17.3 32.8 5.0 22.7 22.2
46.5 15.2 5.0 19.0 14.3
11.5 55.2 4.5 26.5 2.3
15.1 36.0 17.8 22.9 8.2
61.9 21.6 7.9 4.6 4.0
27.0 27.3 15.3 14.8 15.6
0.0 0.0 100.0 0.0 0.0
82.9 17.1 0.0 0.0 0.0
Brain in embryo
chronological expression patterns in all tisuues in brain
tissues in brain
embryo
post-natal
10.5d. 13.5d. 17.5d. 1 d. 5 d. 7 d. 14 d. 21 d. 91 d. olfact hippo cortex corpus cereb.
5.6 8.9 11.2 9.5 12.7 12.3 8.4 12.0 6.7 38.5 33.2 9.4 5.7 13.2
5.4 7.2 7.0 10.7 12.5 10.3 10.0 15.4 8.9 42.5 20.2 11.5 4.7 21.1
5.9 8.8 8.5 10.3 10.9 9.1 8.1 15.0 12.6 58.5 14.8 9.6 4.8 12.3
9.7 11.5 7.3 12.4 13.0 10.9 6.7 10.5 5.0 32.3 18.3 5.6 16.1 27.6
2.9 13.4 10.3 11.7 10.1 13.1 10.3 10.0 8.4 45.9 29.1 4.3 9.4 11.3
4.9 7.7 3.0 10.6 13.6 10.8 13.7 12.9 9.4 20.7 19.0 15.0 27.9 17.3
0.0 4.8 7.4 7.5 7.3 17.4 10.1 24.1 14.2 0.0 100.0 0.0 0.0 0.0
0.0 5.1 8.2 16.5 18.8 16.8 5.1 6.8 3.9 41.4 15.5 15.2 0.0 27.9
Five brain tissues of adult mouse
Clustering genes via expression patterns is promising.
• A set of genes are expected to share common roles
in cellular processes.
• Genes in the same group would be observed
in the same tissue at the same time.
• Their expression patterns would be similar.
• Clustering genes by expression patterns would provide
substantial insight on real groups of genes.
Graphical Representation of Expression Patterns
Before
Clustering
After
Clustering
Cluster of genes coding
ribosomal proteins
Clusters of genes coding
myelin
Tightness of a cluster C of points
diameter
max{ || x – y || | x and y are points in C }
intra-class variance (1 / |C| ) S x in C || x – c(C) ||2
|C|
number of points in C
c(C) centroid (mean) of C, S x in C x
k-clustering of a set S of points
a partition of S into k disjoint nonempty subsets
(clusters) C1, …, Ck
Optimization criteria
Minimizing the maximum value of diameters or
intra-class variances of all clusters
Diameter Problem
• NP-hard if k is treated as a variable
• Approximation within a factor a of the optimal diameter
is NP-hard for a < 2.
• Approximation factor of 2 is achieved by
furthest point heuristic in O(n k)-time.
(n = number of points)
• O(n log k)-time version
Diameter1
Intra-class variance1
=
>>
Diameter2
Intra-class variance2
Intra-class Variance Problem
• O(n (d+2)k+1 )-time algorithm (d = number of dimensions)
• O(n(1/e)d )-time e-approximate 2-clustering algorithm
Problems of k-clustering
• It is hard to guess an appropriate value for k, beforehand.
• It is not easy to avoid generating a false-positive cluster of large
intra-class variance that may contain genes of different functions.
Our Approach
• Perform hierarchical clustering by e-approximate 2-clustering.
• Stop dividing a cluster if its intra-class variance is
no more than a given threshold.
Cluster of genes coding
ribosomal proteins
Clusters of genes coding
myelin
intra-class variance =209
intra-class variance = 128
講義の予定
結合ルールマイニング
• Apriori
• Dynamic Itemset Counting
• 最適区間
• 最適領域
• Correlation
情報科学的手法
2次記憶管理
主記憶管理 ハッシング
最悪計算量
NP完全 NP困難
動的計画法
凸包探索
分類問題 / 決定木 / 回帰木
• C4.5
• CART
• 最適部分集合
• NP-hardness / Parallel Search
• Optimized Ranges / Regions
• Boosting / Bagging / Weighted Majority
情報科学的方法
NP困難
分岐限定法
並列化
検索エンジン
• キーワード検索
• リンク情報の利用 Google / Clever
• 検索エンジンの動向
Clustering / Nearest Neighborhood
• k-means / k-clustering
情報科学的手法
近似アルゴリズム
グラフアルゴリズム