nj-slide.odp

Download Report

Transcript nj-slide.odp

方言研究
(ももたろう)
平成18年 12月 2日 (土)
谷研究室
堀中 幸司
1
目次
はじめに (堀中)
背景・目的 (堀中)
Kolmogorov 記述量 (堀中)
Kolmogorov 記述量に基づいた類似度に関する距離 (高野)
UPGMA (高野)
NJ法 (堀中)
Quartet method
研究結果・考察 (関根)
今後の課題 (関根)
2
はじめに
店舗のPOS(販売時点管理)
店舗のPOS(販売時点管理)
システムのデータ
システムのデータ
World
WorldWide
WideWeb上の
Web上の
データ
データ
ヒトゲノムの
ヒトゲノムの
データベース
データベース
電子的に蓄えられる情報が飛躍的に増加!!
電子的に蓄えられる情報が飛躍的に増加!!
3
はじめに
データマイニングとは
データマイニングとは
蓄積された大量のデータから有用な情報を
蓄積された大量のデータから有用な情報を
自動的に抽出すること
自動的に抽出すること
大量のデータ
大量のデータ
有用な情報
有用な情報
4
目次
はじめに (堀中)
背景・目的 (堀中)
Kolmogorov 記述量 (堀中)
Kolmogorov 記述量に基づいた類似度に関する距離 (高野)
UPGMA (高野)
NJ法 (堀中)
Quartet method (関根)
研究結果・考察 (関根)
今後の課題 (関根)
5
目的
Kolmogorov
Kolmogorov 記述量に基づいた類似度に関する距離
記述量に基づいた類似度に関する距離
DNAの類似度
DNAの類似度
言語の類似度
言語の類似度
音楽の類似度
音楽の類似度
に有用といった実験結果が存在
に有用といった実験結果が存在
6
目的
Kolmogorov
Kolmogorov 記述量に基づいた類似度に関する距離を
記述量に基づいた類似度に関する距離を
用いて日本の方言の自動分類する
用いて日本の方言の自動分類する
クラスタリング
クラスタリング
✗ UPGMA
✗ UPGMA
✗ NJ
✗ NJ
✗ Quartet method
✗ Quartet method
7
目次
はじめに (堀中)
背景・目的 (堀中)
Kolmogorov 記述量 (堀中)
Kolmogorov 記述量に基づいた類似度に関する距離 (高野)
UPGMA (高野)
NJ法 (堀中)
Quartet method (関根)
研究結果・考察 (関根)
今後の課題 (関根)
8
Kolmogorov 記述量
83 86 77 15 93 35 86 92 49
#include<stdio.h>
21
int main(){
62 27 90 59 63 26 40 26 72
int i,j;
36
for(j=0;j<10;j++){
11 68 67 29 82 30 62 23 67
for(i=0;i<10;i++){
35
printf(" %2d ",random()%100);
29 2 22 58 69 67 93 56 11
}
42
printf("\n");
29 73 21 19 84 37 98 24 15
}
70
return(0);
13 26 91 80 56 73 62 70 96
}
81
5 25 84 27 36 5 46 29 13
57
24 95 82 45 14 67 34 64 43
データ
XX のKolmogorov
50
データ
のKolmogorov 記述量
記述量
87 8 76 78 88 84 3 51 54
99
32 60 76 68 39 12 26 86 94
39
あるプログラム言語で生成する、
あるプログラム言語で生成する、
最小のプログラムサイズ(ビット数)と定義
最小のプログラムサイズ(ビット数)と定義
9
Kolmogorov 記述量
x:111110000
0
#include<stdio.h>
int main(){
int i;
for(i=0;i<5;i++){
printf("1");
}
for(i=0;i<5;i++){
printf("0");
}
return(0);
}
どのプログラム言語を選んでも情報量は
定数分の差しかないことが証明されている
Kolmogorov 記述量
補助情報yに対するデータxのKolmogorov 記述量
x:11111000001111100000111110000011111000001111100000
y:1111100000
#include<stdio.h>
int main(){
int i,y=1111100000;
for(i=0;i<5;i++){
printf("%d",y);
}
return(0);
}
K  x∣y
Kolmogorov 記述量
: の記述量
: を用いた の記述量
に含まれる の情報量
: と の記述量
I  x : y=K  y−K  y∣x
I  x : y=I  y : x 
目次
はじめに (堀中)
背景・目的 (堀中)
Kolmogorov 記述量 (堀中)
Kolmogorov 記述量に基づいた類似度に関する距離 (高野)
UPGMA (高野)
NJ法 (堀中)
Quartet method (関根)
研究結果・考察 (関根)
今後の課題 (関根)
13
NJ法
(neighbor-joining method・近隣結合法)
無根系統樹作成法の一種
NJ法は個々の系統の進化速度が異なっている時に有効
(Saitou and Nei 1987)
14
NJ法(近隣結合法) アルゴリズム
Lを全ての葉の集合として初期化
Lを全ての葉の集合として初期化
ペアi,jを選ぶ
ペアi,jを選ぶ
新ノードkを作成、Lに追加、各ノードヘの距離を計算
新ノードkを作成、Lに追加、各ノードヘの距離を計算
No
ペアi,jをLから削除
ペアi,jをLから削除
∣L∣=2
Yes
残った葉に枝を張って終了
残った葉に枝を張って終了
15
NJ法(近隣結合法) アルゴリズム
Lを全ての葉の集合として初期化
Lを全ての葉の集合として初期化
ペアi,jを選ぶ
ペアi,jを選ぶ
新ノードkを作成、Lに追加、各ノードヘの距離を計算
新ノードkを作成、Lに追加、各ノードヘの距離を計算
No
ペアi,jをLから削除
ペアi,jをLから削除
∣L∣=2
Yes
残った葉に枝を張って終了
残った葉に枝を張って終了
16
NJ法(近隣結合法) アルゴリズム
d(i,j) A
A
B
C
D
E
F
B
5
C
4
7
D
7
10
7
E
6
9
6
5
F
8
11
8
9
8
A
B
F
C
E
D
L ={A , B , C , D , E , F }
17
NJ法(近隣結合法) アルゴリズム
Lを全ての葉の集合として初期化
Lを全ての葉の集合として初期化
ペアi,jを選ぶ
ペアi,jを選ぶ
新ノードkを作成、Lに追加、各ノードヘの距離を計算
新ノードkを作成、Lに追加、各ノードヘの距離を計算
No
ペアi,jをLから削除
ペアi,jをLから削除
∣L∣=2
Yes
残った葉に枝を張って終了
残った葉に枝を張って終了
18
NJ法(近隣結合法) アルゴリズム
d(i,j) A
A
B
C
D
E
F
B
5
C
4
7
D
7
10
7
E
6
9
6
5
F
8
11
8
9
8
1
r i=
∑ d ik
∣L∣−2 k ∈L
rA =
1
∣6∣−2
54768 = 7.5
A
B
F
C
E
D
L ={A , B , C , D , E , F }
r A=7.5
r B=10.5
r C =8.0
r D =9.5
r E =8.5
r F =11
19
NJ法(近隣結合法) アルゴリズム
d(i,j) A
A
B
C
D
E
F
B
5
C
4
7
D
7
10
7
E
6
9
6
5
F
8
11
8
9
8
r A=7.5
r B=10.5
r C =8.0
r D =9.5
r E =8.5
r F =11
Dij =d ij −r i r j 
D(i,j) A B
A
-13
B
C
D
E
F
C
D
E
F
D AB =d AB −r A r B = 5−7.510.5
= −13
20
NJ法(近隣結合法) アルゴリズム
d(i,j) A
A
B
C
D
E
F
B
5
C
4
7
D
7
10
7
E
6
9
6
5
F
8
11
8
9
8
r A=7.5
r B=10.5
r C =8.0
r D =9.5
r E =8.5
r F =11
Dij =d ij −r i r j 
D(i,j) A B C D E
F
A
-13 -11.5 -10 -10 -10.5
B
-11.5 -10 -10 -10.5
C
-10.5 -10.5 -11
D
-13 -11.5
E
-11.5
F
D AB =d AB −r A r B = 5−7.510.5
= −13
21
NJ法(近隣結合法) アルゴリズム
d(i,j) A
A
B
C
D
E
F
B
5
C
4
7
D
7
10
7
E
6
9
6
5
F
8
11
8
9
8
D(i,j) A B C D E
F
A
-13 -11.5 -10 -10 -10.5
B
-11.5 -10 -10 -10.5
C
-10.5 -10.5 -11
D
-13 -11.5
E
-11.5
F
r A=7.5
r B=10.5
r C =8.0
r D =9.5
r E =8.5
r F =11
Dij =d ij −r i r j 
D AB =d AB −r A r B = 5−7.510.5
最小値
ペア
ー13
{A,B}
= −13
22
NJ法(近隣結合法) アルゴリズム
Lを全ての葉の集合として初期化
Lを全ての葉の集合として初期化
ペアi,jを選ぶ
ペアi,jを選ぶ
新ノードkを作成、Lに追加、各ノードヘの距離を計算
新ノードkを作成、Lに追加、各ノードヘの距離を計算
No
ペアi,jをLから削除
ペアi,jをLから削除
∣L∣=2
Yes
残った葉に枝を張って終了
残った葉に枝を張って終了
23
NJ法(近隣結合法) アルゴリズム
d(i,j) A
A
B
C
D
E
F
B
5
C
4
7
D
7
10
7
E
6
9
6
5
F
8
11
8
9
8
newnode
G
L ={A , B , C , D , E , F , G }
A
B
G
F
C
E
D
24
NJ法(近隣結合法) アルゴリズム
d(i,j) A
A
B
C
D
E
F
B
5
C
4
7
D
7
10
7
E
6
9
6
5
F
8
11
8
9
8
newnode
i =
j =
G
A
B
1
d km = d i m d jm−d ij 
2
A
B
G
C
D
F
d GC =
E
=
1
2
1
2
d A C d BC −d AB 
47−5 = 3
25
NJ法(近隣結合法) アルゴリズム
d(i,j) A
A
B
C
D
E
F
B
5
C
4
7
D
7
10
7
E
6
9
6
5
F
8
11
8
9
8
1
d km = d i m d jm−d ij 
2
i = A
d GC =
d(i,j) A
A
B
C
D
E
F
G
B
5
C
4
7
D
7
10
7
E
6
9
6
5
F
8
11
8
9
8
G
3
6
5
7
d GD =
dG E=
d GF =
j = B
1
2
1
2
1
2
1
2
d A C d BC −d AB  = 3
d AD d BD −d AB  = 6
d AE d BE −d AB  = 5
d AF d BF −d AB  = 7
26
NJ法(近隣結合法) アルゴリズム
d(i,j) A
A
B
C
D
E
F
G
B
5
C
4
7
D
7
10
7
E
6
9
6
5
F
8
11
8
9
8
G
1
4
3
6
5
7
1
d ik = d ij r i −r j 
2
d jk =d ij −d ik
d AG =
A
B
G
F
C
1
2
d AB r A −r B  = 1
d BG =d AB−d AG = 4
E
D
27
NJ法(近隣結合法) アルゴリズム
Lを全ての葉の集合として初期化
Lを全ての葉の集合として初期化
ペアi,jを選ぶ
ペアi,jを選ぶ
新ノードkを作成、Lに追加、各ノードヘの距離を計算
新ノードkを作成、Lに追加、各ノードヘの距離を計算
No
ペアi,jをLから削除
ペアi,jをLから削除
∣L∣=2
Yes
残った葉に枝を張って終了
残った葉に枝を張って終了
28
NJ法(近隣結合法) アルゴリズム
d(i,j) A
A
B
C
D
E
F
G
B
5
C
4
7
D
7
10
7
E
6
9
6
5
F
8
11
8
9
8
G
1
4
3
6
5
7
d(i,j) C
C
D
E
F
G
D
7
E
6
5
F
8
9
8
G
3
6
5
7
A
G
B
G
F
F
C
E
D
L ={A , B , C , D , E , F , G }
C
E
D
L ={C , D , E , F , G }
29
NJ法(近隣結合法) アルゴリズム
Lを全ての葉の集合として初期化
Lを全ての葉の集合として初期化
ペアi,jを選ぶ
ペアi,jを選ぶ
新ノードkを作成、Lに追加、各ノードヘの距離を計算
新ノードkを作成、Lに追加、各ノードヘの距離を計算
No
ペアi,jをLから削除
ペアi,jをLから削除
L ={CL, =
D{H
, E ,,JF} , G }
|L| = 2
Yes
残った葉に枝を張って終了
残った葉に枝を張って終了
30
NJ法(近隣結合法) アルゴリズム
Lを全ての葉の集合として初期化
Lを全ての葉の集合として初期化
ペアi,jを選ぶ
ペアi,jを選ぶ
新ノードkを作成、Lに追加、各ノードヘの距離を計算
新ノードkを作成、Lに追加、各ノードヘの距離を計算
No
ペアi,jをLから削除
ペアi,jをLから削除
∣L∣=2
Yes
残った葉に枝を張って終了
残った葉に枝を張って終了
31
NJ法(近隣結合法) アルゴリズム
|L| = 2
→
Yes
H
J
L ={H , J }
32
NJ法(近隣結合法) アルゴリズム
F
A
1
B
4
完成
5
G
1
H
1
J
1
I
2
2
E
3
C
D
33
Next is Quartet method by Mr Sekine.
34
結果
56個のファイル
35
Kolmogorov 記述量
データ X のKolmogorov 記述量
あるプログラム言語で生成する、
最小のプログラムサイズ(ビット数)と定義する。
プログラムは空の状態からスタートして、全て出力する
●
どのプログラム言語を選んでも情報量は
定数分の差しかないことが証明されている。
●
36
Kolmogorov 記述量
Kolmogorov 記述量 K S  x を
K S  x=min {∣p∣: S  p=x }
と定義する
S
∣P∣
プログラム言語
プログラムサイズ
37
補助情報があたえられた場合のKolmogorov 記述量
S
∣P∣
プログラム言語
プログラムサイズ
補助情報yに対するデータxのKolmogorov 記述量 K  x∣y を
K S  x=min {∣p∣:U  p , y=x }
と定義する
38
Kolmogorov 記述量
あるデータyが与えられているデータxを定義する
xとyを区別できる形で出力させる最短のプログラム長
K  xy=K  xK  y∣x
39
Kolmogorov 記述量 (Kのアルゴリズム的性質)
定理
(a)
関数K(x)は帰納的ではない。
φ  x
帰納的部分関数 を考えても、もしその値が
無限個の点で定義されているならば、その定義域上
φ  x≠K  x
のどこかの点で となる。
(b) 引数tに対しては単調減少で(全域的な)帰納的関数
H(t,x)が存在し lim t ∞ H t , x=K  x
すなわち、K(x)のよい近似は計算可能。
40
情報量
K  x
K  x∣y 
相対記述量が 絶対記述量 よりかなり小さい場合
「yがxについての情報を多分に含んでいる」
yに含まれるxの情報量(定数分の差異を無視)
I  x : y=K  y−K  y∣x
41
情報量
K  x
K  x∣y 
相対記述量が 絶対記述量 よりかなり小さい場合
「yがxについての情報を多分に含んでいる」
定数分の差異を無視すれば
yに含まれるxの情報量
I  x : y=K  y−K  y∣x
42
指針
方言ももたろう(株式会社富士通ビー・エス・シー)
音声fileからtxtfileを書き出す
43
前処理
文字化したデータで使用頻度が高い順にソート
ん → 0
も → 1
た → た
と文字列を変換する
44
指針
56個のファイル
56個のbzip2ファイル
3080個のcatbzip2ファイル
kolmogorov記述量を用いて距離もとめる
クラスタリング(NJ法)
45
可視化
指針
56個のファイル
ファイル
ファイル
……
ファイル
bzip2で圧縮する
56個のファイル
56個のbzip2ファイル
bzip2
bzip2
……
bzip2
46
指針
56個のファイル
ファイル
ファイル
……
ファイル
catで2つのファイルを結合
56個のファイル
3080個のcatファイル
catfile
catfile
……
catfile
結合したファイルをbzip2で圧縮
56個のファイル
3080個のcatbzip2ファイル
bzip2
bzip2
……
bzip2
47
指針
catfile
全てのファイルの組み合わせで結合(同ファイルを除く)
56×56ー56=3080通り
aichi-akita
aichi-aomori
・
・
・
yamanasi-yamaguti
48
結果
56個のファイル
49
今後の目標
1 txtデータを打ち直す
を → お
は、→ わ
へ、→ え 2 グラフを自動整列させる。
50
源氏物語
河内本 校訂本文 大島本 保坂本 陽明文庫
自動分類する
それぞれ1〜5のtxtfileで構成されている
文書ごと一つにまとめて分類する 51
源氏物語
河内本 校訂本文 大島本 保坂本 陽明文庫
自動分類する
それぞれ1〜5のtxtfileで構成されている
文書ごと一つにまとめて分類する 52
源氏物語
河内本 校訂本文 大島本 保坂本 陽明文庫
自動分類する
それぞれ1〜5のtxtfileで構成されている
txtfileの内、1つだけを使用し分類する 53
源氏物語
河内本 校訂本文 大島本 保坂本 陽明文庫
自動分類する
それぞれ1〜5のtxtfileで構成されている
txtfileの内、1つだけを使用し分類する 54
NJ法(近隣結合法) アルゴリズム
1.Lを全ての葉の集合として初期化、距離表作成
2.次の D ij が最小となるペアi,jを選ぶ
1
r i=
d ik
D ij =d ij −r i r j 
∑
∣L∣−2 k ∈L
3.新しい節点kを作り,Lの全ての葉mとの距離を
1
d km = d i m d jm−d ij 
2
4.kとi,jとの距離は,
1
d ik = d ij r i −r j 
d jk =d ij −d ik
2
5.i,jをLから除き,kを追加,2へ戻る
6.Lがi,jの2個だけになったら,枝を張って終了
55
NJ法(近隣結合法) アルゴリズム
d(i,j) A
A
B
C
D
E
F
G
B
5
C
4
7
D
7
10
7
E
6
9
6
5
F
8
11
8
9
8
G
1
4
3
6
5
7
d(i,j) C
C
D
E
F
G
D
7
E
6
5
F
8
9
8
G
3
6
5
7
A
B
G
F
C
E
D
L ={A , B , C , D , E , F }
56
NJ法(近隣結合法) アルゴリズム
Lを全ての葉の集合として初期化
Lを全ての葉の集合として初期化
ペアi,jを選ぶ
ペアi,jを選ぶ
新ノードkを作成し、各ノードヘの距離を計算
新ノードkを作成し、各ノードヘの距離を計算
ペアi,jをLから削除し、新ノードkを追加
ペアi,jをLから削除し、新ノードkを追加
∣L∣=2
残った葉に枝を張って終了
残った葉に枝を張って終了
57
NJ法(近隣結合法) アルゴリズム
Lを全ての葉の集合として初期化
Lを全ての葉の集合として初期化
ペアi,jを選ぶ
ペアi,jを選ぶ
新ノードkを作成し、各ノードヘの距離を計算
新ノードkを作成し、各ノードヘの距離を計算
ペアi,jをLから削除し、新ノードkを追加
ペアi,jをLから削除し、新ノードkを追加
L=2
残った葉に枝を張って終了
残った葉に枝を張って終了
58