페어 단위 거리 만있는 거대한 데이터 세트를 클러스터하고 싶습니다. k-medoids 알고리즘을 구현했지만 실행하는 데 시간이 너무 오래 걸리므로 PCA를 적용하여 문제의 차원을 줄이는 것으로 시작하고 싶습니다. 그러나이 방법을 수행하는 유일한 방법은 내 상황에없는 공분산 행렬을 사용하는 것입니다.
쌍별 거리 만 알고 PCA를 적용 할 수있는 방법이 있습니까?
페어 단위 거리 만있는 거대한 데이터 세트를 클러스터하고 싶습니다. k-medoids 알고리즘을 구현했지만 실행하는 데 시간이 너무 오래 걸리므로 PCA를 적용하여 문제의 차원을 줄이는 것으로 시작하고 싶습니다. 그러나이 방법을 수행하는 유일한 방법은 내 상황에없는 공분산 행렬을 사용하는 것입니다.
쌍별 거리 만 알고 PCA를 적용 할 수있는 방법이 있습니까?
답변:
업데이트 : 나는 유클리드 거리와 스칼라 제품 간의 혼란에 기초하여 원래의 대답을 완전히 제거했습니다. 이것은 내 답변의 새로운 버전입니다. 사과.
페어 단위 거리로 유클리드 거리를 의미한다면 PCA를 수행하고 주요 구성 요소를 찾는 방법이 있습니다. 다음 질문에 대한 대답으로 알고리즘을 설명합니다. 주성분 분석과 다차원 스케일링의 차이점은 무엇입니까?
간단히 말해, 유클리드 거리의 매트릭스는 중심 그람 매트릭스로 변환 될 수 있으며, 고유 분해를 통해 PCA를 수행하는 데 직접 사용될 수 있습니다. 이 절차를 [고전] 다차원 스케일링 (MDS)이라고 합니다.
페어 단위 거리가 유클리드가 아닌 경우 PCA를 수행 할 수 없지만 여전히 MDS를 수행 할 수 있으며 이는 더 이상 PCA와 동일하지 않습니다. 그러나이 상황에서 MDS는 귀하의 목적에 더 적합 할 것입니다.
이것은 스펙트럼 클러스터링이 적용될 수있는 문제처럼 보입니다. 쌍별 거리 행렬이 있으므로 그래프의 다른 모든 노드와의 거리에 해당하는 각 노드에 N 개의 연결이있는 완전히 연결된 그래프를 정의 할 수 있습니다. (- 그것은 쉽게 계산의이 소리 무서운 경우, 걱정하지 마세요) 다음의 고유 벡터 받아이에서, 당신은 그래프 라플라시안을 계산할 수 있습니다 작은을고유 값 (PCA와 다른 곳). 예를 들어 3 개의 고유 벡터를 사용하면 Nx3 행렬이됩니다. 이 공간에서, 포인트는 (그래서) 클러스터 사이의 흐름 (또는이 경우 거리)을 최대화하기위한 최적의 컷임을 암시하는 깔끔한 그래프 이론으로 인해 잘 분리되어야합니다. 거기에서 k 공간 또는 유사한 알고리즘을 사용하여 3 공간으로 클러스터링 할 수 있습니다. 더 많은 통찰력을 얻으려면이 멋진 연습을 확인하는 것이 좋습니다.
쌍별 거리는 공분산 행렬과 마찬가지로 정사각 행렬을 형성합니다. PCA는 공분산 행렬에 적용된 SVD ( http://en.wikipedia.org/wiki/Singular_value_decomposition )입니다. 데이터에서 SVD를 사용하여 차원 축소를 계속 수행 할 수 있어야합니다. 출력을 해석하는 방법을 정확히 모르지만 반드시 시도해보십시오. k- 평균 또는 계층 적 클러스터링과 같은 클러스터링 방법을 사용할 수 있습니다. 다차원 스케일링과 같은 다른 차원 축소 기술도 살펴보십시오. 클러스터에서 무엇을 얻으려고합니까?