Published: Jan 14, 2020 by Dev-hwon
Data similarity(데이터 유사도)
데이터 유사도란 두 데이터가 얼마나 같은지 나타내주는 척도이다.
Basic data structure
- data matrix (n object X p attributes)
- similarity matrix (n objects X n objects)
- disimilarity matrix (n objects X n objects)
- sim(i,j) = 1 - d(i,j)
Similarity and Distance Measures
1. For nominal attributes
- d(i,j)=p−mp
- m = number of matches
- p = total number of attributes descibing the objects
ex)
2. For binary attributes
- For symmetric binary attributes (0과 1 모두 중요)
- For asymmetric binary attributes (1이 더 중요)
d(i,j)=r+sq+r+s (Jaccard Coefficent라고도 불림)
(ex)
3. For numeric attributes
1) Euclidean Distance
d(i,j)=√p∑k=1(xik−xjk)22) Manhattan Distance
dmanhattan(i,j)=p∑k=1|xik−xjk|- Euclidean, Manhattan Distance가 만족해야하는 조건
- 음이 아닌 수
- Identify of indiscernibles
- 대칭
- Triangle inequality
3) Minkowski Distance
d(i,j)=(p∑k=1|xik−xjk|r)1/r- r=1 : Manhattan (L1 norm)
- r=2 : Euclidean (L2 norm)
- r= ∞ : Supremum (Lmax norm, L∞ norm)
4) Mahalanobis Distance
- 데이터 분포를 고려하기 위해 사용
4. For ordinal attributes
- ordinal attributes는 순서 or 순위가 있지만 크기는 알 수 없다.
- 1) 등급에 따라 점수를 준다.
- 2) normalizes
- 3) Euclidean Distance 이용
5. For mixed attributes
1) 각 속성 유형을 그룹화하고 각 유형에 대해 개별적으로 군집화와 같은 데이터 마이닝 수행하는 방법
2) 모든 속성 유형을 함께 처리하여 한 개의 분석을 실행하는 방법 -> 여러 속성을 단 한개의 차이 행렬로 연결하고 모든 의미 있는 속성을 공통된 범위 척도 [0.0, 1.0]으로 만드는 방법
d(i,j)=∑pf=1δ(f)ijd(f)ij∑pf=1δ(f)ijδ(f)ij=0일 때,
1) xif나xjf가 없는 경우 2) xif=xjf=0이고 속성 f가 비대칭 이진값 d(f)ij인 경우
- if f is numeric:
d(f)ij=|xif−xjf|maxhxhf−minhxhf
- if f is nominal, binary or ordinal: 따로 구하는 방법과 같음
cosine similarity(코사인 유사도)
- 내적공간의 두 벡터의 유사도를 측정함
- 두 벡터간 각도의 코사인으로 측정하며 두 벡터가 동일한 방향을 향하고 있는지 여부를 판단
- 종종 텍스트 분석에서 문서의 유사도를 측정하는데 사용
Term-Frequency 벡터
- 일반적으로 매우 길고 데이터 값은 별로 없음, 따라서 대부분 0의 값을 가짐
- 일반적으로 거리 측정값은 희소한 숫자형 데이터에 대해서는 적합하지 않음
- 따라서 2개의 문서가 공통으로 보유하고 있는 단어와 해당 단어의 발생 빈도에 초점
sim(x,y)=x⋅y‖x‖‖y‖, ‖x‖는 벡터 x에 대한 유클리드 노름, difined as √x21+x22+⋯
ex)
속성이 이진값일 때
- 코사인 유사도는 공유된 특성이나 속성으로 해석
- sim(x,y)=x⋅yx⋅x+y⋅y−x⋅y
- x 또는 y가 소유한 속성의 수에 대해 x와 y가 고유한 속성의 개수 비율
- 타니모토계수나 타니모토 거리라고 함