当前位置: 首页 > news >正文

微信官网网站模板下载不了千锋教育怎么样

微信官网网站模板下载不了,千锋教育怎么样,白山做网站,在线平面设计网站哪个好python实现dbscan 原理 DBSCAN(Density-Based Spatial Clustering of Applications with Noise)是一个比较有代表性的基于密度的聚类算法。它将簇定义为密度相连的点的最大集合,能够把具有足够高密度的区域划分为簇,并可在噪声的空间数据库中发现任意形…

python实现dbscan

原理

DBSCAN(Density-Based Spatial Clustering of Applications with Noise)是一个比较有代表性的基于密度的聚类算法。它将簇定义为密度相连的点的最大集合,能够把具有足够高密度的区域划分为簇,并可在噪声的空间数据库中发现任意形状的聚类。

DBSCAN中的几个定义:

  1. Ε邻域:给定对象半径为Ε内的区域称为该对象的Ε邻域;
  2. 核心对象:如果给定对象Ε邻域内的样本点数大于等于MinPts,则称该对象为核心对象;

DBSCAN 算法步骤

  1. 初始化:
    从数据集中任意选择一个点 p,判断它是否为核心点(即 ε 邻域内是否包含至少 minPts 个点)。
  2. 扩展簇:
    如果 p 是核心点,则开始一个新簇,将 p 及其邻域中的点加入簇中,并不断对新的核心点的邻域进行扩展。
  3. 处理噪声点:
    如果一个点既不在任何簇中,也不满足成为核心点的条件,则将其标记为噪声点。
  4. 重复处理:
    继续检查所有未访问的点,直到所有点都被访问为止。

python实现

从大神哪里复制过来的代码
https://github.com/lansinuote/Machine-Learning-In-Numpy/blob/master/%E6%97%A0%E7%9B%91%E7%9D%A3%E7%AF%87/5.DBSCAN/1.DBSCAN.ipynb

from sklearn.datasets import make_moons
from matplotlib import pyplot as pltimport numpy as np#加载数据
x, y = make_moons(n_samples=300, noise=0.05, random_state=42)
print(type(x))print(x)
x[0,0] = 2
x[0,1] = 2def my_dbscan(x, eps, minpts):#被访问过的放这里visited = []#被分组过的放这里grouped = []#分组结果groups = []#求一个点周围的邻居def get_neighbors(xi):diff = x - xidiff = diff**2diff = diff.sum(axis=1)diff = diff**0.5#这里的eps是超参数,是画圆的半径index = diff <= epsreturn np.where(index)[0]#获取一个没有访问过的x索引def get_unvisited_idx():for i in range(len(x)):if i not in visited:return ireturn None#从一个中心点开始扩散成一个组def build_group(i, group):#如果一个点已经被访问过,则不进行任何计算if i in visited:return#标记这个点已经被访问过了visited.append(i)#获取这个点所有的邻居neighbors = get_neighbors(x[i])#如果邻居数小于minpts,说明不是中心点,不进行任何计算if len(neighbors) < minpts:return#如果是中心点,把它加入到组中if i not in grouped:group.append(i)grouped.append(i)#遍历中心点的所有邻居,如果在它的邻居中也有中心点,则扩散for j in neighbors:#如果邻居还没有被分过组,则归入中心点的组if j not in grouped:group.append(j)grouped.append(j)build_group(j, group)#遍历直到所有点被访问while True:i = get_unvisited_idx()if i == None:break#每次重新开始扩散,是一个新的组group = []build_group(i, group)if group:groups.append(group)#结果画图predict = -1 * np.ones(len(x)) # 没有分簇的都是-1分类for i in range(len(groups)):predict[groups[i]] = ireturn predictpredict = my_dbscan(x, 0.25, 5)print(predict)
plt.scatter(x[:, 0], x[:, 1], c=predict)
plt.show()

在这里插入图片描述

http://www.khdw.cn/news/43485.html

相关文章:

  • 鞍山做网站优化公司网站建设需要多少钱?
  • unity可以做网站吗百度人工服务24小时电话
  • 视屏网站的审核是怎么做的互联网营销推广服务商
  • 国外主题网站外贸展示型网站建设公司
  • 软件二次开发什么意思seo网络推广培训班
  • 营销型类型网站有哪些类型百度广告开户流程
  • 电影网站如何做采集发帖推广哪个平台好
  • 市场部做网站工作职责企业网络营销方案设计
  • 网站上图片的链接怎么做小学培训机构
  • l礼品文化网站建设竞价排名的优缺点
  • 怎样做内网网站广西seo快速排名
  • 网站被做301跳转了怎么办西安网页设计
  • 做网站难学吗小红书信息流广告
  • 静安广州网站建设百度开户怎么开
  • 记事本做网站如何添加图片网站数据统计工具
  • 怎么把网站设置为主页面关联词有哪些关系
  • 太原有网站工程公司吗2023适合小学生的新闻事件
  • 手机网站如何建设如何购买域名
  • 网站开发轮播图系统清理优化工具
  • 网站建设的英语惠州seo公司
  • 孝感网站建设最新的疫情信息
  • 外贸公司几个网站山东疫情最新情况
  • 如何做百度网站网店怎么运营和推广
  • 如何让wordpress主页不显示文章seo怎么优化关键词排名
  • 广州网站推广解决方案跨境电商关键词工具
  • 网站将导航条不滚动怎么做免费建站
  • 做电商网站的步骤上海网站外包
  • 一般做网站是用什么语言开发的sem竞价培训
  • 手机网站开发成为小程序微信加人推码35一单
  • 临安农家乐做网站百度大数据查询平台