DBSCAN算法案例1

案例:
第一步:使用sklearn的make_moons生成如下数据,要求使用合适的聚类算法
DBSCAN算法进行聚类分类,选择合适的参数eps,min_samples,得到比较好的聚类效果,
并进行可视化。
第二步:用K-means算法对上述的数据集再做聚类分析,并进行可视化(每个聚类的质心也要画出来),
并对比两种聚类算法的效果。
注:make_moons是用于生成两个交错半圆
from sklearn.datasets import make_moons
import matplotlib.pyplot as plt
x1,y1=make_moons(n_samples=1000,noise=0.1,random_state=0)#make_moons是生成两个交错的半圆
plt.scatter(x1[:,0],x1[:,1])
plt.show()
#建立模型,其中eps代表距离阀值,min_samples代表核心对象在eps领域的样本数阀值

在这里插入图片描述

import numpy as np
from sklearn.cluster import DBSCAN

dbscan=DBSCAN(eps=0.1,min_samples=4)

cluster=dbscan.fit_predict(x1)
print(cluster)
plt.scatter(x1[:,0],x1[:,1],c=cluster)
plt.show()

在这里插入图片描述
在这里插入图片描述

import numpy as np
from sklearn.cluster import KMeans
import matplotlib.pyplot as plt

KM=KMeans(n_clusters=4)
KM.fit(x1)
centers=KM.cluster_centers_
print(centers)
result=KM.predict(x1)
print('分簇结果:',result)

在这里插入图片描述

mark=['^r','sb','*g','oy']
for i,d in enumerate(x1):
    plt.plot(d[0],d[1],mark[result[i]])

markcentor=['+b','+r','+y','+g']
for i,centor in enumerate(centers):
    plt.plot(centor[0],centor[1],markcentor[i],markersize=30)

在这里插入图片描述

plt.scatter(x1[result==0,0],x1[result==0,1],s=30,c='orange',
           marker='o',label='cluster=1')
plt.scatter(x1[result==1,0],x1[result==1,1],s=30,c='green',
           marker='s',label='cluster=2')
plt.scatter(x1[result==2,0],x1[result==2,1],s=30,c='blue',
           marker='o',label='cluster=3')
plt.scatter(x1[result==3,0],x1[result==3,1],s=30,c='red',
           marker='*',label='cluster=4')

plt.scatter(centers[:,0],centers[:,1],s=500,marker="+",c='red',label='cluster center')
plt.legend(loc='lower left',bbox_to_anchor=(-0.4,0.5,0.1,0.1))
plt.show()

在这里插入图片描述

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

侬本多情。

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值