본문 바로가기
딥러닝\머신러닝

[유사도측정, 데이터분석] 유사도 측정의 중요성

by 인포메틱스 2022. 12. 2.
반응형

 최근 빠져있는 주제가 있습니다. 바로 유사도 입니다.

 

 빠져있기 보다는 데이터 분석에서 항상 중요하다고 생각되는 부분이라고 말하고 싶습니다.

 

 대부분의 Deep learning 모델에서 이런 유사도를 이용하여 분석이 이루어지기도 합니다.

 

 앞으로 포스팅은 이 유사도 방법에 대한 개념들을 몇가지 포스팅 하고자 합니다.

 


1.  유사도란?

 유사도는 다양하게 이용할 수가 있는데, 주로 classification에 이용된다고 생각합니다. 어떠한 데이터가 들어왔을 때, 이 데이터를 판별하기 위하여 사람들은 유사도를 이용합니다.

 

 아주 유명한 짤이 머핀과 치와와 짤입니다.

 

 유사도의 특징은 주로 0~1사이의 값을 갖고, 0로 갈수록 매우 낮은 유사성을 갖고, 1로 갈수록 높은 유사성을 갖습니다.

 

 치와와 머핀 이외의 간단한 예시를 들어보겠습니다. 1차원 데이터인 A,B,C가 있습니다. 각 데이터의 값은 0.1, 5, 1000입니다. 이 중 두개의 점을 가져오게 된다면 A, B는 C에 비해 가깝다라는 생각을 할 수 있습니다.  이럴 때 A, B는 A, C와 B, C보다 높은 유사성을 갖는다. 라고 말할 수 있습니다. 그리고 A, B사이에 강한 상관성을 갖는다. 라고 이야기 할 수 있습니다. 즉 데이터 사이가 거리가 작을수록 유사도는 커진다고 볼 수 있습니다.

 

 

2. 거리측정하기

 이렇게 되면 유사도 == 거리와도 같다라고 생각해도 되겠죠. 실제 잘 생각해보면 우리집 주변에 가장 우리집과 유사한 곳을 찾는다면, 본인집이 가장 유사도가 높겠죠.(당연한 이야기인가요 ?ㅎㅎ)

 

유사도를 측정하기 전에 거리 측정에 대해 간단하게 설명을 하도록 하겠습니다.

 

주어진 거리에 대해서 네 가지가 충족이 되어야만 측정이 가능하게 됩니다.

 

1. Non-negativity : d(p,q) 0 - 거리는 항상 0보다는 커야합니다.

2. Symmetry : d(p,q) = d(p,q) - 주어진 파라미터가 변경되도 거리는 같아야 합니다.

3. Triangle Inequality : d(p,q) d(p,r) + d(r,q) - 3개의 요소에서 어떤 두쌍에 대한 거리는 남은 쌍에서 보다 무조건 커야합니다.

4. D(p,q) = 0, p=q(Identity of indiscernibles) - 두 동일한 요소의 거리는 0이여야 합니다.

 

 

3. 거리 측정방법들

 거리 측정 방법은 classification에서 기본적인 원칙중 하나가 됩니다. 그리고 이러한 거리 측정방법들은 다양하게 있고, 각 방법에 따라 분류성능에 영향을 많이 미칩니다.

 

 예를 들어 어떤 분야에서는 Euclidean 방법이 최적인 반면, 어떠한 분야에서는 코사인 방법이 최적인 경우가 있습니다. 그렇기 때문에 각 데이터마다 최적으로 적용하기 위한 거리측정 방법을 간단하게 알아두면 데이터 분석할때, 큰 도움이 됩니다.

 

 다양한 방법들이 있고, 각 페이지를 공유하고자 합니다. 각 페이지에서는 파이썬이나 R을 이용하여 구하는 방법 또한 공유할 예정입니다.

 

1. L2 norm, Euclidean distance

2. Squared Euclidean distance

3. L1 norm, City Block, Manhattan, or taxicab distance

4. Canberra distance

5. L(infinite) norm, Chebyshev distance, maximum distance

6. Lp norm, Minkowski distance

7. Cosine distance

8. Pearson Correlation

9. Spearman Correlation

10. Mahalanobis distance

11. Standardized Euclidean distance

12. Chi-square distance

13. Jensen-Shannon distance

14. Levenshtein distance

15. Hamming distance

16. Jaccard / Tanimoto distance

17. Sorensen-Dice

 

추가적으로 유사도에 대해 찾으면 댓글 남겨주시거나, 따로 찾으면 업데이트 하겠습니다.

 

4.  그 이외에 유사도에 중요한 부분

 거리측정이외에도 유사도에서 중요하게 생각할 수 있는 부분이 바로 Feature Extraction같습니다. 두 데이터의 거리를 측정하더라도 어떤 데이터를 이용하느냐에 따라 정확도가 다를 것입니다. 목적에 맞는 Feature Extraction이 가장 중요하다고 생각합니다. 

 

 예를 들어 유방암 환자의 유사도를 확인하는데, 키를 특징으로 넣는다던지(추후에 키와 유방암환자간에 관련성이 있으면 수정하겠습니다.) 머리둘레를 넣는다던지 등 말이죠.(예시도 정말 말도 안되게 드네요..)

 

 그리고 데이터의 Quality도 중요하겠죠. 데이터에 missing이 많아지면 당연히 유사도도 정확하지 않게 될거구요. 그 부분을 보안하는 방법들도 많긴합니다. 예를들어 Single cell에서 t-sne나, pca, u-map이 있겠죠.

 

그리고 또 다른 예시로 아까 치와와와 머핀사진을 보게되면 가까이서 보면 치와와와 머핀간에 구별이 쉽지만 멀리서 보게되면 구별이 힘든 것을 알 수 있을겁니다. 실제로 처음 치와와와 머핀 사진을 보았을때, 저걸 구별 못하냐라고 하고 나서 가까이서 봤을 때, 머핀이 치와와가되고, 치와와가 머핀이 되는 현상을 보았습니다.

 

 

 다시 한번 치와와와 머핀 사진을 보겠습니다. 이 예시에서 알 수 있는 부분은 멀리서 관찰함으로써 데이터가 손실되었다고 이야기 할 수 있고, 그만큼 치와와와 머핀사이 유사도가 정확하지 않게 될수있다. 라고 생각할 수 있을 것 같습니다.

 

감사합니다.

 

 

 

 

 

728x90
반응형

댓글