SlideShare a Scribd company logo
1 of 50
Download to read offline
大規模データ解析応用事例
8. クラスタリングと分類分析1
情報工学部 知能情報工学科 田中宏和
講義スケジュール
1. 講義概要 & MATLAB入門
2. 行列分解1:特異値分解、行列近似、最小二乗法、擬逆行列
3. 行列分解2:主成分分析、固有顔、次元打ち切り、ランダム化SVD
4. スパース性と圧縮センシング1:フーリエ変換、圧縮センシング
5. スパース性と圧縮センシング2:スパース回帰、スパース分類、RPCA
6. 回帰分析とモデル選択1:線形回帰、非線形回帰、数値最適化
7. 回帰分析とモデル選択2:モデル選択、交差検証法、情報量基準
8. クラスタリングと分類分析1:特徴抽出、クラスタリング法
9. クラスタリングと分類分析2:教師あり学習、分類分析
10. ニューラルネットワーク1:パーセプトロン、誤差逆伝播法
11. ニューラルネットワーク2:確率勾配法、深層ネットワーク
12. 発展学習:神経データ解析
クラスタリングと分類分析1
5.1 Feature Selection and Data Mining
5.2 Supervised versus Unsupervised Learning
5.3 Unsupervised Learning: k-means
5.4 Unsupervised Hierarchical Clustering
5.5 Mixture Models and the EM algorithm
5.6 Supervised Learning and Linear
Discrimination
5.7 Support Vector Machines (SVM)
5.8 Classification Trees and Random Forest
5.9 Top 10 Algorithms in Data Mining 2008
クラスタリングと分類分析1
% 5.1 Feature Selection and Data Mining
CH05_SEC01_1_FischerExtraction.m
CH05_SEC01_1_FischerExtraction_production.m
% 5.2 Supervised versus Unsupervised Learning
CH05_SEC02_1_Fig5p7_Fig5p8.m
% 5.3 Unsupervised Learning: k-means
CH05_SEC03_1_Kmeans.m
CH05_SEC03_1_Kmeans_production.m
% 5.4 Unsupervised Hierarchical Clustering
CH05_SEC04_1_Dendrogram.m
CH05_SEC04_1_Dendrogram_production.m
% 5.5 Mixture Models and EM algorithm
CH05_SEC05_1_GaussianMixtureModels.m
% 5.6 Supervised Learning and LDA
CH05_SEC06_1_LDA_Classify.m
% 5.7 Support Vector Machine
CH05_SEC07_1_SVM.m
% 5.8 Classification Trees and Random Forest
CH05_SEC08_1_Trees.m
CH05_SEC08_1_Trees_production.m
【本日の内容】クラスタリングと分類分析1
1. 特徴量選択とデータマイニング
- 低次元の場合:アヤメデータセット
- 高次元の場合:主成分分析による特徴抽出
2. 教師あり学習と教師なし学習
- 学習のパラダイムとその代表例
3. 教師なし学習:k-平均クラスタリング
4. 教師なし学習:階層的クラスタリング
5. 混合モデルとEMアルゴリズム
特徴選択とデータマイニング
データマイニングと機械学習の目的
与えられたデータセットから、低次元(=低ランク)かつ解釈可能な
特徴空間を構築すること
→ 特徴抽出(feature extraction)
例:固有顔(Eigenface)
(フロベニウスノルムの意味で)誤差を最小化するr-個からなる特徴空
間(ランクr-行列)
特徴選択とデータマイニング
https://archive.ics.uci.edu/ml/datasets/iris
アヤメ データセット
• ヒオウギアヤメ(setosa)、ブルーブラック(versicolor)、virginica、
それぞれ50サンプルのデータ
• 三品種に関して以下の4つの特徴量
萼の長さ(sepal length)、萼の幅(sepal width)、花弁の長さ(petal
length)、花弁の幅(petal width)
>> load fisheriris;
>> meas(1:5,:) % 150*4 データ行列
ans =
5.1000 3.5000 1.4000 0.2000
4.9000 3.0000 1.4000 0.2000
4.7000 3.2000 1.3000 0.2000
4.6000 3.1000 1.5000 0.2000
5.0000 3.6000 1.4000 0.2000
>> species(1:5) % 150*1 セル(ラベル )
ans =
5×1 cell array
{'setosa'}
{'setosa'}
{'setosa'}
{'setosa'}
{'setosa'}
特徴選択とデータマイニング
萼の長さ(cm)
花弁の長さ(cm)
萼の幅(cm)
• setosaと他の二種は萼の長さで弁別
できる。
• versicolorとvirginicaは花弁の長さで
弁別できる。
• データが比較的低次元(この場合4次元)
• クラスを特徴づける量を見出すのはそれほど難しくない。
主成分分析による特徴抽出:原画像
CH05_SEC01_1_FischerExtraction.m
イヌ画像80枚 ネコ画像80枚
%%
load dogData.mat; % イヌ画像80枚
load catData.mat; % ネコ画像80枚
CD=double([dog cat]); % 4096*160行列
% 特異値分解で特徴抽出
[u,s,v]=svd(CD-mean(CD(:)),'econ');
問題点
各画像データは64×64=4096次元
→ 低次元の特徴量を見つける必要
特異値分解による特徴量抽出(復習)
1x 2x mx 1u 1v
1σ= 2u 2v
2σ mu mv
mσ+ + +
2 21 1 1 2 m m mσ σ σ+= = + +X ΣU u v u v u vV    
, , ,n m n m m m m m× × × ×
∈ ∈ ∈ ∈X ΣU V   

