2013-08-14 101 views
15

làm theo tấm gương Demo of DBSCAN clustering algorithm của Scikit Learning tôi đang cố gắng để lưu trữ trong một mảng x, y của từng loại phân nhómDBSCAN trong scikit-học của Python: lưu các điểm cụm trong một mảng

import numpy as np 
from sklearn.cluster import DBSCAN 
from sklearn import metrics 
from sklearn.datasets.samples_generator import make_blobs 
from sklearn.preprocessing import StandardScaler 
from pylab import * 

# Generate sample data 
centers = [[1, 1], [-1, -1], [1, -1]] 
X, labels_true = make_blobs(n_samples=750, centers=centers, cluster_std=0.4, random_state=0) 
X = StandardScaler().fit_transform(X) 

xx, yy = zip(*X) 
scatter(xx,yy) 
show() 

enter image description here

db = DBSCAN(eps=0.3, min_samples=10).fit(X) 
core_samples = db.core_sample_indices_ 
labels = db.labels_ 
n_clusters_ = len(set(labels)) - (1 if -1 in labels else 0) 
print n_clusters_ 
3 

enter image description here

tôi đang cố gắng để hiểu được thực hiện bởi DBSCAN scikit-học, nhưng từ thời điểm này tôi gặp rắc rối. Số lượng cụm là 3 (n_clusters_) và tôi muốn lưu trữ x, y của từng cụm trong một mảng

Trả lời

33

Cụm thứ nhất là X[labels == 0], v.v .:

clusters = [X[labels == i] for i in xrange(n_clusters_)] 

và giá trị ngoại biên là

outliers = X[labels == -1] 
+0

vâng, đây chính xác là những gì tôi đang tìm kiếm –

+1

Đây sẽ là một bổ sung tuyệt vời cho các tài liệu :) –

2

Ý của bạn là gì "của mỗi cụm"?

Trong DBSCAN, các cụm không được biểu diễn dưới dạng centroid như trong phương tiện k, do đó không có đại diện rõ ràng của cụm trừ các thành viên của cụm. Bạn đã có vị trí x và y của các thành viên cụm, vì chúng là dữ liệu đầu vào.

Vì vậy, tôi không chắc chắn câu hỏi là gì.

+0

hey Andreas, xin lỗi nếu tôi đã không rõ ràng. Nếu bạn thấy trong hình 2, mỗi điểm (x, y) có màu khác nhau do cụm (ví dụ: 3 cụm trong ví dụ và các dấu chấm sau là nhiễu). Tôi muốn có một mảng với 3 khối. Mỗi khối lưu trữ x, y chỉ các giá trị của con trỏ đó. –

+0

cũng là một từ điển hoạt động tốt, trong đó khóa là nhãn –

+1

Bạn có vị trí x và y của các thành viên cụm, nhưng làm thế nào bạn có thể biết trong đó cụm những điểm này là gì? – user3378649