브라이틱스(Brightics)에서 계층적 군집분석(Hierarchical Clustering)을 하는 방법을 알아본다.
Machine Learning
※ 본 내용은 Load
함수 블럭에서 diabetes.csv 파일을 불러온 후에 진행한다.
※ diabetes.csv 다운받기 [클릭]
개요
군집분석은 크게 계층적 군집분석과 비계층적 군집분석으로 나뉘어진다. 여기서는 계층적 군집 분석을 알아보도록 한다.
Brightics에서는 계층적 군집 분석을 하기위해 두 개 이상의 함수 블럭을 필요로 하며 목록은 다음과 같다.
-Normalization
: 군집분석 실시 전에 데이터를 정규화 하기 위한 블럭
-Hierarchical Clustering
: 계층적 군집분석을 실시하기 위한 핵심 블럭
-Hierarchical Clustering Post Process
: 계층적 군집분석 실시 이후 특정 개수의 군집으로 나누기 위한 블럭
데이터의 정규화가 필요한 경우 Normalization
블럭을 선택적으로 사용하게 되며 관련 포스팅은 다음의 링크를 참고하도록 하자.
※ Normalization
포스팅 바로가기 -> [클릭]
※ Normalization Model
포스팅 바로가기 -> [클릭]
장점
시각적으로 표현이 되는 계층도(Dendrogram)이 있어 군집을 몇 개로 나누어야 하는지 결정하기 쉽다.
단점
데이터가 큰 경우 연산시간이 굉장히 오래 걸린다. 모든 데이터간 거리 계산을 해야하기에 $ _nC_2 $ 만큼의 연산을 해야해서 데이터 개수(n)이 커질수록 기하급수적으로 연산량이 많아진다. 그리고 데이터가 변경되는 경우 연산의 특징 때문에 군집의 구성이 송두리째 바뀔 수 있다. 즉 데이터 변경에 민감하다.
이론
향후 보충 예정
군집 형성 절차
유사도(Similarity)
계층도(Dendrogram)
설정
Hierarchical Clustering
Hierarchical Clustering
블럭의 설정 창은 다음과 같다.
-Input Columns
: 계층적 군집분석에 사용할 변수를 지정
-Input Mode
: 데이터프레임 형태의 입력을 하는 경우 “Original”을 선택하고 거리 행렬의 경우 “Matrix”를 선택
-Key Column
: 연산에 사용되는 row의 ID에 해당하며 반드시 필요한 설정은 아님
-Linkage Method
: 군집을 구성하는데 사용하는 기법
-Metric
: 각 데이터의 유사도 산출 기법
-Number of Rows of Linkage Matrix
: 군집 연결 결과의 행 개수를 지정(기본 20개)
-Figure Height
: 그려지는 그래프의 높이를 설정
-Figure Orientation
: 그려지는 그래프의 방향을 설정
-Group By
: 특정 변수를 기준으로 계층적 군집 분석을 분할하여 실시
Hierarchical Clustering Post Process
Hierarchical Clustering Post Process
블럭의 설정 창은 다음과 같다.
-Maximum Number of Clusters
: 군집 분할 개수
-New Column Name
: 군집 번호가 있는 변수명 지정
결과
Hierarchical Clustering
당뇨 진단 여부 변수(Outcome)를 제외한 나머지 변수를 사용하여 계층적 군집 분석을 실시한 결과는 다음과 같으며 첫 번째는 계층도(Dendrogram)이고 두 번째는 계층적 군집분석의 군집간 연결 결과 행렬이다.
Hierarchical Clustering Post Process
앞에 계산한 군집분석을 기반으로 데이터를 4개의 클러스터로 나눈 결과는 다음과 같다. cluster 변수에 군집 할당 결과가 있다.