100 개 이상의 차원 (때로는 1000 개)으로 데이터를 클러스터링하는 데 사용할 최적의 클러스터링 알고리즘은 무엇입니까? C, C++ 또는 특히 C#의 구현을 알고 있으면 감사하겠습니다.고차원 데이터 클러스터링
답변
귀하의 데이터에 크게 의존합니다. 공통적 인 문제에 대해서는차원의 저주를 참조하십시오. 최근의 연구 (Houle et al.)는 당신이 그 수를 지나칠 수 없다는 것을 보여주었습니다. 수천 개의 차원과 데이터 클러스터가있을 수 있으며 클러스터되지 않는 1 차원 데이터조차 존재합니다. 대부분 신호 대 잡음의 문제입니다. 이것은 예를 들어 TF-IDF 벡터의 클러스터링이 특히 코사인 거리에서 잘 작동하는 이유입니다.
그러나 요점은 입니다. 먼저은 데이터의 성격을 이해해야합니다. 그런 다음 적절한 거리 함수, 가중치, 매개 변수 및 알고리즘을 선택할 수 있습니다.
특히이 어떤 클러스터를 구성하는지 알아야합니다. 특히 고차원 데이터의 경우 많은 정의가 있습니다. 그것들은 부분 공간에있을 수도 있고, 임의로 회전 될 수도 있고 그렇지 않을 수도 있으며, 겹칠 수도 있고 그렇지 않을 수도 있습니다 (예를 들어, 겹침 또는 부분 공간을 허용하지 않습니다).
저는 벡터 양자화 (quantization)라는 것을 알고 있습니다. 그 알고리즘은 stuf를 다양한 차원으로 클러스터링하는 좋은 알고리즘입니다.
저는 100 차원의 데이터에 k-means를 사용했기 때문에 매우 일반적입니다. 따라서 어떤 언어로든 구현이 가능합니다. 최악의 시나리오 - 자신이 구현하기가 쉽습니다.
클러스터링을 시도하기 전에 Principle Component Analysis 또는 자동 연관 신경망과 같은 차원 감소 기술을 시험해 보는 것도 가치가 있습니다. 거대한 문제를 훨씬 작은 문제로 만들 수 있습니다.
그 후에 k-means 또는 gaussians의 혼합으로 이동하십시오.
신경망 접근에 대한 정보를 좀 주시겠습니까? 하지만 훈련을 받아야한다고 생각하니? –
이것은 아마 오래되고 죽은 것입니다. 그러나 저는 이것을 보았습니다. 네, 어떤 네트와도 같이 훈련시켜야합니다. 아이디어는 N << Dims가있는 N 노드의 내부 레이어를 사용한 다음 출력 노드에서 입력 데이터를 재생하도록 교육하는 것입니다. 그렇게함으로써, 당신은 그물의 일부 데이터를 버리도록 강요하고 있습니다. 입력과 출력의 차이를 최소화하면 가장 유익한 데이터가 유지됩니다. 예 : 입력 (엄마의 키, 아빠의 키, 아빠의 아이 컬러); 출력 (자녀의 키), 내부 노드 2. 교육 중에 눈 색깔에 대한 가중치는 0이됩니다. –
LMW-tree 프로젝트의 EM 트리 및 K 트리 알고리즘은 이와 같이 높은 차원의 문제를 집중시킬 수 있습니다. C++로 구현되었으며 다양한 표현을 지원합니다.
우리는 LSH/Random Projections에 의해 생성 된 바이너리 벡터를 클러스터링하는 새로운 알고리즘을 가지고 있거나 유사성을 위해 해밍 거리를 통해 비교할 수있는 바이너리 벡터를 방출하는 다른 알고리즘을 가지고 있습니다.
- 1. 관측치 집합에서 고차원 클러스터링
- 2. 고차원 시공간 클러스터링
- 3. 수백만 개의 고차원 데이터 10 개 클러스터링
- 4. OpenCV 1.1 고차원 공간에서의 K-Means 클러스터링
- 5. 자바에서 고차원 데이터 플로팅
- 6. 클러스터링 데이터
- 7. 데이터 클러스터링 접근
- 8. 데이터 클러스터링 알고리즘
- 9. 클러스터링 알고리즘에 대한 데이터 집합
- 10. 고차원 필드 화살표를 시각화 하시겠습니까?
- 11. 코코아에서 고차원 베 지어 경로
- 12. 고차원 볼록 선체 표현 (3+)
- 13. 클러스터링/신경망 사용을위한 센서 데이터 병합
- 14. 바이너리 벡터의 스파 스 데이터 집합 클러스터링
- 15. 클러스터링 알고리즘의 성능 분석
- 16. 스케일링 및 클러스터링 JPA
- 17. Matlab의 응집 클러스터링
- 18. 속성에 가중치를 할당하여 클러스터링
- 19. Ejabberd 클러스터링
- 20. Excel에서 클러스터링
- 21. 클러스터링 예측
- 22. 클러스터링 JVM
- 23. Elasticsearch의 클러스터링
- 24. ggplot2 클러스터링
- 25. 기간 클러스터링
- 26. 뉴스 클러스터링
- 27. 문서 클러스터링
- 28. BizTalk 클러스터링
- 29. 문서 라이브러리 클러스터링 하우투?
- 30. K Mahout을 사용한 클러스터링
데이터 포인트의 수는 몇 개입니까? 어떤 점에서 수업 레이블을 알고 있습니까? 클러스터는 어떻게 사용됩니까? 이러한 엄청난 가능성을위한 "최고의 알고리즘"은 없습니다. 아마도 [클러스터 분석] (http://en.wikipedia.org/wiki/Cluster_analysis)의 상단 부분을 읽고 다시 질문하십시오. – denis