"클러스터 수에 대한 사전 분포로 Dirichlet 프로세스의 무한 혼합 모델"을 이해하면 특정 수의 클러스터로 수렴 할 때 데이터 수에 따라 클러스터 수가 결정된다는 것입니다.Scirit-learn에서`Dirichlet Process Gaussian Mixture Model` 사용하는 방법? (n_components?)
이 R Implementation
https://github.com/jacobian1980/ecostates은 이러한 방식으로 클러스터 수를 결정합니다. R implementation
은 Gibbs 샘플러를 사용하지만, 이것이 영향을 미치는지 확실하지 않습니다.
나를 혼란스럽게하는 것은 n_components
매개 변수입니다. n_components: int, default 1 : Number of mixture components.
구성 요소의 수가 데이터와 Dirichlet 프로세스에 의해 결정되는 경우이 매개 변수는 무엇입니까?
궁극적으로 내가 얻으려고 :
(1) 각 샘플에 대한 클러스터 할당;
(2) 각 클러스터에 대한 확률 벡터. (3) 각 샘플에 대한 우도/대수 우도.
(1)이 predict
메소드이고, (3)이 score
메소드 인 것 같습니다. 그러나 (1)의 출력은 하이퍼 매개 변수 n_components
에 완전히 종속됩니다.
이 질문이 단순한 질문이라면 나는 베이지안 프로그래밍에 익숙하지 않고 시도해보고 싶었던 Scikit-learn
에 Dirichlet Process
이 있다는 것을 알게되었습니다. 다음은 사용의 예 http://scikit-learn.org/stable/modules/generated/sklearn.mixture.DPGMM.html#sklearn.mixture.DPGMM
:
가 여기에 문서의 http://scikit-learn.org/stable/auto_examples/mixture/plot_gmm.html
여기 내 순진 사용의 : 코멘트에 @maxymoo에서 언급 한 바와 같이
from sklearn.mixture import DPGMM
X = pd.read_table("Data/processed/data.tsv", sep="\t", index_col=0)
Mod_dpgmm = DPGMM(n_components=3)
Mod_dpgmm.fit(X)
이 종류의 모델에 대해서는 실제로 알지 못하지만 doco에서는'n_components'를 "truncation paramater"라고 부릅니다. 따라서 구성 요소의 수는 데이터에 의해 결정되지만 상위를 지정해야합니다 경계. – maxymoo
아, 상한입니까? 나는 최대 샘플 수를 더하려고 시도했다 (42). 그리고 나는 42 개의 클러스터로 끝났다. 나는 그것이 그 수의 클러스터로 그들을 강제 할 수 있다고 생각합니다. 2000 반복에 대해 위에 나열된 R 구현을 사용하여 Gibbs 샘플링을 수행했을 때 클러스터가 3 개 있습니다. –
모르겠다. 'convariance_type','alpha' 등 다른 매개 변수를 사용하여 놀아 본 적이 있습니까? – maxymoo