2012-05-12 3 views
1

내 나무의 구조는 간단하고 깊이는 2이고 각 자식 노드는 루트의 직접적인 자식이며 각 노드는 루트를 제외한 가중치를가집니다. 두 나무의 유사성을 측정하는 좋은 방법이 있습니까?
다음은 원래 질문입니다.
읽은 책에 대한 데이터 목록이 있다고 가정 해보십시오. 목록에는 해시 테이블과 같은 키와 값이 포함됩니다. 키는 서적 카테고리이며, 값은 현재 카테고리에서 읽은 책의 양입니다. 모든 사람이이 데이터 목록을 가지고 있으므로이 데이터 목록을 기반으로 두 사용자의 유사성을 비교하고 싶습니다. 협업 iltering이 이것을 할 수 있다는 것을 알고 있지만,이 방법을 시도하고 그것을 cf와 비교합니다.
그래서 데이터 목록을 가중치 트리로 취급합니다. 카테고리는 하위 노드이며 각 하위 노드의 가중치는이 카테고리가 사용자의 책에 표시되는 시간입니다.
유사성은 협업 필터링에서 두 사용자의 유사성과 유사합니다. 그것은 숫자입니다.가중치가있는 나무의 유사성 계산

+0

"유사"의 정의를 명확하게 표현할 수 있다면 알고리즘이 튀어 나올 가능성이 있습니다. 당신의 유사성에 대한 정의는 무엇입니까? 부울 조건부 또는 연속 측정 값입니까? 당신이 그것을 가지고 있기 때문에, 우리의 질문은 가까운 투표를하게 될 것입니다 : * 진정한 질문이 아닙니다 : 여기서 무엇이 요구되는지를 말하기는 어렵습니다. 이 질문은 모호하고 모호하며 불완전하거나 광범위하거나 수사적이며 현재의 형태로는 합리적으로 대답 할 수 없습니다. * – Kaz

+0

@Kaz 당신의 생각을 상기시켜 주셔서 감사합니다. –

+0

트리의 깊이가 2이고 루트에 가중치가없는 경우 목록 또는 벡터와 같이 정렬 된 컬렉션과 어떻게 다른가요? – Kaz

답변

3

설정 작업을 사용하여 수행 할 수 있습니다.

한 번 전에 Meta-CVS 소프트웨어에서 이와 같은 유사성 측정 항목을 구현했습니다. 이것은 지점에 스냅 샷을 가져올 때 이름이 변경된 파일을 식별하는 데 사용됩니다. 물론 파일을베이스 라인 사이에서 이름을 바꾸거나 편집 할 수 있으므로 정확한 비교를 수행 할 수 없습니다. 그러나 나는 빗 나간다. 모든

인 Jaccard 색인1

먼저, 두 명의 사용자가 책에서 완전히 다른 관심을 가질 수 있습니다. 아니면 완전히 같은 관심을 가질 수 있습니다.

당신이 할 수있는 일은 그들의 결합 된 이해 관계의 크기를 계산하고, 공통된 부분을 전체 크기의 일부분으로 표현하는 것입니다.

관심 분야 집합에 가중치가 없지만 관련 가중치가없는 범주 만 설정한다고 가정합니다. 유사성은 두 사용자가 공통으로 가지고있는 범주의 수를 범주의 총 ​​수로 나눈 값으로 나타낼 수 있습니다. 즉, 세트 교차점의 카디널리티를 조합의 카디널리티로 나눈 값입니다.

가중치가있는 경우 어떻게 든 작동해야합니다. 아마도 집합 교차의 총 무게를 노동 조합의 총중량으로 계산할 것입니다 (0으로 나누기).

사용자가 공통적으로 사용하는 카테고리가없는 경우이 측정 항목은 0.0이며, 카테고리에 일치하는 카테고리에 관심이있는 경우 1.0이되므로 실행 가능합니다.

코사인 유사성2

벡터의 내적 (상관 관계)로이를 치료하는 것 유사성을 정의하는 또 다른 방법. 먼저 두 사용자간에 존재하는 모든 범주를 결정하십시오. 각 카테고리의 가중치가있는 두 사용자 각각에 대한 벡터를 작성하십시오 (사용자가 관심 분야 세트에 해당 카테고리를 가지고 있지 않은 경우 0으로 작성).

그런 다음 이들 벡터의 내적을 취하여 길이의 곱으로 나눠 유사성을 계산할 수 있습니다. (A.B)/| A || B |

벡터의 길이는 가중치 제곱 합계의 제곱근입니다. 다시 0으로 나눗셈을 관찰하십시오.

사용자가 공통적 인 범주가없는 경우이 유사도 척도에서 두 벡터는 직각이며 내적은 0입니다. 이 메트릭은 기본적으로 두 벡터 간의 각도 코사인입니다. 코사인이 하나에 가까울수록 벡터가 더 평행합니다 (사용자의 관심사는 "같은 방향으로 정렬"됩니다).

희망 사항이 있으면 아이디어를 얻을 수 있습니다. 보시다시피, 이것은 개방적입니다.

+0

당신의 아이디어에 감사 드리며, 당신과 이야기하게되어 기쁩니다. –