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=XX⊤SM=VΛV⊤=XX⊤X=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.