【发布时间】:2016-06-25 18:00:03
【问题描述】:
这个例子来自 Data Science for dummies:
digits = load_digits()
X = digits.data
ground_truth = digits.target
pca = PCA(n_components=40)
Cx = pca.fit_transform(scale(X))
DB = DBSCAN(eps=4.35, min_samples=25, random_state=1)
DB.fit(Cx)
for k,cl in enumerate(np.unique(DB.labels_)):
if cl >= 0:
example = np.min(np.where(DB.labels_==cl)) # question 1
plt.subplot(2, 3, k)
plt.imshow(digits.images[example],cmap='binary', # question 2
interpolation='none')
plt.title('cl '+str(cl))
plt.show()
我的问题是:
- np.where(DB.labels_==cl) 我不明白我们在哪个数组上应用 np.where 当我打印 np.where(DB.labels_==cl) 时,它看起来像是应用于 DB.core_sample_indices_。但我不明白为什么。正如我从 np.where 的文档中了解到的那样,应将 np.where(DB.labels_==cl) 应用于 DB.labels_。
- np.min(np.where(DB.labels_==cl)) 怎么会给我在 digits.images 中绘制正确图像的索引。 谢谢。
【问题讨论】:
标签: python scikit-learn dbscan