特異値分解による特徴量抽出(復習)
1x 2x mx 1u 1v
1σ= 2u 2v
2σ mu mv
mσ+ + +
1x 1u1σ 11v 2u2σ 12v 1u1σ 1mv+ + +=
x1 だけ取り出す
• x1は左特異ベクトル の重み付
け和として書ける
• その重み付け係数は行列Vの成分
• すなわち、重み付け係数を指定
することで、データx1を表現する
ことができる。
{ }1u
{ }11 12 1, , , mv v v

特異値分解による特徴量抽出(復習)
1x 1u1σ 11v 2u2σ 12v 1u1σ 1mv+ + += ≈ 1u1σ 11v rurσ 1rv+ +
( )11 1, , r
rvv ∈ 

( )11 1, , m
mvv ∈ 

1
n
∈x 
データ 特異値分解の係数 低次元近似
特異値分解による特徴量抽出(復習)
1x 2x mx = n m×U m m×Σ ( )m m×
V
n r×U
r r×Σ ( )r m×
V 
≈
>> [U, S, V] = svd(X, 'econ');
>> Utilde = U(:,1:r);
Vtilde = V(:,1:r);
Stilde = S(1:r,1:r);
主成分分析による特徴抽出:原画像
CH05_SEC01_1_FischerExtraction.m
イヌ画像80枚 ネコ画像80枚
%%
load dogData.mat; % イヌ画像80枚
load catData.mat; % ネコ画像80枚
CD=double([dog cat]); % 4096*160行列
% 特異値分解で特徴抽出
[u,s,v]=svd(CD-mean(CD(:)),'econ');
問題点
各画像データは64×64=4096次元
→ 低次元の特徴量を見つける必要
主成分分析による特徴抽出:原画像
PC1
PC2
PC3
PC4
イヌ画像80枚 ネコ画像80枚
主成分分析による特徴抽出:ウェーブレット変換画像
load dogData_wave.mat
load catData_wave.mat
CD2=double([dog_wave cat_wave]);
CH05_SEC01_1_FischerExtraction.m
イヌ画像80枚 ネコ画像80枚
主成分分析による特徴抽出:ウェーブレット変換画像
PC1
PC2
PC3
PC4
イヌ画像80枚 ネコ画像80枚
主成分分析による特徴抽出:原画像とウェーブレット変換画像の比較
原画像の主成分 ウェーブレット変換画像の主成分
ここで演習
• 特徴量抽出のコードCH05_SEC01_1_FischerExtraction_production.mを走らせてみま
しょう。
- アヤメのデータに関して、1, 2, 4方向以外での3次元プロットを描いてみましょう。
plot3(x1(:,1),x1(:,2),x1(:,4),'ro','Linewidth',[1],'MarkerEdgeColor','k','MarkerFaceColor',[0 1 0.2],'MarkerSize',8), hold on
plot3(x2(:,1),x2(:,2),x2(:,4),'bo','Linewidth',[1],'MarkerEdgeColor','k','MarkerFaceColor',[0.9 0 1],'MarkerSize',8)
plot3(x3(:,1),x3(:,2),x3(:,4),'bo','Linewidth',[1],'MarkerEdgeColor','k','MarkerFaceColor',[1 0.64 0.098],'MarkerSize',8)
- ネコのデータに関して、1, 2, 3方向以外での3次元プロットを描いてみましょう。
plot3(v(1:80,1),v(1:80,2),v(1:80,3),'ro','Linewidth',[1],
'MarkerEdgeColor','k',...
'MarkerFaceColor',[0 0 1],...
'MarkerSize',8), hold on % [0.49 1 .63]
plot3(v(81:end,1),v(81:end,2),v(81:end,3),'bo','Linewidth
',[1],'MarkerEdgeColor','k',...
'MarkerFaceColor',[1 0 0],...
'MarkerSize',8)
入力 出力
教師なし学習
入力のみが与えられた
際の学習
入力 出力
報酬強化学習
出力に対する報酬が与
えられた際の学習
入力 出力
正解出力
誤差
+
―
教師あり学習
入力に対する正解出力
(教師信号)が与えら
れた際の学習 ( )⋅f
( )⋅f
( )⋅f
教師あり学習・教師なし学習・強化学習
教師あり学習:教師信号(正解)から学ぶ学習
入力 出力
正解出力
誤差
+
―
教師あり学習
入力に対する正解出力(教師信号)
が与えられた際の学習
訓練データ:入力xと正解出力 の組
( ) ( ) ( )21 21
,ˆ ˆ ˆ, , , , ,P P
x y x y x y
目的:任意の入力xに対する出力yの関数f
( ),=y f x W
( ),f x W
x y
ˆy
ˆy
教師あり学習:教師信号(正解)から学ぶ学習
入力
データ
ラベル
{ }{ }1, ,2, ,n
j Z mj∈ ∈ =x  
{ }{ },1j Zj Z′∈ ± ∈ ⊂y
{ }{ }1 ,j Zj∈ ± ∈y
出力
ラベル
クラス+1
クラスー1
ラベル無し
クラス+1
クラスー1
教師なし学習:入力データの統計性から学ぶ学習
入力 出力
教師なし学習
入力のみが与えられた際の学習
訓練データ:入力xの組
21
, , , P
x x x
目的:(高次元)入力xに対する(低次元)出力yの関数f
( ),=y f x W
( ),f x W
x y
教師なし学習:入力データの統計性から学ぶ学習
入力
データ { }{ }1, ,2, ,n
j Z mj∈ ∈ =x  
{ }{ }1 ,j Zj∈ ± ∈y
出力
ラベル
クラス+1
クラスー1
教師あり学習・教師なし学習の例
教師あり学習
• 分類問題
• 回帰問題
教師なし学習
• クラスタリング(k-平均法、階層クラスタリング、混合モデル)
• 次元縮約(特異値分解、主成分分析)
• 特徴抽出(独立成分分析、非負行列因子分解)
• 多様体学習(多次元尺度更生法、ISOmap, Locally Linear Embedding)
• 外れ値検出
クラスタリングの手法
• k-平均クラスタリング法(k-means clustering)
直観的で使いやすい、広く使われている方法
クラスタ毎に分布が異なる場合に問題
MATLABコマンド: kmeans
• 階層的クラスタリング法(hierarchical clustering)
局所的な距離に基づくクラスタリング法
MATLABコマンド: linkage, dendrogram, cluster
• ガウシアン混合モデル(Gaussian mixture model)
混合分布に基づくクラスタリング法
EMアルゴリズムによる推定
情報量基準によるクラスタ数の系統的な決定
MATLABコマンド: fitgmdist
教師なし学習の例:クラスタリング問題
k-平均クラスタリング法(Lloyd アルゴリズム (1957))
以下の評価関数を最小にするように、データ をk-個のクラスターに分割する
1
2
ji
i j
D
k
j ∈=
−∑∑ μx
1. 【クラスター分けの更新】各データ点のラベルを、一番近い平均値のものに決める。
2. 【クラスタ平均値の更新】j番目のクラスターに属するデータ点の集合をDjとしたとき、
各クラスの平均値を更新する。
arg mini i j
j
j = −x μ
1
j
j i
DijD ∈
= ∑xμ
{ }ix
教師なし学習の例:クラスタリング問題
k-平均クラスタリング法(Lloyd アルゴリズム (1957))
初期化: k個のクラスタリング平均値をランダムにとる
1. 各データ点のラベルを、一番近い平均値のものに決める。
2. ステップ1でつけたラベルに従い、各クラスの平均値を更新する。
3. ラベルと平均値が収束するまで、ステップ1とステップ2を繰り返す。
+
+
+
+
+
+
+
+
+ +
教師なし学習:k-平均クラスタリング(k-means clustering)
k-平均法の成功例:2クラスの分散が等しいとき
CH05_SEC03_1_Kmeans_production.m
教師なし学習:k-平均クラスタリングの問題点
k-平均法の失敗例:2クラスの分散が異なるとき
k-平均法では、2クラスの分散(ばらつき)が等しいと暗に仮定
→ 分散が異なるデータに適用すると、うまく働かない場合もある
CH05_SEC03_1_Kmeans_production.m
教師なし学習:k-平均クラスタリング(k-means clustering)
k-平均法:MATLABコード CH05_SEC03_1_Kmeans_production.m
% kmeans code
>> [ind,c]=kmeans(Y,2); % データ行列Yをk=2クラスにクラスタリング
>> Y(1:10,:)
ans =
2.3370 -0.6895
2.9929 0.0962
2.9980 -0.0764
2.0982 -0.6789
1.7131 -1.0508
1.0304 -1.3045
2.0875 -0.2267
3.6068 1.0786
2.7084 0.1866
2.4458 -0.7135
>> c
c =
2.1698 -0.5501
-0.1829 -0.0536
>> ind(1:10)
ans =
1
1
1
1
1
1
1
1
1
1
データ1
データ2
データ3
150のデータ点
クラス1の重心位置
クラス2の重心位置
150のデータ点に対応するクラスラベル
k-平均クラスタリング:画像処理の例
clear all; clc; close all;
x = imread(‘../data/dog.jpg'); % load the image
[nx,ny,~] = size(x); % image size
figure(1); imshow(x);
X = squeeze(reshape(x,nx*ny,1,3)); % vectorize the image
X = double(X); % convert into double type
% k-means clustering
K = 10;
[idx, means] = kmeans(X, K);
% replace the color with the mean value of the cluster
X1 = zeros(size(X));
for k=1:K
X1(idx==k,:) = repmat(means(k,:),sum(idx==k),1);
end
X1 = reshape(X1,nx,ny,3); % matricize the vector
X1 = uint8(X1); % convert into integer type
figure(2); imshow(X1);
demo_Kmeans_Image.m (WebClassにあります)
ここで演習
• k-平均法のコードCH05_SEC03_1_Kmeans_production.mを走らせてみましょう。コー
ドを書き換えて、共分散行列が等しい場合にk-平均法がどのように動くか、見てみ
ましょう。
% random ellipse 1 centered at (0,0)
x=randn(n1+n2,1); y=0.5*randn(n1+n2,1);
% random ellipse 2 centered at (1,-2) and rotated by theta
x2=randn(n1+n2,1)+1; y2=0.2*randn(n1+n2,1)-2; theta=pi/4;
A=[cos(theta) -sin(theta); sin(theta) cos(theta)];
x3=A(1,1)*x2+A(1,2)*y2; y3=A(2,1)*x2+A(2,2)*y2;
% random ellipse 1 centered at (0,0)
x=randn(n1+n2,1)-2.2; y=0.5*randn(n1+n2,1);
x3=randn(n1+n2,1)+2.2; y3=0.5*randn(n1+n2,1);
共分散行列が異なる場合(もともとのコード) 共分散行列が等しい場合
• 画像処理のコードdemo_Kmeans_Image.m(WebClassにあります)を実行してみま
しょう。
教師なし階層クラスタリング:デンドログラム
階層クラスタリング:凝縮型(agglomerative)のアプローチ
- 最近接のデータ対を逐次的にまとめて(凝縮)いく方法
- まとめた結果をデンドログラム(樹形図)として表示
デンドログラム
(dendrogram)
(1) すべてのデータ対の距離を計算
する
(2) 最も近い対を見つけ、それを一
つにまとめる
教師なし階層クラスタリング
Y3=[X1(1:50,:); X2(1:50,:)];
Y2 = pdist(Y3,'euclidean'); % pairwise distance
Z = linkage(Y2,'average'); % hierarchical clustering
figure(1);
thresh = 0.85*max(Z(:,3));
[H, T, O] = dendrogram(Z, 100,
'ColorThreshold',thresh);
axis off square;
figure(2);
thresh = 0.25*max(Z(:,3));
[H, T, O] = dendrogram(Z,100,'ColorThreshold',thresh);
axis off square;
CH05_SEC04_1_Dendrogram_production.m
>> Y2(1:10)
ans =
Columns 1 through 7
0.9408 0.3609 0.7604 0.3216 1.5054
1.3019 0.6734
Columns 8 through 10
0.7518 1.3065 0.3372
>> Z(1:10,:)
ans =
26.0000 27.0000 0.0248
3.0000 42.0000 0.0266
19.0000 43.0000 0.0375
7.0000 10.0000 0.0421
62.0000 94.0000 0.0425
1.0000 46.0000 0.0475
38.0000 48.0000 0.0476
11.0000 36.0000 0.0665
16.0000 31.0000 0.0681
8.0000 22.0000 0.0708
すべてのデータ対間の距離
階層クラスタリングの情報
教師なし階層クラスタリング:デンドログラム
Y3=[X1(1:50,:); X2(1:50,:)];
Y2 = pdist(Y3,'euclidean'); % pairwise distance
Z = linkage(Y2,'average'); % hierarchical clustering
figure(1);
thresh = 0.85*max(Z(:,3));
[H, T, O] = dendrogram(Z, 100,
'ColorThreshold',thresh);
axis off square;
figure(2);
thresh = 0.25*max(Z(:,3));
[H, T, O] = dendrogram(Z,100,'ColorThreshold',thresh);
axis off square;
CH05_SEC04_1_Dendrogram_production.m
閾値=0.85
閾値=0.25
教師なし階層クラスタリング
Y3=[X1(1:50,:); X2(1:50,:)];
Y2 = pdist(Y3,'euclidean'); % pairwise distance
Z = linkage(Y2,'average'); % hierarchical clustering
figure(4); clf; hold on;
t = cluster(Z,2);
plot(Y3(t==1,1),Y3(t==1,2),'ro','Linewidth',[1],'MarkerEdgeColor','k',...
'MarkerFaceColor',[0 1 0.2],...
'MarkerSize',8), hold on % [0.49 1 .63]
plot(Y3(t==2,1),Y3(t==2,2),'bo','Linewidth',[1],'MarkerEdgeColor','k',...
'MarkerFaceColor',[0.9 0 1],...
'MarkerSize',8)
CH05_SEC04_1_Dendrogram_production.mの追記
教師なし階層クラスタリングの問題点
成功例:二つのクラスタにギャップがある場合
失敗例:二つのクラスタにギャップがない場合
階層クラスタリングの問題点:局所的な特徴量(データ対の距離)によりクラスタリングするため、データ点の位
置の少しの変化でクラスタリングの結果が変わりやすい。
ここで演習
• 階層的クラスタリングのコードCH05_SEC04_1_Dendrogram_production.mを走らせて
みましょう。
以下のコードを追記して、階層クラスタリングを図示してみましょう。
figure(4); clf; hold on;
t = cluster(Z,2);
plot(Y3(t==1,1),Y3(t==1,2),'ro','Linewidth',[1],'MarkerEdgeColor','k',...
'MarkerFaceColor',[0 1 0.2],...
'MarkerSize',8), hold on % [0.49 1 .63]
plot(Y3(t==2,1),Y3(t==2,2),'bo','Linewidth',[1],'MarkerEdgeColor','k',...
'MarkerFaceColor',[0.9 0 1],...
'MarkerSize',8)
混合モデルとExpectation-Maximizationアルゴリズム
ガウシアン混合モデル(Gaussian Mixture Model)によるクラスタリング
• データの生成過程をガウシアン混合モデルとしてモデル化
• ガウシアン混合モデル
- 確率分布のモデルで、いくつかの正規分布(ガウシアン分布)の重みづけ和
• Expectation-Maximizationアルゴリズム
- 混合モデルのパラメタ推定法。
- データに欠損値がある場合の最尤法。
ガウシアン混合モデル:1次元の例
ガウシアン混合モデル:確率分布のモデルで、いくつかの正規分布(ガウシアン分
布)の重みづけ和
( ) ( )
1
; ,k
K
k
k kp α
=
= ∑ x μ Σx 
x = linspace(-4,4,201);
alpha1 = 0.2; n1 = normpdf(x, -2, 0.25);
alpha2 = 0.2; n2 = normpdf(x, -0.3, 1);
alpha3 = 0.6; n3 = normpdf(x, 1, 0.5);
p = alpha1*n1 + alpha2*n2 + alpha3*n3;
figure(1); clf; hold on;
plot(x, alpha1*n1, 'r--');
plot(x, alpha2*n2, 'g--');
plot(x, alpha3*n3, 'b--');
plot(x, p, 'k');
例:一次元正規分布、K=3の場合
( )2
1 1; ,x µ σ
( )2
1 1; ,x µ σ
( )2
1 1; ,x µ σ
ガウシアン混合モデル:2次元の例
ガウシアン混合モデル:確率分布のモデルで、いくつかの正規分布(ガウシアン分
布)の重みづけ和
( ) ( )
1
; ,k
K
k
k kp α
=
= ∑ x μ Σx 
例:2次元正規分布、K=3の場合
= α1 +α2 +α3
( )1 1; ,x μ Σ ( )2 2; ,x μ Σ ( )3 3; ,x μ Σ( )p x
ガウシアン混合モデルからの標本生成
ガウシアン混合モデルからの標本生成
混合係数
正規分布のパラメタ
{ }kα
{ },k kμ Σ
N個の標本(サンプル点){ } 1
N
i i=
x
( ) ( )
1
; ,k
K
k
k kp α
=
= ∑ x μ Σx  { } 1
N
i i=
x
alpha1 = 0.3;
alpha2 = 0.4;
alpha3 = 0.3;
mu1 = [-2 0];
mu2 = [ 1.5 -1];
mu3 = [ 0 +1];
Sigma1 = [1.2500 -0.4330; -0.4330 1.7500];
Sigma2 = [1.7500 0.4330; 0.4330 1.2500];
Sigma3 = [1 0; 0 1];
Sigma = zeros(2,2,3);
Sigma(:,:,1) = Sigma1;
Sigma(:,:,2) = Sigma2;
Sigma(:,:,3) = Sigma3;
mu = [mu1; mu2; mu3];
alpha = [alpha1 alpha2 alpha3];
gm = gmdistribution(mu, Sigma, alpha);
x = gm.random(3000);
Expectation-Maximizationアルゴリズム:混合モデルのパラメタ推定
( ) ( )1
ˆˆ ˆ;ˆ ,k k k
K
k
p α
=
= ∑ x μ Σx { } 1
N
i i=
x
Expectation-Maximization (EM) アルゴリズム
データから混合モデルのパラメタを推定
N個の標本(サンプル点){ } 1
N
i i=
x
混合係数
正規分布のパラメタ
{ }ˆkα
{ }ˆˆ ,k kμ Σ
options = statset('MaxIter',1000);
fm = fitgmdist(x,3, 'options', options);
Expectation-Maximizationアルゴリズム:混合モデルのパラメタ推定
Expectation-Maximization (EM) アルゴリズム
E-ステップ
現在(m回目)のパラメタ を用いて、サンプル点 xj がクラスkに
属する事後確率を計算
M-ステップ
上記の事後確率を用いて、パラメタを更新
( ) ( )
{ } ( )
{ } ( )
{ }( ), ,
m m m m
k k kα=Θ μ Σ
( )
( )
( ) ( ) ( )
( )
( )
( )
; ,
;
m m m
k k km
k m
j
j
j
α
τ =
x μ Σ
x Θ
x


( ) ( )
( )
( )
( )
( )
( )
( )
( )
( )
( ) ( )
( ) ( )
( )
( )
( )
1
1
1 1
1
1 1
11
1
1
j
j
n
m m
k k
j
n m
km j
k n m
kj
n m m m
j
k k kjm
k n
j
j
j j j
m
kj
n
α τ
τ
τ
τ
τ
+
=
+ =
=
+ +
=+
=
=
=
− −
=
∑
∑
∑
∑
∑
x
x
x
x
x
x
μ
x μ x μ
Σ

( ) ( )
{ } ( )
{ } ( )
{ }( ) ( ) ( )
{ } ( )
{ } ( )
{ }( )1 1 1 1
, , , ,m m m m m m m m
k k k k k kα α+ + + +
= =→Θ μ Σ Θ μ Σ
混合モデルとExpectation-Maximizationアルゴリズム
CH05_SEC05_1_GaussianMixtureModels.m
イヌ
ネコ
load catData_w.mat; % ネコ画像データ(ウェーブレット変換)
load dogData_w.mat; % イヌ画像データ(ウェーブレット変換)
CD = [dog_wave cat_wave];
[u,s,v] = svd(CD-mean(CD(:))); % 特異値分解
dogcat = v(:,2:2:4); % 特徴量として主成分2と4を採用
GMModel = fitgmdist(dogcat,2); % ① 混合ガウスモデルでフィット
AIC = GMModel.AIC; % モデルのAICを計算
estimatedLabels = cluster(GMModel, dogcat); % ② クラスを推定
① 混合ガウスモデルでフィット ② クラスを推定
混合モデルとExpectation-Maximizationアルゴリズム
CH05_SEC05_1_GaussianMixtureModels.m
#正規分布 1 #正規分布 2 #正規分布 4#正規分布 3
混合モデルとExpectation-Maximizationアルゴリズム
CH05_SEC05_1_GaussianMixtureModels.m
#正規分布 1 #正規分布 2
#正規分布 4#正規分布 3
どのモデル(=正規分布の個数)が適切か?
→ AICを用いてモデル比較
この場合、正規分布の個数=2とするのが適切
ここで演習
• 混合モデルのコードCH05_SEC05_1_GaussianMixtureModels.mを実行してみましょう。
イヌネコデータから推定されたガウス混合モデルの以下のパラメタを確認してみま
しょう。
GMModel.ComponentProportion % 二つの正規分布の比
GMModel.mu % 二つの正規分布の平均
GMModel.Sigma % 二つの正規分布の共分散行列
• 三個の正規分布からデータを生成するコードdemo_three_Gaussians.mがWebClassに
あります。このデータを混合モデルでフィットしてみましょう。混合分布の個数と
していくつが適当か、AIC/BICで検討してみましょう。
データ K=3での
フィット
【本日のまとめ】クラスタリングと分類分析1
1. 特徴量選択とデータマイニング
- 低次元の場合:アヤメデータセット
- 高次元の場合:主成分分析による特徴抽出
2. 教師あり学習と教師なし学習
- 学習のパラダイムとその代表例
3. 教師なし学習:k-平均クラスタリング
4. 教師なし学習:階層的クラスタリング
5. 混合モデルとEMアルゴリズム

More Related Content

What's hot

パターン認識第9章 学習ベクトル量子化
パターン認識第9章 学習ベクトル量子化パターン認識第9章 学習ベクトル量子化
パターン認識第9章 学習ベクトル量子化
Miyoshi Yuya
 
はじめてのパターン認識 第5章 k最近傍法(k_nn法)
はじめてのパターン認識 第5章 k最近傍法(k_nn法)はじめてのパターン認識 第5章 k最近傍法(k_nn法)
はじめてのパターン認識 第5章 k最近傍法(k_nn法)
Motoya Wakiyama
 
今さら聞けないカーネル法とサポートベクターマシン
今さら聞けないカーネル法とサポートベクターマシン今さら聞けないカーネル法とサポートベクターマシン
今さら聞けないカーネル法とサポートベクターマシン
Shinya Shimizu
 
ベイズ統計入門
ベイズ統計入門ベイズ統計入門
ベイズ統計入門
Miyoshi Yuya
 

What's hot (20)

パターン認識第9章 学習ベクトル量子化
パターン認識第9章 学習ベクトル量子化パターン認識第9章 学習ベクトル量子化
パターン認識第9章 学習ベクトル量子化
 
[DL輪読会]Deep Learning 第5章 機械学習の基礎
[DL輪読会]Deep Learning 第5章 機械学習の基礎[DL輪読会]Deep Learning 第5章 機械学習の基礎
[DL輪読会]Deep Learning 第5章 機械学習の基礎
 
東京都市大学 データ解析入門 7 回帰分析とモデル選択 2
東京都市大学 データ解析入門 7 回帰分析とモデル選択 2東京都市大学 データ解析入門 7 回帰分析とモデル選択 2
東京都市大学 データ解析入門 7 回帰分析とモデル選択 2
 
データサイエンス概論第一=2-1 データ間の距離と類似度
データサイエンス概論第一=2-1 データ間の距離と類似度データサイエンス概論第一=2-1 データ間の距離と類似度
データサイエンス概論第一=2-1 データ間の距離と類似度
 
機械学習のためのベイズ最適化入門
機械学習のためのベイズ最適化入門機械学習のためのベイズ最適化入門
機械学習のためのベイズ最適化入門
 
はじめてのパターン認識 第5章 k最近傍法(k_nn法)
はじめてのパターン認識 第5章 k最近傍法(k_nn法)はじめてのパターン認識 第5章 k最近傍法(k_nn法)
はじめてのパターン認識 第5章 k最近傍法(k_nn法)
 
東京都市大学 データ解析入門 6 回帰分析とモデル選択 1
東京都市大学 データ解析入門 6 回帰分析とモデル選択 1東京都市大学 データ解析入門 6 回帰分析とモデル選択 1
東京都市大学 データ解析入門 6 回帰分析とモデル選択 1
 
今さら聞けないカーネル法とサポートベクターマシン
今さら聞けないカーネル法とサポートベクターマシン今さら聞けないカーネル法とサポートベクターマシン
今さら聞けないカーネル法とサポートベクターマシン
 
「操作変数法」の報告事例
「操作変数法」の報告事例「操作変数法」の報告事例
「操作変数法」の報告事例
 
PRML第6章「カーネル法」
PRML第6章「カーネル法」PRML第6章「カーネル法」
PRML第6章「カーネル法」
 
データ解析8 主成分分析の応用
データ解析8 主成分分析の応用データ解析8 主成分分析の応用
データ解析8 主成分分析の応用
 
ベイズ統計入門
ベイズ統計入門ベイズ統計入門
ベイズ統計入門
 
はじめての機械学習
はじめての機械学習はじめての機械学習
はじめての機械学習
 
サポートベクトルマシン(SVM)の勉強
サポートベクトルマシン(SVM)の勉強サポートベクトルマシン(SVM)の勉強
サポートベクトルマシン(SVM)の勉強
 
スパースモデリング入門
スパースモデリング入門スパースモデリング入門
スパースモデリング入門
 
PRML 3.3.3-3.4 ベイズ線形回帰とモデル選択 / Baysian Linear Regression and Model Comparison)
PRML 3.3.3-3.4 ベイズ線形回帰とモデル選択 / Baysian Linear Regression and Model Comparison)PRML 3.3.3-3.4 ベイズ線形回帰とモデル選択 / Baysian Linear Regression and Model Comparison)
PRML 3.3.3-3.4 ベイズ線形回帰とモデル選択 / Baysian Linear Regression and Model Comparison)
 
