2D로 다차원 데이터 (LSI) 시각화


11

나는 문서 간의 유사성을 찾기 위해 잠재 의미 색인을 사용하고 있습니다 ( 감사, JMS를! )

차원 축소 후에 문서를 클러스터로 그룹화하기 위해 k- 평균 군집화를 시도했지만 매우 효과적입니다. 그러나 조금 더 나아가서 두 노드 사이의 거리가 유사성에 반비례하는 노드 세트로 문서를 시각화하고 싶습니다 (매우 유사한 노드는 서로 가깝습니다).

내 데이터가 2 차원보다 크기 때문에 2 차원 그래프와의 유사성 행렬을 정확하게 줄일 수 없다는 사실에 놀랐습니다. 그래서 첫 번째 질문 :이 작업을 수행하는 표준 방법이 있습니까?

데이터를 2 차원으로 축소 한 다음 X 및 Y 축으로 플로팅하면 ~ 100-200 개의 문서 그룹에 충분합니까? 이것이 해결책이라면 데이터를 처음부터 2 차원으로 줄이는 것이 더 좋습니까? 아니면 다차원 데이터에서 두 개의 "최상의"차원을 선택할 수있는 방법이 있습니까?

차이가 나는 경우 파이썬과 gensim 라이브러리를 사용하고 있습니다.


왜 차원을 줄여야합니까? 원하는 그래프를 구성하려면 가장자리 길이가 문서 사이의 거리에 비례하는 가장자리 만 필요합니다. k- 평균 군집화에 사용 된 지표에서 이미 가지고 있습니다.
Aman

2D 평면 (그래프)에서> 2 문서 사이의 유사성을 표시하는 데 작동하지 않는 @Aman. 확실히 k- 평균 거리를 기준으로 분리하여 점 A와 B를 그릴 수 있습니다. 그러나 A와 B까지의 거리를 기준으로 점 C를 플롯해야 할 때 일반적으로 2D 공간에는 모든 쌍 관계를 만족시키는 점이 없습니다.
Jeff

답변:


7

이것이 MDS (다차원 스케일링)를위한 것입니다. 당신이 유사성 행렬 M을 부여하는 경우 즉, 당신은 가장 가까운 근사 찾으려면 이의 SVD 계산하여 수행 할 수 있습니다 순위 2가 여기서 입니다.S=XXSM=VΛV=XXX=VΛ1/2

이제 가 치환되어 고유 값의 순서가 감소 한다고 가정하면 의 처음 두 열은 원하는 평면에 포함됩니다.ΛX

MDS에 사용할 수있는 코드가 많이 있습니다 (scipy에 일부 버전이없는 경우 놀랍습니다). 어쨌든 파이썬에서 일부 SVD 루틴에 액세스 할 수 있다면 설정됩니다.


1
LDA가 더 좋을 것이라고 생각합니다. SVD를 통해 얻을 수있는 PCA는 클러스터 (클래스) 식별 정보를 보존하지 않으므로 OP 이후의 정보가됩니다.
Zhubarb

0

당신을 도울 수있는 ggobi 라는 소프트웨어 가 있습니다. 다차원 의사 공간을 탐색 할 수 있습니다. 주로 데이터 탐색을위한 것이지만 인터페이스는 매우 친숙하고 '그냥 작동합니다'!

CSV 형식 (RI의 경우 기본 매개 변수와 함께 write.csv 만 사용) 또는 XML 파일 (이 형식을 사용하면 더 많은 제어가 가능합니다. 일반적으로 테이블을 CSV로 저장 한 다음 ggobi를 사용하여 XML로 내보내고 수동으로 편집하면됩니다. 예를 들어 일부 요인의 순서를 변경하는 경우).

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