2017-11-04 1 views
-1

K-means 방법은 이방성 포인트를 처리 할 수 ​​없습니다. DBSCAN과 Gaussian Mixture 모델은 scikit-learn에 따라 작업 할 수 있습니다. 두 가지 방법을 모두 사용하려고했지만 내 dataset에 대해 작동하지 않습니다.Anistropic points clustering

db = DBSCAN(eps=0.1,min_samples=5).fit(X_train,Y_train) 
labels_train=db.labels_ 
# Number of clusters in labels, ignoring noise if present. 
n_clusters_ = len(set(labels_train)) - (1 if -1 in labels_train else 0) 
print('Estimated number of clusters: %d' % n_clusters_) 

이며 1 클러스터 (클러스터 추정 번호 : 1) here 나타낸 바와 같이 검출 된

DBSCAN

는 다음 코드를 사용했다.

다음과 같이 코드를했다

가우시안 혼합 모델 : here을 같이

gmm = mixture.GaussianMixture(n_components=2, covariance_type='full') 
gmm.fit(X_train,Y_train) 
labels_train=gmm.predict(X_train) 
print(gmm.bic(X_train)) 

두 클러스터는 구별 할 수 없습니다.

어떻게 두 개의 클러스터를 감지 할 수 있습니까?

답변

0

설명서를 읽으십시오. 배열 또는 형상의 성긴 (CSR) 매트릭스 (N_SAMPLES, n_features) [...]

:

착용감

X (X는, Y는 없음, sample_weight = 없음 =). ..

Y : 당신의 호출은 y 좌표 무시 그래서

를 무시됩니다.

우리는 python/sklearn을 좋아하지 않으니 까? 심지어 이것에 대해서 경고조차하지 않고 조용히 무시한다. y?

X은 x 좌표가 아닌 전체 데이터 여야합니다.

"train"및 "predict"의 개념은 클러스터링에 적합하지 않습니다. 사용하지 마십시오. fit_predict 만 사용하십시오.