### Statistical clustering

```Introduction to Pattern Recognition for Human ICT
Statistical clustering
2014. 11. 7
Hyunki Hong
Contents
•
Similarity measures
•
Criterion functions
•
Cluster validity
•
k-means
•
Hierarchical clustering algorithms
Non-parametric unsupervised learning
• The concept of unsupervised learning
– A collection of pattern recognition methods that “learn
without a teacher”
– Two types of clustering methods were mentioned:
parametric and non-parametric
• Parametric unsupervised learning
– Equivalent to density estimation with a mixture of (Gaussian)
components
– Through the use of EM, the identity of the component that
originated each data point was treated as a missing feature.
Non-parametric unsupervised learning
• Non-parametric unsupervised learning
– No density functions are considered in these methods.
– Instead, we are concerned with finding natural groupings
(clusters) in a dataset.
• Non-parametric clustering involves three steps.
– Defining a measure of (dis)similarity between examples
– Defining a criterion function for clustering
– Defining an algorithm to minimize (or maximize) the criterion
function
Proximity measures
• Definition of metric
– A measuring rule (, ) for the distance between two
vectors  and  is considered a metric if it satisfies the
following properties.
– If the metric has the property (, ) = ||(, ) then it
is called a norm and denoted (, ) = || − ||
• The most general form of distance
metric is the power norm.
–  controls the weight placed on any dimension
dissimilarity, whereas  controls the distance growth of
norm: a function that assigns a strictly positive length or
patterns that are further apart.
size to each vector in a vector space
p-norm:
a real number p ≥ 1
• Most commonly used metrics are derived from the power
norm.
– Minkowski metric ( norm)
The choice of an appropriate value of  depends on the amount of
emphasis that you would like to give to the larger differences
between dimensions.
– Manhattan or city-block distance (1 norm)
When used with binary vectors, the L1 norm
is known as the Hamming distance.
– Euclidean norm (2 norm)
- Chebyshev distance (∞ norm)
• Other metrics are also popular
The Mahalanobis distance is a particular case of this distance.
– Canberra metric (for non-negative features)
- Non-linear distance
where  is a threshold and  is a distance
1. An appropriate choice for  and  for feature selection is that
they should satisfy.
2. and that  satisfies the unbiasedness and consistency conditions
of the Parzen estimator.
• The above distance metrics are measures of dissimilarity.
• Some measures of similarity also exist.
– Inner product:
The inner product is used when the vectors  and  are
normalized, so that they have the same length.
– Correlation coefficient
- Tanimoto measure (for binary-valued vectors)
Criterion function for clustering
• Once a (dis)similarity measure has been determined, we
need to define a criterion function to be optimized
– The most widely used clustering criterion is the sum-ofsquare-error.
1. This criterion measures how well the data set  = {(1, …, (} is
represented by the cluster centers  = {(1, …, (} (<)
2. Clustering methods that use this criterion are called minimum
variance.
– Other criterion functions exist, based on the scatter matrices
used in Linear Discriminant Analysis.
Cluster validity
• The validity of the final cluster solution is highly
subjective
– This is in contrast with supervised training, where a clear
objective function is known: Bayes risk
– Note that the choice of (dis)similarity measure and criterion
function will have a major impact on the final clustering
produced by the algorithms.
• Example
– Which are the meaningful clusters in these cases?
– How many clusters should be considered?
Iterative optimization
• Once a criterion function has been defined, we must find
a partition of the data set that minimizes the criterion.
– Exhaustive enumeration of all partitions, which guarantees
the optimal solution, is unfeasible.
For example, a problem with 5 clusters and 100 examples
yields 1067 partitionings
• The common approach is to proceed in an iterative
fashion.
- Find some reasonable initial partition and then
- Move samples from one cluster to another in order to
reduce the criterion function.
Iterative optimization
• These iterative methods produce sub-optimal solutions
but are computationally tractable.
• We will consider two groups of iterative methods.
– Flat clustering algorithms
1. These algorithms produce a set of disjoint clusters.
2. Two algorithms are widely used: k-means and ISODATA.
– Hierarchical clustering algorithms:
→ build a hierarchy of clusters
1. The result is a hierarchy of nested clusters.
2. These algorithms can be broadly divided into agglomerative and
divisive approaches.
The k-means algorithm
• Method
– a simple clustering procedure that attempts to minimize the
criterion function  in an iterative fashion.
1. Define the number of clusters.
2. Initialize clusters by
a. an arbitrary assignment of examples to clusters or
b. an arbitrary set of cluster centers (some examples used as
centers)
3. Compute the sample mean of each cluster.
4. Reassign each example to the cluster with the nearest mean
5. If the classification of all samples has not changed, stop, else go
to step 3.
- a particular case of the EM algorithm for mixture models.
• Vector quantization
– An application of k-means to signal
processing and communication
– Univariate signal values are usually
quantized into a number of levels.
: Typically a power of 2 so the signal can
be transmitted in binary format.
– The same idea can be extended for
multiple channels.
1. We could quantize each separate
channel.
2. Instead, we can obtain a more
efficient coding if we quantize the
overall multidimensional vector by
finding a number of multidimensional
prototypes (cluster centers).
3. The set of cluster centers is called a
codebook, and the problem of finding
this codebook is normally solved using
the k-means algorithm.
군집화
clsustering
분류와 군집화
K-means 군집화 알고리
즘 K-means 알고리즘 K-means 알고리즘의 특성
계층적 군집화
계층적 군집화 알고리즘
계층적 군집화의 특성
매트랩을 이용한 군집화 실험
1) 분류 vs 군집화
군집화 clustering
분류 classification
(a)
(b)
각 데이터에 대한 클래스 라벨
각 데이터에 대한 클래스 라벨
(목표 출력값) 정보가 주어짐
정보가 제공되지 않음
전체 데이터만 주어짐.
교사 학습
비교사 학습
2) 군집화의 예
표본(데이터) 수가 너무 많아 각 데이터마다 일일이 특정 클래스로
라벨링하는 비용이 많은 경우에도 유용
3) 군집화가 적용 가능한 데이터의 예
(a)
(b)
장면 영상의 군집화 (예: 도시, 하늘, 자연 등)
영상 화소의 군집화
(영상 분할)
4) K-means 군집화 알고리즘
주어진 데이터 집합을 K개의 그룹으로 묶는 알고리즘
K개의 각 그룹의 대표벡터: 해당 그룹 내에 속하는 데이터들의 평균
① 시작
② 데이터 그룹핑
4) K-means 군집화 알고리즘
③ 대표벡터 수정
④ 반복 여부 결정
5) K-means 알고리즘의 적용 과정 ①
8
8
(a) initial state
7
7
6
6
5
5
4
4
3
3
2
2
1
1
0
0
1
2
3
4
5
6
7
8
0
0
(b) iteration = 1 (데이터 그룹핑)
1
2
3
4
5
6
7
8
5) K-means 알고리즘의 적용 과정 ②
8
8
(c) iteration = 1 (대표벡터 수정)
7
7
6
6
5
5
4
4
3
3
2
2
1
1
0
0
1
2
3
4
5
6
7
8
(d) iteration = 2
0
0
1
2
3
4
5
6
7
8
5) K-means 알고리즘의 적용 과정 ③
8
8
(e) iteration = 3
7
7
6
6
5
5
4
4
3
3
2
2
1
1
0
0
1
2
3
4
5
6
7
8
(f) iteration = 4
0
0
1
2
3
4
5
6
7
8
6) K-means 알고리즘 특성
 실제 문제에의 적용 시 고려해야 할 사항
1. 좋은 군집을 찾는 것이 확실히 보장되는가?
2. 초기 대표벡터 설정이 성능에 미치는 영향?
3. K값을 어떻게 선택할 것인가?
7) K-means 알고리즘 특성
반복 수행 과정의 의미
K-means 알고리즘의 목적함수
→ 최소화하는 방향으로 반복 진행
각 클러스터의 분산을 모두 더한 값
J↑ : 각 클러스터 내의 데이터들이 서로 뭉쳐있지 않음
J↓ : 각 클러스터 내에서는 데이터들이 잘 결집되어 있음
7) K-means 알고리즘 특성
한 번 반복할 때마다 J의 값이 감소하는 방향으로 학습이 진행
J값을 결정하는 파라미터
대표벡터 mi
각 데이터에 대한 클러스터 라벨 rni
1. 임의의 값으로 mi가 결정된 후 rni를 결정하는 경우
J값 최소  각 데이터로부터 가장 가까운 mi 까지 거리의 합이 더해
질 수 있도록 rni 값 결정 = “K-means 알고리즘의 그룹핑 과정”
2. rni 가 고정된 후 다시 mi 를 결정하는 경우
i번째 클러스터에 속하는 데이터 합
을 mi에 대해 편미분
(∂J/∂mi = 0)
= “K-means 알고리즘의 대표벡터 수정식”
i번째 클러스터에 속하는 데이터 수
 목적함수 J를 극소화하는 지역 극소점을 찾는 것을 보장
7) K-means 알고리즘 특성
J
iteration
반복횟수에 따른 J값의 변화
7) K-means 알고리즘의 특성
초기값에 대한 의존성 문제
초기에 임의로 결정하는 대표벡터에 따라 최종적으로 찾아지는 해가 달라짐
2번 반복 후 수렴
(a)
(b)
7번 반복 후 수렴
(c)
7) K-means 알고리즘의 특성
적절한 K값의 선정 문제
문제 의존적
다양한 K값에 대해 클러스터링한 결과를 선택?
계층적 군집화 알고리즘?
계층적 군집화 알고리즘
전체 데이터를 몇 개의 배타적인 그룹으로 나누는 대신, 큰 군집이
작은 군집을 포함하는 형태로 계층을 이루도록 군집화를 수행하여
그 구조를 살펴보는 방법
 병합적 방법
• 각 데이터가 하나의 군집을 이루는 최소 군집에서 시작하여 가까운
군집끼리 단계적으로 병합하여 더 큰 군집을 만들어 가는 방법
•
N-1번의 병합 과정이 필요
 분할적 방법
• 모든 데이터가 하나의 군집에 속하는 최대 군집에서 시작하여 특정
기준에 따라 군집들을 분할해 가는 방법
• 가능한 분할 방법의 가지수 2N-1-1개  비실용적
계층적 알고리즘의 수행 과정 예
Dendrogram
: 계층적 군집화 결과 제시
K=2
CAB ={A, B}
CCD ={C, D}
계층적 알고리즘의 수행 단계
계층적 군집화의 특성
고려사항 1: 군집간 거리를 계산하는 방법
최단연결법
최장연결법
중심연결법
: 아웃라이어 영향 줄이기 위해 각 군집의 평균 벡터 구하고 이들간의 거리 이용
평균연결법
: 모든 가능한 데이터 쌍에 대해 거리 계산하고, 이 값의 평균 이용
Ward’s 방법
: 군집이 병합되는 경우, 각 군집의 크기(분산) 고려
5) 계층적 군집화의 특성
고려사항 2: 적절한 군집 개수 결정  덴드로그램 분석
덴드로그램에서 클러스터간의 거리가 증가하는 동안 클러스터의
수가 늘어나지 않고 일정 기간 동안 유지되는 지점을 찾음
=2
클러스터
MATLAB 예제
% 학습데이터의 생성 ----------------------------------K=3인 경우
X=[randn(50,2);
randn(50,2)+repmat([3 0],50,1); randn(50,2)+repmat([0 3],50,1)];
save data7_8 X;
% 대표벡터의 초기화 ----------------------------------figure(1);
plot(X(:,1),X(:,2),'*'); hold on;
N=size(X,1); K=3; m=zeros(K,2);
Xlabel=zeros(N,1);
% 단계 1 -- 세 개의 대표벡터를 선택
while(i<=K)
t=floor(rand*N);
% 랜덤하게 데이터 선택
if ((X(t,:)~=m(1,:))& (X(t,:)~=m(2,:)) & (X(t,:)~=m(3,:)))
m(i,:)=X(t,:);
plot(m(i,1), m(i,2),'ro');
i=i+1;
end
end
% 선택된 데이터를 대표벡터로 설정
% 대표벡터를 그래프에 표시
MATLAB 예제
% K-means 반복 알고리즘의 시작 ---------------------------(계속)
cmode=['gd'; 'b*'; 'mo'];
% 클러스터별로 표시 기호 설정
for iteration=1:10 % 단계 4 (단계 2와 3 반복)
figure(iteration+1); hold on;
% 단계 2 -- 각 데이터를 가까운 클러스터에 할당
for i=1:N
for j=1:K
d(j)=(X(i,:)-m(j,:))*(X(i,:)-m(j,:))';
end
[minv, Xlabel(i)]=min(d);
plot(X(i,1),X(i,2),cmode(Xlabel(i),:));
% 할당된 클러스터를 표시
end
% 단계 3 -- 대표벡터를 다시 계산
oldm=m;
for i=1:K
I=find(Xlabel==i);
m(i,:)=mean(X(I,:));
end
for i=1:3
plot(m(i,1), m(i,2),'ks');
% 수정된 대표벡터를 표시
end
if sum(sum(oldm-m))<10^3 iteration=101; end % 반복 완료 조건 검사
end % 단계 4 (단계 2와 3 반복)
K-means의 군집화 과정
초기 대표벡터
대표벡터와의 거리 계산을
통해 각 데이터가 그룹핑된
결과
대표벡터의 이동(수정) 방
향
4) K값의 변화에 따른 군집화 결과
(a) Data set
(b) K=2
(c) K=3
(d) K=5
01_교사와 비교사 학습
02_비교사 학습의 두 가지 접근법
03_벡터 양자화와 클러스터링
04_최적화 규준
05_k-means 알고리즘과 EM 알고리즘
06_비균일 이진 분할
07_k-means와 이진 분할의 비교와 개선: LBG 알고리즘
01_교사와 비교사 학습
 교사 학습 (supervised training)
 관측된 데이터가 특징 벡터 x와 관측값이 속해있는 클래스 ω로 이루어진 변수 쌍
{x, ω}으로 구성되는 경우
 비교사 학습 (unsupervised training)
 클래스 라벨 ωi가 주어지지 않고 특징 벡터 x={x1, x2, ..., xN} 만으로 데이터 집합이
구성되는 경우의 학습
 데이터마이닝(data mining)의 클러스터링: 비교사 학습 통해 데이터를 유사한
것끼리 모음. 정해진 기준에 맞는 데이터끼리 분류 및 체계화 하는 과정
: 데이터 간의 패턴, 규칙, 관계 등의 정보를 추정하여 관계를 체계화, 정량화하는 과정
예) 벡터 양자화 (Vector Quantization) 혹은 클러스터링(Clustering) 등
 교사학습에 비해서 성능이 제한될 수 있으나 데이터의 분석 및 처리 과정이
상대적으로 단순해지는 경향이 있음.
40
01_교사와 비교사 학습
 비교사 학습의 이용
 표본의 수가 너무 많은 경우
 각 표본마다 일일이 라벨링하는 것이 비용이 많이 드는 복잡한 과정일 경우
 원천적으로 데이터에 대한 클래스 라벨 등과 같은 정보를 미리 알 수 없는 경우
 가장 일반적인 경우
 많은 데이터 집합들을 작은 프로토타입(원형) 집합으로 분류할 수 있는 경우
 Ex: K-NNR(The K-Nearest Neighbor Rule)
41
02_비교사 학습의 두가지 접근법
 모수적 혼합 모델(Parametric mixture model) 구축 통한 방법
 다수의 확률밀도함수를 이용하여 주어진 클래스의 데이터를 모델링하는 방법
 모수적 혼합 모델
 비모수적 방법 (non-parametric method)
 주어진 클래스의 데이터에 대한 가정 없이, 데이터를 나눔. 클러스터링
 통계적 모수를 이용하지 않고 학습 데이터의 모델을 구성하는 방법 (k-means,
LBG 알고리즘 등)
42
03_벡터 양자화와 클러스터링
 벡터 양자화 (=클러스터링)
 N개의 특징 벡터 집합 x = {x1, x2, ..., xN} 을 K개의 벡터 집합 y = {y1, y2, ... ,yK}로
매핑(mapping) 또는 분류
 일반적으로 N >> K
 매핑함수 : yi = c(xi), i = 1, …, K
c(∙) : 양자화 연산자
 yi : code vectors = code words = cluster
 일반적으로는 유한 집합의 한 원소
 집합 y : 코드북(codebook)
 코드북 크기: 코드 벡터의 수
 N개의 특징 벡터 공간 x를 K개의 영역
(클러스터)으로 분할하고,
각 클러스터를 코드 벡터와 연관
→ 코드 벡터는 각 영역의 중심에 위치
43
03_벡터 양자화와 클러스터링
 벡터 양자화 (클러스터링)
 양자화 오차, 왜곡(distortion)
 벡터 집합 x가 y로 매핑되면서 필연적으로 발생되는 오차
 즉, x와 y 사이의 차이값.
 특징 벡터들간의 거리 척도(distance measure), 측량(metric) : d(x, y)
 클러스터링 방법에 맞는 양자화 오차가 별도로 정의됨.
 예) 각각의 데이터와 데이터 집합 중심점 사이의 거리
44
45
04_최적화 규준
 양자화 수행시 일반적인 왜곡 척도
 유클리드 거리
→ 집합 내의 멤버 간 거리의 합을 최소화하는 점 계산에 활용
 중심평균
 유클리드 거리 이용하는 경우, 코드 벡터의 평균값이 중심값으로 이용됨.
 N개의 벡터에서 평균왜곡
D 
1
N
N
 d (x
n
, y i(n) )
n 1
평균왜곡을 최소화하는 코드 벡터 집합 y = [y1, …, yK] 를 어떻게 찾는가?
: 인코딩되는 후보 벡터 수 N은 항상 코드벡터 수 K보다 훨씬 많고, D와 코드 벡터간
관계는 비선형적 → 반복적 최적화 과정 필요
46
04_최적화 규준
 벡터 양자화(VQ)의 세가지 문제
47
04_최적화 규준
 대표적인 클러스터링 알고리즘
 EM 알고리즘(Expectation–Maximization) : 문제 속에 정보가 숨어 있는 경우에서 최적해?
 1) 주어진 데이터에서 추정값 계산 (Expectation)
 2) 추정된 데이터에 대한 오차값 최적화 (Maximization)
 오차가 지역적인 최적값에 수렴할 때까지 1)과 2)를 반복(iteration)
 초기값 선택이 최적화 성공의 결정적인 요소가 됨.
 K-Means 알고리즘
 가장 간단한 형태의 EM 알고리즘
 1) 임의의 초기값 중심으로 클러스터를 선택하여 결정
 2) 구성된 클러스터 내에서 벡터 집합의 중심점 계산
 양자화 오차가 수렴할 때까지 1)과 2)를 반복
48
04_최적화 규준
 k-means 알고리즘
 다음과 같이 주어지는 criterion function을 반복적으로 최소화시키는 군집화
(clustring) 과정.
C
1
2
J MSE    x   i
where μ i 
x
i 1 x   i
N
x  i
 클러스터의 개수를 결정
 임의의 클러스터 중심을 할당하여 클러스터 초기화
 각각의 클러스터에 대하여 표본 평균을 구함
 각각의 표본을 가장 근접한 평균을 갖는 클러스터로 다시 할당함
 모든 표본에 변화가 없으면 알고리즘 중지 또는 3번 단계로 이동하여 계속 수행
49
05_k-means 알고리즘과 EM알고리즘
 K-Means 알고리즘
50
05_k-means 알고리즘과 EM알고리즘
 K-Means 알고리즘의 장/단점
 각 클러스터에 할당되는 중심 벡터의 초기값에 매우 민감함.
 생성되는 코드 북의 신뢰도가 비교적 높지만 수행시간이 길 수 있음.
 초기에 주어지는 K개의 코드 벡터 모두에 대한 왜곡값을 계산해야 함.
51
06_비균일 이진 분할 (Non-Uniform Binary Split)
 비균일 이진 분할 (Non-Uniform Binary Split)
 데이터 집합을 순차적으로 클러스터와 부클러스터(sub-cluster)로 분할
 초기에 데이터 집합을 두 개로 나누며, K개가 생성될 때까지 반으로의 분할과정 반복
 계층적 분할 기법
 이진분할기법 (binary split)
 클러스터 중 왜곡(distortion) 값이 가장 큰 클러스터만 선택해서 분할
균일 이진분할은 왜곡값에 관계없이 무조건 모든 클러스터를 분할하는 기법.
52
06_비균일 이진 분할
 이진 분할 (binary split) 알고리즘 수행 절차
 두 개의 클러스터부터 시작해서 K 개의 클러스터 집합이 생성될 때까지 수행
각 클러스터 내의 데이터 포인트와 중심점까지의 거리의 평균이 가장 큰
(정확도는 떨어지지만 수행시간은 훨씬 짧음.)
y i  c ( X a ),
y k 1  c ( X b )
53
06_비균일 이진 분할 (Non-Uniform Binary Split)
 비균일 이진 분할 (Non-Uniform Binary Split)
 클러스터 중 왜곡(distortion) 값이 가장 큰 클러스터만 선택해서 분할
 log K 번의 이진 검색 통해 가장 가까운 중심 찾음.
 즉, k-means보다 수행속도가 빠름.
 클러스터 간 경계(boundary)가 일단 결정되면 클러스터 경계가 바뀌지 않음.
 k-means의 경우 매번 수행 시 갱신됨.
 수행 시간은 빠르지만 생성되는 코드북의 신뢰도가 다소 낮아지는 단점이 있음.
k-mans 통해 클러스터 찾고 두 클래스의 중심을 연결하며, 이 직선을 수직 이등분하는 선분이
최적 경계. 각 클러스터 중심에 가까운 점을 해당 클러스터에 포함
54
06_비균일 이진 분할
55
07_k-means와 이진 분리의 비교와 개선 : LBG 알고리즘
 이진 분리 결과를 k-means의 초기값으로 이용하는 기법
 이진 분리로 구한 중심을 k-means 초기값으로 이용하면 표준 k-means의 경우보다
성능이 좀 더 향상됨.
 이진 분리와 k-means가 결합된 알고리즘 : LBG알고리즘
56
08_ MATLAB 실습
57
08_ MATLAB 실습
58
```