세트에서 유사한 항목 일치


10

항목을 일치 시키려고합니다. 항목 집합이 주어지면 서로 비슷한 정도를 0에서 100 사이의 척도로 지정할 수 있습니다. 예를 들어, 항목 이 우유이고 항목 도 우유 인 경우 과 의 유사성은 100 %입니다. 경우 소이고, 다음 유사도 과 아마도, 80 %, 등등 일 것이다.12121

항목을 비슷한 항목의 그룹 으로 그룹화하는 방법을 찾으려고 노력하고 있지만 어려운 문제입니다. 나는 다음과 같은 문제에 부딪쳤다. 말은 암소와 비슷하다. 염소와 비슷하다. 염소 치즈와 비슷하다. 치즈와 비슷하다. 치즈와 비슷하다. 그러나 나는 말이 크래커와 같은 그룹에 있다고는 기대하지 않습니다. 각 항목은 쌍별로 상관 될 수 있지만 시작과 끝은 서로 관련이 없을 수 있습니다.

어떤 아이디어?


진화 생물학에서 이러한 쌍별 클러스터링의 결과를 계통 발생 수라고하며 ,이를 유용한 검색어 집합에 추가 할 수 있습니다.
hardmath

답변:


7

여기서하고 싶은 것은 유사한 특성을 나타내는 K 군집으로 N 관측 값을 분할하는 것입니다. 이것을 클러스터링 이라고하며 여기에서 자세한 정보를 찾을 수 있습니다 .

이미 수치 유사성 측정법을 가지고 있으므로 K-Means 알고리즘을 사용하는 방법에 대해 생각할 수 있습니다.

  • 무작위로 군집 중심 초기화
  • 각 관측 값을 가장 가까운 중심에 해당하는 군집에 할당합니다.
  • 중심점을 군집 요소의 새로운 평균으로 업데이트하십시오.

중심이 이동을 멈추거나 특정 임계 값 내에있을 때 수렴을 확인할 수 있습니다.

이렇게하면 각 클러스터의 항목이 다소 상관 관계가 있으며 알고리즘의 클러스터 수 ( "K")를 늘려보다 세밀한 클러스터를 가질 수 있습니다. 군집 수를 찾는 것은 각 문제에 따라 다르며 문제에 대한 많은 값을 시도하고 그룹화 된 항목을보고 의미가 무엇인지 확인하는 것이 좋습니다.

희망이 도움이됩니다.


5

당신이 찾고있는 것을 "클러스터 분석"또는 "클러스터링"이라고합니다. 많은 다른 알고리즘이 존재합니다. 귀하의 경우에는 "연결 클러스터링", 즉 각 두 요소를 연결하는 속성을 기반으로 한 그룹 요소를 원할 것입니다.

scikits.learn (Python 코드) 의 클러스터링 알고리즘 과 여기에 언급 된 참조를 살펴보십시오 .

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.