들어가기 전... 머신러닝의 앙상블 기법에 대해 알아보자.
더보기
앙상블이란?
여러 Base 모델들의 예측을 다수결 또는 평균을 이용하여 예측의 정확성을 향상시키는 방법이다.
Base 모델이 서로 독립적이며 Base 모델들이 무작위 예측을 수행하는 모델보다 성능이 좋을 때 앙상블 모델은 Base 모델보다 우수한 성능을 보인다.
앙상블 모델의 오류율 $e_{ensemble}=\sum_{i=[N/2]}^{N}\binom{N}{i}e^i(1-e)^{N-i}$
(이때 $e$:Base 모델의 오류율, $N$:Base 모델의 수)
의사결정나무 모델
앙상블의 대표적 모델. 앙상블의 Base 모델로서 활용도가 높다.
데이터의 크기가 방대해도 모델을 빨리 구축할 수 있으며 데이터 분포에 대한 가정이 불필요하다.
랜덤 포레스트
다수의 의사결정나무 모델에 의한 예측을 종합하는 앙상블 기법
하나의 의사결정나무 모델보다 일반적으로 높은 예측 정확성을 보이며 주로 고차원 데이터에서 변수 선택 기법으로 활용된다. 즉 분류기로 의사결정나무를 사용하는 배깅 기법이다.
출처 https://medium.com/analytics-vidhya/ensemble-models-bagging-boosting-c33706db0b0b
배깅(Bootstrap aggregating; Bagging)
부트스트랩을 통해 여러 개의 학습 데이터 집합을 만들고 각 학습 데이터 집합별로 분류기를 만들어 이들이 투표나 가중치 투표를 하여 최종 판정을 하는 기법
이때 부트스트랩 이란?
random sampling을 적용하는 방법. 머신러닝에서는 부트스트랩을 통해 학습 데이터를 늘린다.
군집화(Clustering)
유사한 속성들을 갖는 관측치들을 묶어 전체 데이터를 몇 개의 군집으로 나누는 것
어떻게 나누느냐? 군집 내 유사도를 최대화 하고 군집 간 유사도를 최소화 하는 방향으로!
더보기
(+) 분류 vs 군집화
분류 : 사전에 정의된 범주가 있는 데이터로부터 예측 모델을 학습(지도학습)
군집화 : 사전 정의된 범주가 없는 데이터로부터 최적의 그룹을 찾아나감(비지도학습)
이제부터 우리는 다음 네 가지 질문을 고려하며 군집화를 살펴볼 것이다.
Q1. 군집화 유사도 측정의 척도는?
Q2. 어떤 군집화 알고리즘을 사용?
Q3. 최적의 군집 수를 어떻게 결정?
Q4. 군집화 결과를 어떻게 평가?
A1. 유사도 척도
1-1. 유클리디안 거리
일반적으로 사용하는 거리 척도. 두 관측치 사이의 직선 거리를 의미한다. $$d_{(X,Y)}=\sqrt{\sum_{i=1}^{p}(x_i-y_i)^2}$$
예) A=(2,0,0), B=(0,3,2)이면 $d_{(A,B)}=\sqrt{(0-2)^2+(3-0)^2+(2-0)^2}=\sqrt{17}$
1-2. 맨하탄 거리
직선 거리가 아닌, 각 좌표축 방향으로만 이동한 거리를 의미한다. $$d_{Manhattan(X,Y)}=\sum_{i=1}^{p}\left| x_i-y_i \right|$$
유클리디안 거리와 맨하탄 거리의 차이
1-3. 마힐라노비스 거리
변수 내 분산과 공분산을 모두 고려하여 거리를 계산하는 방법. 공분산 행렬이 항등 행렬인 경우 유클리드 거리와 동일하다. $$d_{Mahalanobis(X,Y)}=\sqrt{(X-Y)^T{\sum}^{-1}(X-Y)}$$
1-4. 상관계수 거리
데이터 간 피어슨 상관계수를 거리 척도로 직접 사용. 데이터 패턴의 유사도를 반영할 수 있다. $$d_{Corr(X,Y)}=1-r \;\; (이때\; r=\sigma_{XY})$$
1-5. 스피어만 상관계수 거리
$$d_{Spearman(X,Y)}=1-\rho$$ $$이때\; \rho=1-\frac{6\sum_{i=1}^{n}(rank(x_i)-rank(y_i))^2}{n(n^2-1)}$$
$\rho$는 스피어만 상관계수이며 데이터의 Rank를 이용하여 상관거리를 계산한다. $\rho$는 -1과 1 사이의 값을 가진다.
A2. 군집화 알고리즘
2-1. 계층적 군집화
계층적 트리 모형을 이용하여 개별 개체들을 순차적(계층적)으로 유사한 개체(군집)과 통합하는 방법이다. 개체들이 결합되는 순서를 나타내는 트리형 구조인 덴드로그램이 만들어지고 이를 통해 시각화할 수 있다.
출처 https://support.minitab.com/ko-kr/minitab/21/help-and-how-to/statistical-modeling/multivariate/how-to/cluster-observations/interpret-the-results/all-statistics-and-graphs/dendrogram/
사전에 군집의 수를 정하지 않아도 수행 가능하며 덴드로그램 생성 후 적절한 수준에서 자르면 그에 해당하는 군집화 결과가 도출된다. 두 군집 사이의 유사성/거리 측정이 필수이며 min(단일연결), max(완전연결), group average(평균연결), between cenroid, ward's method 등의 방법을 사용한다.
더보기
(+) ward method
$$Ward Method=\sum_{i\in A\cup B}\left\| x_i-m_{A \cup B} \right\|^2-\left\{ \left\| x_i-m_{A} \right\|^2+\left\| x_i-m_{B} \right\|^2 \right\}$$
이때$m_A$는 군집 A의 중심이다.
2-2. 분리형 군집화
전체 데이터의 영역을 특정 기준에 의해 동시에 구분하는 방법으로, 각 개체들은 사전에 정의된 개수의 군집 중 하나에 속한다.
K-means 군집화
대표적인 분리형 군집화 알고리즘이다. 각 군집은 하나의 중심(cendroid)를 가지고 각 개체는 가장 가까운 중심에 할당된다. 같은 중심에 할당된 개체들이 하나의 군집을 형성하며 사전에 군집 수 K가 정해져야 알고리즘을 실행할 수 있다.
알고리즘은 아래와 같다.
K값을 사전에 지정
데이터셋에서 K개의 중심을 임의로 생성
생성된 중심을 기준으로 모든 관측치에 군집 할당(중심까지의 거리 계싼
각 군집의 중심을 다시 계산
군집이 변하지 않을 때까지 3~4번 반복
초기 중심이 무작위로 설정되기 때문에 군집화 결과가 초기 중심 설정에 따라 다르게 나타나는 경우도 있다.
▶반복적으로 수행하여 가장 여러 번 나타나는 군집 사용
▶ 전체 데이터 중 일부만 샘플링하여 계층적 군집화를 수행한 뒤 초기 군집 중심 설정
▶ 데이터 분포의 정보를 사용하여 초기 중심 설정 등
K-means 군집화의 문제점
서로 다른 크기의 군집을 잘 찾아내지 못함
서로 다른 밀도의 군집을 잘 찾아내지 못함
지역적 패턴이 존재하는 군집을 판별하기 어려움
A3. 최적의 군집 수 결정
다양한 군집 수에 대해 성능 평가 지표를 도입하여 최적의 군집 수를 선택한다.
발표 자료 재탕하기
A4. 군집화 결과 측정 및 평가
내부 평가 지표: Dunn Index, Silhouette, Sum of Squared Error...
외부 평가 지표: Rand Index, Jaccard Coefficient, Folks and Mallows Index...
Sum of Squared Error(SSE)
$$SSE=\sum_{i=1}^{K}\sum_{x \in C_i}dist(x,c_i)^2$$
Silhouette 통계량
$$s(i)=\frac{b(i)-a(i)}{max\left\{ a(i),b(i)\right\}}$$ $$ -1\leq s(i) \leq 1$$ $$ \overline{S}=\frac{1}{n}\sum_{i=1}^{n}S(i)$$
$a(i)$: 관측치 i로부터 같은 군집 내에 있는 모든 개체들 사이의 평균 거리
$b(i)$: 관측치 i로부터 다른 군집 내에 있는 개체들 사이의 평균 거리 중 최솟값
일반적으로 $\overline{S}$의 값이 0.5보다 크면 군집 결과가 타당하다고 판단하며, -1에 가까우면 전혀 군집화가 되지 않았다고 해석한다.
대표 이미지 출처: Freepik 픽토그램