Python:密度聚类DBSCAN,使用了sklearn.cluster.

系统 1547 0

DBSCAN 的聚类类簇数k是自适应的。 太忙了没工夫写文字了。

            
              from sklearn import datasets
import numpy as np
import matplotlib.pyplot as plt
from sklearn.cluster import DBSCAN

X1, y1 = datasets.make_circles(n_samples=5000, factor=.6, noise=.05)
X2, y2 = datasets.make_blobs(n_samples=1000, n_features=2, centers=[[1.2,1.2]], cluster_std=[[.1]], random_state=9)
X = np.concatenate((X1, X2))
print(X.shape)
# 绘制数据分布图-----------------------------
# plt.scatter(X[:, 0], X[:, 1], c="red", marker='o', label='see')
# plt.xlabel('petal length')
# plt.ylabel('petal width')
# plt.legend(loc=2)
# plt.show()
#---------------------------------------------
DB = DBSCAN(eps=0.1,min_samples=6).fit(X)
label_pred = DB.labels_
color = ['red','blue','green','grey','black']
marker = ['o','*','+']
for i in range(max(label_pred)+1):
    cluster_i = X[label_pred == i]
    print(len(cluster_i))
    plt.scatter(cluster_i[:,0],cluster_i[:,1],c=color[i%5],marker=marker[i%3],label="class"+str(i+1)+'-'+str(len(cluster_i)))
plt.xlabel("XX")
plt.ylabel("YY")
plt.legend(loc=2)
plt.show()
            
          

 


更多文章、技术交流、商务合作、联系博主

微信扫码或搜索:z360901061

微信扫一扫加我为好友

QQ号联系: 360901061

您的支持是博主写作最大的动力,如果您喜欢我的文章,感觉我的文章对您有帮助,请用微信扫描下面二维码支持博主2元、5元、10元、20元等您想捐的金额吧,狠狠点击下面给点支持吧,站长非常感激您!手机微信长按不能支付解决办法:请将微信支付二维码保存到相册,切换到微信,然后点击微信右上角扫一扫功能,选择支付二维码完成支付。

【本文对您有帮助就好】

您的支持是博主写作最大的动力,如果您喜欢我的文章,感觉我的文章对您有帮助,请用微信扫描上面二维码支持博主2元、5元、10元、自定义金额等您想捐的金额吧,站长会非常 感谢您的哦!!!

发表我的评论
最新评论 总共0条评论