線形計画法入門
線形計画法入門線形計画法入門
線形計画法入門
 
PRMLの線形回帰モデル(線形基底関数モデル)
PRMLの線形回帰モデル(線形基底関数モデル)PRMLの線形回帰モデル(線形基底関数モデル)
PRMLの線形回帰モデル(線形基底関数モデル)
 
冗長変換とその画像復元応用
冗長変換とその画像復元応用冗長変換とその画像復元応用
冗長変換とその画像復元応用
 
単純ベイズ法による異常検知 #ml-professional
単純ベイズ法による異常検知  #ml-professional単純ベイズ法による異常検知  #ml-professional
単純ベイズ法による異常検知 #ml-professional
 

Similar to 東京都市大学 データ解析入門 8 クラスタリングと分類分析 1

オンライン凸最適化と線形識別モデル学習の最前線_IBIS2011
オンライン凸最適化と線形識別モデル学習の最前線_IBIS2011オンライン凸最適化と線形識別モデル学習の最前線_IBIS2011
オンライン凸最適化と線形識別モデル学習の最前線_IBIS2011
Preferred Networks
 
パターン認識 04 混合正規分布
パターン認識 04 混合正規分布パターン認識 04 混合正規分布
パターン認識 04 混合正規分布
sleipnir002
 
