Python 如何保存群集
我通过dbscan学习制作了以下集群 我的数据是一个numpy数组:Python 如何保存群集,python,cluster-computing,dbscan,Python,Cluster Computing,Dbscan,我通过dbscan学习制作了以下集群 我的数据是一个numpy数组: array([[-0.22725194, -0.68548221], [ 0.01525107, -0.98825191], [-0.29117618, -0.69614647], ..., [ 0.62125361, -0.79422623], [ 0.59627969, -0.82673572], [ 0.58919524, -1.04
array([[-0.22725194, -0.68548221],
[ 0.01525107, -0.98825191],
[-0.29117618, -0.69614647],
...,
[ 0.62125361, -0.79422623],
[ 0.59627969, -0.82673572],
[ 0.58919524, -1.04003462]])
我想将这两个新集群作为变量添加到我的数据中。我使用的代码是:
from sklearn.cluster import DBSCAN
data3 = np.array(data3)
dbscan = DBSCAN(random_state=111, eps=0.3)
dbscan.fit(data3)
# visualization
from sklearn.decomposition import PCA
pca = PCA(n_components=2).fit(data3)
pca_2d = pca.transform(data3)
for i in range(0, pca_2d.shape[0]):
if dbscan.labels_[i] == 0:
c1 = plt.scatter(pca_2d[i,0],pca_2d[i,1],c='r',
marker='+')
elif dbscan.labels_[i] == 1:
c2 = plt.scatter(pca_2d[i,0],pca_2d[i,1],c='g',
marker='o')
elif dbscan.labels_[i] == -1:
c3 = plt.scatter(pca_2d[i,0],pca_2d[i,1],c='b',
marker='*')
plt.legend([c1, c2, c3], ['Cluster 1', 'Cluster 2',
'Noise'])
plt.title('DBSCAN finds 2 clusters and noise')
plt.show()
如何将它们保存为变量?是否有一个函数来评估这些簇的质量,例如Silhoutte系数?您已经在一个变量中找到了它们:dbscan.labels\uux,不是吗 并不是说你应该能够像pca_2d[dbscan.labels_==1,:]那样避免一次只画一个点 评估基于密度的集群并不容易。我只知道一个指标,甚至声称它可以评估基于密度的聚类,但我没有使用它,所以我不能保证它有效 轮廓等不适用。他们假设了凸簇,但在经典的Jain玩具问题上失败了 Moulavi,D.,Jaskowiak,p.A.,Campello,R.J.G.B.,Zimek,A.,和Sander,J.2014。基于密度的聚类验证。在宾夕法尼亚州费城举行的第14届暹罗数据挖掘SDM国际会议记录中