바이너리 데이터 (0-1 항목 만)의 큰 (650K 행 * 62 열) 행렬이 있습니다. 매트릭스는 대부분 희박합니다. 약 8 %가 채워집니다.
1에서 5로 명명 된 5 개의 그룹으로 클러스터링하고 싶습니다. 계층 적 클러스터링을 시도했지만 크기를 처리 할 수 없었습니다. 또한 길이 62의 650K 비트 벡터를 고려하여 해밍 거리 기반 k- 평균 군집 알고리즘을 사용했습니다.이 중 적절한 결과를 얻지 못했습니다.
도와주세요.
바이너리 데이터 (0-1 항목 만)의 큰 (650K 행 * 62 열) 행렬이 있습니다. 매트릭스는 대부분 희박합니다. 약 8 %가 채워집니다.
1에서 5로 명명 된 5 개의 그룹으로 클러스터링하고 싶습니다. 계층 적 클러스터링을 시도했지만 크기를 처리 할 수 없었습니다. 또한 길이 62의 650K 비트 벡터를 고려하여 해밍 거리 기반 k- 평균 군집 알고리즘을 사용했습니다.이 중 적절한 결과를 얻지 못했습니다.
도와주세요.
답변:
당신은 잘못된 질문을하고 있습니다.
"어떤 알고리즘"을 묻는 대신 " 응용 프로그램에서 의미있는 범주 / 클러스터 란 무엇입니까"를 묻어 야합니다 .
위의 알고리즘이 작동하지 않았다는 사실에 놀라지 않습니다. 매우 다른 사용 사례를 위해 설계되었습니다. k- 평균은 임의의 다른 거리 에서는 작동 하지 않습니다 . 해밍 거리와 함께 사용하지 마십시오. 이 K-라고 이유가 수단 경우에만 사용하는 것이 합리적, 산술 평균은 (는 바이너리 데이터를하지 않은) 의미가 있습니다.
대신 k-mode를 시도하고 싶을 수도 있습니다. IIRC 이것은 실제로 범주 형 데이터와 함께 사용되는 변형이며 이진 데이터는 다소 범주 형입니다 (그러나 희소성은 여전히 죽일 수 있습니다).
그러나 우선, 데이터를 단순화하기 위해 중복 을 제거하고 예를 들어 고유 / 빈 열을 제거 했습니까?
아마도 APRIORI 또는 유사한 접근 방식이 문제에 더 의미가있을 수 있습니다.
어느 쪽이든 먼저 필요한 것을 파악한 다음 어떤 알고리즘이이 문제를 해결할 수 있습니까? 무작위 알고리즘을 시도하지 않고 데이터 중심으로 작업하십시오 .
어쩌면 나는 대답에 약간 늦었을지 모르지만, 아마도 그것은 미래의 몸에 도움이 될 것입니다.
적응 공명 이론은 이진 분류 문제에 대한 좋은 알고리즘입니다. ART 1에 대한 점검 1. 더 많은 정보는 19 장의 무료 Neural Network Design 책에서 볼 수 있습니다 .
이 네트워크는 훌륭한 생물학적 아이디어와 우수한 수학 구현을 결합합니다. 또한이 알고리즘은 쉽게 구현할 수 있으며이 책에서이 분류기를 작성하는 방법에 대한 단계별 지침을 찾을 수도 있습니다.
이진 데이터 클러스터링을위한 클래식 알고리즘은 Bernoulli Mixture 모델입니다. 모델은 베이지안 방법을 사용하여 적합 할 수 있고 EM (예상 최대화)을 사용하여 적합 할 수 있습니다. GitHub 전체에서 샘플 파이썬 코드를 찾을 수 있지만 전자는 더 강력하지만 더 어렵습니다. GitHub에 모델의 C # 구현이 있습니다 (제한적 라이센스가있는 Infer.NET 사용).
모델은 매우 간단합니다. 먼저 데이터 포인트가 속한 클러스터를 샘플링하십시오. 그런 다음 데이터 집합의 차원을 가진만큼 많은 Bernoullis에서 독립적으로 샘플링하십시오. 이것은 클러스터에 주어진 이진 값의 조건부 독립성을 의미합니다!
베이지안 설정에서 이전의 초과 클러스터 할당은 Dirichlet 배포입니다. 일부 클러스터가 다른 클러스터보다 크다고 생각되면 우선 순위를 정하십시오. 각 클러스터에 대해 각 Bernoulli 배포에 대해 베타 배포를 먼저 지정해야합니다. 일반적으로이 사전은 Beta (1,1) 또는 균일입니다. 마지막으로, 데이터가 제공 될 때 클러스터 할당을 무작위로 초기화하는 것을 잊지 마십시오. 대칭이 깨지고 샘플러가 멈추지 않습니다.
베이지안 설정에는 BMM 모델의 몇 가지 멋진 기능이 있습니다.
온라인 클러스터링 (데이터가 스트림으로 도착할 수 있음)
모델을 사용하여 누락 된 치수를 유추 할 수 있습니다
첫 번째는 데이터 세트가 매우 커서 머신의 RAM에 맞지 않을 때 매우 편리합니다. 두 번째는 모든 종류의 누락 된 데이터 대치 작업에 사용될 수 있습니다. 이진 MNIST 이미지의 누락 된 절반을 대치합니다.