パターン認識 08 09 k-近傍法 lvq
パターン認識 08 09 k-近傍法 lvqパターン認識 08 09 k-近傍法 lvq
パターン認識 08 09 k-近傍法 lvq
sleipnir002
 
東京大学工学部計数工学科応用音響学 D2 Clustering
東京大学工学部計数工学科応用音響学 D2 Clustering東京大学工学部計数工学科応用音響学 D2 Clustering
東京大学工学部計数工学科応用音響学 D2 Clustering
Hiroshi Ono
 
行列およびテンソルデータに対する機械学習(数理助教の会 2011/11/28)
行列およびテンソルデータに対する機械学習(数理助教の会 2011/11/28)行列およびテンソルデータに対する機械学習(数理助教の会 2011/11/28)
行列およびテンソルデータに対する機械学習(数理助教の会 2011/11/28)
ryotat
 
PRML勉強会@長岡 第4章線形識別モデル
PRML勉強会@長岡 第4章線形識別モデルPRML勉強会@長岡 第4章線形識別モデル
PRML勉強会@長岡 第4章線形識別モデル
Shohei Okada
 
正則化つき線形モデル(「入門機械学習第6章」より)
正則化つき線形モデル(「入門機械学習第6章」より)正則化つき線形モデル(「入門機械学習第6章」より)
正則化つき線形モデル(「入門機械学習第6章」より)
Eric Sartre
 
