1. 군집화란?
유사한 속성들을 갖는 관측치들을 묶어 전체 데이터를 몇 개의 군집으로 나누는 것.
좋은 군집화는 동일한 군집에 소속된 데이터는 서로 유사하게(inter-class similarity), 상이한 군집에 소속된 데이터는 서로 다르게(intra-class dissimilarity) 군집화하는 것이다.
Inter class similarity | Intra-class similarity |
|
|
2. 군집화 수행 시 주요 고려사항
- 어떤 거리 척도를 사용하여 유사도를 측정할 것인가?
- 어떤 군집화 알고리즘을 사용할 것인가?
- 어떻게 최적의 군집수를 결정할 것인가?
- 어떻게 군집화 결과를 측정 / 평가할 것인가?
오늘은 이중 유사도 측정 기법에 대해서 다뤄보겠다.
3-1 . 유사도 측정 기법 (Similarity Metric 선정)
데이터 간의 유사도 측정이 중요한 이유는 Feature의 특성은 유사도 측정 기법에 따라 달라지기 때문이다.
결국 거리는 공간을 정의하는 것이기 때문에, 피처가 나타나는 공간을 어떻게 정의하냐에 따라서 가까워질 수도 멀어질수도 있다.
머신러닝에서 공간을 특징 짓는 대표적인 2개의 기법은 Cosine 유사도와 Euclidean 유사도이다.
이 둘의 가장 큰 차이는 Cosine Space는 각도기반, Euclidean Space(L2 Distance)는 거리 기반이라는 점이다.
코사인 유사도 (각도 기반 유사도) | 유클리디안 거리 (거리 기반 유사도) |
두 벡터간의 거리를 각도로 표현한 공간(1에 가까울수록 유사한 것) - 가까운 좌표에 있는 점들이 유사도가 높음. - 방향과 크기의 상대적 차이 - 스케일의 차이가 큰 경우 - 피쳐들의 강도보다 얼마나 피처 간의 가지고 있는 점들이 비슷하냐를 중요하게 봄. |
두 벡터간의 거리를 피타고라스 정리의 길이로 나타낸 공간(계산값이 0에 가까울수록 유사한 것) - 수치상의 절대적인 차이 - 기울기가 같고 방향이 같은 벡터간의 유사도가 가장 높음 - 스케일의 차이가 크지 않은 경우 |
두번째 사진은 코사인으로 유사도를 측정한 값(x는 y에 유사하다.), 세번째 사진은 유클리디안으로 측정한 값(x는 z에 유사하다.)이다.
이렇게 같은 데이터에 대해서 두 유사도 측정법은 서로 다른 결과를 보여주게 된다.
Mahalanobis Diatance (마할라노비스 거리) | L1 distance ( 맨해튼 거리 ) |
여러가지인 변인(variable)의 중심값(평균값, mean)들로 이뤄진 중심으로부터의 거리 (계산값이 0에 가까울수록 유사한 것) - 데이터 패턴에 따른 축별 가중치 반영 - 공분산의 역행렬 존재 유무를 미리 파악해야 함 - 공분산 행렬이 항등행렬이면 유클리드 거리와 같음 - 학습 데이터 피쳐 분포와 실제 데이터 분포가 상이할시 정확도가 많이 떨어짐 - 데이터가 정규성을 따지는지 봐야함. 정규성을 따르면 나머지보다 더 결과가 좋음 |
X에서 Y로 이동시 각 좌표축 방향으로만 이동할 경우에 계산되는 즉, 두 관측치 사이의 각 행의 차 - SAS 합동인 경우를 제외하면모든 힐베르트 공리계(유클리드 기하학의 의식화)와 일치함 - L2 distance와 거리 패턴이 거의 유사함 - 컴퓨터 계산에 용이 - 연산량이 낮지만 해석적인 관점에서 어렵다. 유클리디안과 거의 유사한 디스턴스 분포가 나와서 연산량 측면에서는 유클리디안보다 맨해튼을 쓰기도함 |
위 데이터 분포를 봤을 때 일반적인 거리 측정법으로는 X는 A에 더 가깝다. 하지만 마할라노비스 계산법에 따라 데이터의 분포를 보면 각 분포의 크기에 대한 상대적 거리에서 X는 B에 가깝다는 것으로 해석할 수 있다.
4 . 결론
distance metric에 따라 feature 공간상에서 표현되는 유사도가 다르기 때문에, 자신이 다루는 데이터의 특징을 파악하고 적절한 유사도 기법을 선택하는 것은 매우 중요하다.
특히 머신러닝 모델 분석할때 Feature의 특성은 유사도 측정 기법에 따라 달라져 semantic gap(의미적 차이)가 존재할 수 있기 때문에
나는 이 의도로써 개발했는데 왜 수치가 이렇게 나오지? 내가 고려하지 못한게 어떤게 있는지에 대한 고민을 해봐야한다.(실험을 하면 실측된 유사도와 사람이 느끼는 유사함에 거리가 있을 수 있음)
reference: https://m.blog.naver.com/PostView.naver?isHttpsRedirect=true&blogId=cjh226&logNo=220810613028
'개발 > ML&DL' 카테고리의 다른 글
[추천시스템] Learning To Rank(LTR) (1) | 2023.04.09 |
---|---|
[추천시스템] Learning To Rank(LTR) (0) | 2023.04.09 |
[추천시스템] 성능 평가 지표(pyspark) - Precision, Recall, Map, NDCG (3) | 2023.03.11 |