0

클러스터링을위한 적절한 유사성 측정을 찾는 데 문제가 있습니다. 각 세트에는 특정 도메인의 기능 (예 : 숫자, 색상, 일, 알파벳 등)이 포함 된 약 3000 개의 배열 집합이 있습니다. 내 문제를 예제로 설명하겠습니다.클러스터링을위한 적절한 유사성 측정

내가 2 개의 어레이 (a1 & a2)만을 가지고 있다고 가정하고 그들 사이의 유사성을 찾고 싶습니다. 각 배열에는 4 세트가 들어 있습니다. (실제 문제는 배열 당 250 세트 (도메인)입니다.) 세트는 비어있을 수 있습니다.

sim(a1,a2) = [J(a1[0], a2[0]) + J(a1[1], a2[1]) + ... + J(a1[3], a2[3])]/4 

참고 : I는 (상기 실시 예 4) 세트의 총 횟수로 나누는 유사성을 유지

a1: {a,b}, {1,4,6}, {mon, tue, wed}, {red, blue,green} 
a2: {b,c}, {2,4,6}, {}, {blue, black} 

난 (J로 표시됨) Jaccard 인덱스를 이용하여 유사성 측정 값왔다 0에서 1 사이의 값이다.

Is this a proper similarity measure and are there any flaws in this approach. 관련 도메인 (예 : 색상, 색상 등) 간의 유사성을 비교하기 위해 각 세트에 대해 Jaccard 색인을 개별적으로 적용하고 있습니다.

본인은 다른 문제에 대해 적절한 유사성 척도를 알고 있지 않습니다. 또한 can I use this similarity measure for clustering purpose?

답변

1

대부분의 클러스터링 알고리즘에서 작동해야합니다. k- 수단을 사용하지 마십시오. 숫자 벡터 공간 만 처리 할 수 ​​있습니다. 그러나 벡터 집합 유형의 데이터가 있습니다.

4 개의 Jaccard 측정 값을 결합 할 때 산술 평균과 다른 평균을 사용할 수 있습니다. 고조파 또는 기하학적 방법을 시도하십시오. 평균적으로 250 개가 넘는 값이 항상 0.5에 가까워 지므로 더 "공격적인"의미가 필요합니다.

그래서 계획이 좋게 들립니다. 그냥 시도해보십시오.이 유사성을 구현하고 다양한 클러스터링 알고리즘에 연결하고 뭔가를 찾았는지 확인하십시오. OPTICS 플롯은 거리 함수를 기반으로 찾을 수있는 것이 있는지 여부를 나타낼 수 있기 때문에 데이터 및 거리 함수를 탐색하는 데 OPTICS를 좋아합니다. 플롯이 너무 평평하다면, 그다지 찾을 수있는 것이별로 없습니다. 데이터 세트의 대표적인 거리 표본과 같습니다.

저는 ELKI를 사용하며 사용자 정의 거리를 추가하는 방법에 대한 자습서도 있습니다. 기능 : http://elki.dbs.ifi.lmu.de/wiki/Tutorial/DistanceFunctions 당신이 좋아하는 도구로 거리를 계산하고 유사 행렬에 쓸 수는 있습니다. 3000 개의 객체에서 이것은 매우 관리가 가능할 것이며, 4200000 배가 단지 몇 MB에 불과합니다.

+2

대부분의 알고리즘은 메트릭 속성을 이용하지 않으므로 삼각형 부등식이 필요하지 않습니다. 그래서 간단한 '1-sim'이 당신을 위해 작동 할 것입니다. –

+0

답변 해 주셔서 감사합니다. 고조파 및 기하학적 수단도 시도해 보겠습니다. 클러스터링 알고리즘의 대부분에는 거리 측정이 필요하다는 질문이 하나 더 있습니다. 어떻게 유사성 측정을 삼각형 불평등을 만족시키는 거리 측정으로 변환 할 수 있습니까? 현재 두 가지 아이디어가 있습니다. [1] dist = (1-sim)/sim [2] dist = sqrt (1-sim^2). 거리를 결정하는 적절한 (공식적인) 방법이 있습니까 – Maggie

+0

다시 한 번 고마워요, 제 의견은 실수로 삭제되었습니다. – Maggie