不均衡データのクラス分類
不均衡データのクラス分類不均衡データのクラス分類
不均衡データのクラス分類
Shintaro Fukushima
 
パターン認識 第12章 正則化とパス追跡アルゴリズム
パターン認識 第12章 正則化とパス追跡アルゴリズムパターン認識 第12章 正則化とパス追跡アルゴリズム
パターン認識 第12章 正則化とパス追跡アルゴリズム
Miyoshi Yuya
 

Similar to 東京都市大学 データ解析入門 8 クラスタリングと分類分析 1 (20)

東京都市大学 データ解析入門 10 ニューラルネットワークと深層学習 1
東京都市大学 データ解析入門 10 ニューラルネットワークと深層学習 1東京都市大学 データ解析入門 10 ニューラルネットワークと深層学習 1
東京都市大学 データ解析入門 10 ニューラルネットワークと深層学習 1
 
オンライン凸最適化と線形識別モデル学習の最前線_IBIS2011
オンライン凸最適化と線形識別モデル学習の最前線_IBIS2011オンライン凸最適化と線形識別モデル学習の最前線_IBIS2011
オンライン凸最適化と線形識別モデル学習の最前線_IBIS2011
 
東京都市大学 データ解析入門 9 クラスタリングと分類分析 2
東京都市大学 データ解析入門 9 クラスタリングと分類分析 2東京都市大学 データ解析入門 9 クラスタリングと分類分析 2
東京都市大学 データ解析入門 9 クラスタリングと分類分析 2
 
パターン認識 04 混合正規分布
パターン認識 04 混合正規分布パターン認識 04 混合正規分布
パターン認識 04 混合正規分布
 
パターン認識 08 09 k-近傍法 lvq
パターン認識 08 09 k-近傍法 lvqパターン認識 08 09 k-近傍法 lvq
パターン認識 08 09 k-近傍法 lvq
 
東京大学工学部計数工学科応用音響学 D2 Clustering
東京大学工学部計数工学科応用音響学 D2 Clustering東京大学工学部計数工学科応用音響学 D2 Clustering
東京大学工学部計数工学科応用音響学 D2 Clustering
 
行列およびテンソルデータに対する機械学習(数理助教の会 2011/11/28)
行列およびテンソルデータに対する機械学習(数理助教の会 2011/11/28)行列およびテンソルデータに対する機械学習(数理助教の会 2011/11/28)
行列およびテンソルデータに対する機械学習(数理助教の会 2011/11/28)
 
PRML勉強会@長岡 第4章線形識別モデル
PRML勉強会@長岡 第4章線形識別モデルPRML勉強会@長岡 第4章線形識別モデル
PRML勉強会@長岡 第4章線形識別モデル
 
正則化つき線形モデル(「入門機械学習第6章」より)
正則化つき線形モデル(「入門機械学習第6章」より)正則化つき線形モデル(「入門機械学習第6章」より)
正則化つき線形モデル(「入門機械学習第6章」より)
 
ラビットチャレンジレポート 機械学習
ラビットチャレンジレポート 機械学習ラビットチャレンジレポート 機械学習
ラビットチャレンジレポート 機械学習
 
不均衡データのクラス分類
不均衡データのクラス分類不均衡データのクラス分類
不均衡データのクラス分類
 
PATTERN RECOGNITION AND MACHINE LEARNING (1.1)
PATTERN RECOGNITION AND MACHINE LEARNING (1.1)PATTERN RECOGNITION AND MACHINE LEARNING (1.1)
PATTERN RECOGNITION AND MACHINE LEARNING (1.1)
 
パターン認識 第12章 正則化とパス追跡アルゴリズム
パターン認識 第12章 正則化とパス追跡アルゴリズムパターン認識 第12章 正則化とパス追跡アルゴリズム
パターン認識 第12章 正則化とパス追跡アルゴリズム
 
第8回スキル養成講座講義資料.pdf
第8回スキル養成講座講義資料.pdf第8回スキル養成講座講義資料.pdf
第8回スキル養成講座講義資料.pdf
 
PRML輪読#4
PRML輪読#4PRML輪読#4
PRML輪読#4
 
6 Info Theory
6 Info Theory6 Info Theory
6 Info Theory
 
Rゼミ 3
Rゼミ 3Rゼミ 3
Rゼミ 3
 
逐次モンテカルロ法の基礎
逐次モンテカルロ法の基礎逐次モンテカルロ法の基礎
逐次モンテカルロ法の基礎
 
データ解析10 因子分析の基礎
データ解析10 因子分析の基礎データ解析10 因子分析の基礎
データ解析10 因子分析の基礎
 
Rで学ぶロバスト推定
Rで学ぶロバスト推定Rで学ぶロバスト推定
Rで学ぶロバスト推定
 

More from hirokazutanaka

More from hirokazutanaka (11)

JAISTサマースクール2016「脳を知るための理論」講義04 Neural Networks and Neuroscience
JAISTサマースクール2016「脳を知るための理論」講義04 Neural Networks and Neuroscience JAISTサマースクール2016「脳を知るための理論」講義04 Neural Networks and Neuroscience
JAISTサマースクール2016「脳を知るための理論」講義04 Neural Networks and Neuroscience
 
JAISTサマースクール2016「脳を知るための理論」講義03 Network Dynamics
JAISTサマースクール2016「脳を知るための理論」講義03 Network DynamicsJAISTサマースクール2016「脳を知るための理論」講義03 Network Dynamics
JAISTサマースクール2016「脳を知るための理論」講義03 Network Dynamics
 
JAISTサマースクール2016「脳を知るための理論」講義02 Synaptic Learning rules
JAISTサマースクール2016「脳を知るための理論」講義02 Synaptic Learning rulesJAISTサマースクール2016「脳を知るための理論」講義02 Synaptic Learning rules
JAISTサマースクール2016「脳を知るための理論」講義02 Synaptic Learning rules
 
JAISTサマースクール2016「脳を知るための理論」講義01 Single neuron models
JAISTサマースクール2016「脳を知るための理論」講義01 Single neuron modelsJAISTサマースクール2016「脳を知るための理論」講義01 Single neuron models
JAISTサマースクール2016「脳を知るための理論」講義01 Single neuron models
 
Computational Motor Control: Reinforcement Learning (JAIST summer course)
Computational Motor Control: Reinforcement Learning (JAIST summer course) Computational Motor Control: Reinforcement Learning (JAIST summer course)
Computational Motor Control: Reinforcement Learning (JAIST summer course)
 
Computational Motor Control: Optimal Control for Stochastic Systems (JAIST su...
Computational Motor Control: Optimal Control for Stochastic Systems (JAIST su...Computational Motor Control: Optimal Control for Stochastic Systems (JAIST su...
Computational Motor Control: Optimal Control for Stochastic Systems (JAIST su...
 
Computational Motor Control: Optimal Estimation in Noisy World (JAIST summer ...
Computational Motor Control: Optimal Estimation in Noisy World (JAIST summer ...Computational Motor Control: Optimal Estimation in Noisy World (JAIST summer ...
Computational Motor Control: Optimal Estimation in Noisy World (JAIST summer ...
 
Computational Motor Control: State Space Models for Motor Adaptation (JAIST s...
Computational Motor Control: State Space Models for Motor Adaptation (JAIST s...Computational Motor Control: State Space Models for Motor Adaptation (JAIST s...
Computational Motor Control: State Space Models for Motor Adaptation (JAIST s...
 
Computational Motor Control: Optimal Control for Deterministic Systems (JAIST...
Computational Motor Control: Optimal Control for Deterministic Systems (JAIST...Computational Motor Control: Optimal Control for Deterministic Systems (JAIST...
Computational Motor Control: Optimal Control for Deterministic Systems (JAIST...
 
Computational Motor Control: Kinematics & Dynamics (JAIST summer course)
Computational Motor Control: Kinematics & Dynamics (JAIST summer course)Computational Motor Control: Kinematics & Dynamics (JAIST summer course)
Computational Motor Control: Kinematics & Dynamics (JAIST summer course)
 
Computational Motor Control: Introduction (JAIST summer course)
Computational Motor Control: Introduction (JAIST summer course)Computational Motor Control: Introduction (JAIST summer course)
Computational Motor Control: Introduction (JAIST summer course)
 

東京都市大学 データ解析入門 8 クラスタリングと分類分析 1