DBSCAN算法的代码实现

2023-10-31

1.读取数据

import pandas as pd
data = pd.read_excel('演示数据.xlsx')
data.head()

2.数据可视化 

import matplotlib.pyplot as plt
plt.scatter(data.iloc[:, 0], data.iloc[:, 1], c="green", marker='*')  # 以绿色星星样式绘制散点图
plt.xlabel('x')  # 添加x轴名称
plt.ylabel('y')  # 添加y轴名称
plt.show()

3.数据建模 

from sklearn.cluster import DBSCAN
dbs = DBSCAN()
dbs.fit(data)
label_dbs = dbs.labels_

4.查看聚类结果

print(label_dbs)

5.用散点图展示DBSCAN算法的聚类结果 

plt.scatter(data[label_dbs == 0].iloc[:, 0], data[label_dbs == 0].iloc[:, 1], c="red", marker='o', label='class0')  # 以红色圆圈样式绘制散点图并加上标签  
plt.scatter(data[label_dbs == 1].iloc[:, 0], data[label_dbs == 1].iloc[:, 1], c="green", marker='*', label='class1')  # 以绿色星星样式绘制散点图并加上标签 
plt.xlabel('x')  # 添加x轴名称
plt.ylabel('y')  # 添加y轴名称
plt.legend()  # 设置图例

 KMeans VS DBSCAN

from sklearn.cluster import KMeans
KMs = KMeans(n_clusters=2)
KMs.fit(data)
label_kms = KMs.labels_
plt.scatter(data[label_kms == 0].iloc[:, 0], data[label_kms == 0].iloc[:, 1], c="red", marker='o', label='class0')  # 以红色圆圈样式绘制散点图并加上标签  
plt.scatter(data[label_kms == 1].iloc[:, 0], data[label_kms == 1].iloc[:, 1], c="green", marker='*', label='class1')  # 以绿色星星样式绘制散点图并加上标签 
plt.xlabel('x')  # 添加x轴名称
plt.ylabel('y')  # 添加y轴名称
plt.legend()  # 设置图例

可以看到,对于形状类似同心圆的数据,KMeans算法聚类效果较差,只能机械地将数据分为左右两部分,而无法以外圆内圆的方式进行区分。 

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

DBSCAN算法的代码实现 的相关文章

随机推荐

  • C++ 接口(抽象类)

    C 接口是使用抽象类来实现的 接口描述了类的行为和功能 而不需要完成类的特定实现 且抽象类与数据抽象互不混淆 如果类中至少有一个函数被声明为纯虚函数 则这个类就是抽象类 数据抽象则是一个把实现细节与相关的接口分离开的概念 如果类中至少有一个
  • Ubuntu18.04安装ROS教程bug解决办法

    Ubuntu18 04安装ROS教程bug解决办法 写在前面 一 配置源文件bug 二 rosdep update 报错 三 安装ROS中出现bash opt ros melodic setup bash 没有那个文件或目录或者bash o
  • linux设置时间为24小时制,设置时区

    1 查看系统时间 root localhost localdomain date Thu Feb 4 14 24 18 CST 2010 时区是CST 为了彻底弄明白GMT UTC CST 我查阅了下网上的相关教程 进行整理 一般来说 UT
  • Android 应用内部存储之应用文件缓存

    前言 Android 应用内部存储之应用文件缓存的重点在最后总结 如果想快速学习 直接查看最后总结 在向手机上保存数据 一般是把数据保存在sdcard中的 大部分应用是直接在sdcard的根目录下创建一个文件夹 然后把数据保存在该文件夹中
  • 一个TCP长连接设备管理后台工程(四)---jtt808协议解析

    协议解析 从前面内容我们可以发现 808协议是一个很典型的协议格式 固定字段 变长字段 其中固定字段用来检测一个帧格式的完整性和有效性 所以一般会包含一下内容 帧头 变长字段对应的长度 校验 由于这一段的数据格式固定 目的单一 所以处理起来
  • vue/react/node项目通过eslint检查语法规范

    首先 我们打开终端 全局安装依赖 npm install g eslint 然后 以管理员身份运行项目终端 输入 eslint init 然后 这里 在初始化时会问我们想如何使用它 分别对应 仅检查语法 检查语法并发现问题 检查语法 发现问
  • 面试官:为啥索引可以让查询变快?

    您好 我是路人 更多优质文章见个人博客 http itsoku com 概述 人类存储信息的发展历程大致经历如下 由于是个人凭着自己理解总结的 因此可能不一定精确 但是毋庸置疑的是 在当代 各大公司机构部门的数据都是维护在数据库当中的 数据
  • 如何在Kubernetes中安装metrics-server以获取Node节点、Pod容器资源监控指标?

    关注 WeiyiGeek 公众号 设为 特别关注 每天带你玩转网络安全运维 应用开发 物联网IOT学习 本章目录 Kubernetes中安装metrics server以获取客户端资源监控指标 原文地址 https blog weiyige
  • 系统分析师笔记

    信息系统生命周期 1 立项阶段 企业全局 形成概念 需求分析 2 开发阶段 系统规划 系统分析 系统设计 系统实施 系统验收 3 运维阶段 通过验收和移交之后 4 消亡阶段 更新改造 功能扩展 报废重建 1 系统规划 初步调查 分析系统目标
  • bash设置成vim命令模式

    如果你习惯在vim下编辑文件或者写代码 那么对Vim命令肯定很熟悉 自然希望在bash输入命令的时候也能够使用这些命令 使得shell命令输入也便利起来 默认情况下 bash是Emacs模式的 在 bashrc里面添加一个设置 set o
  • python的name属性_Python中__name__属性的妙用

    在Python中 每一个module文件都有一个built in属性 name 这个 name 有如下特点 1 如果这个module文件是被别的文件导入的 那么 该 name 属性的值就是这个module文件的名字 2 如果这个module
  • elastic-job开源框架使用中遇到的 架包冲突错误

    最近在运行部门一个新的框架 该框架是用maven管理jar包的聚合工程 在进行运行elastic job相关的一个子项目时 报了如下的错误 Exception in thread main org springframework beans
  • 使用Django开发一个简易的留言板

    Django在线留言板demo 环境 ubuntu16 04 python3 django1 11 1 创建项目 django admin py startproject message 进入项目message 2 创建APP python
  • 伪代码和流程图

    一 逻辑是写代码的基础 逻辑是什么 三段论 命题一 JS中所有函数都是由function构造的 命题二 Function Object Array 推论 Function Object Array是由Function构造的 二 用三种语句表
  • Keras LSTM层return_sequences参数的坑

    具体用法我就不赘述了 可以参考中文文档https keras io zh layers recurrent lstm 我主要记录一下坑 网络结构如下 model Sequential model add Embedding 257 150
  • Windows安装PyTorch并配置pycharm

    Windows安装PyTorch并配置pycharm 安装PyTorch 1 下载Anaconda并安装 https www anaconda com 2 打开Anacnda Prompt创建分区并安装pytorch 创建分区并激活 con
  • 【转】c# WebApi之解决跨域问题:Cors

    c WebApi之解决跨域问题 Cors 版权声明 本文为博主原创文章 遵循 CC 4 0 BY SA 版权协议 转载请附上原文出处链接和本声明 本文链接 https blog csdn net lwpoor123 article deta
  • ensp的下载与安装

    ensp的下载与安装 1 安装环境 Win 10系统安装 也可虚拟机安装 2 安装 下载链接 现在官网不让下载了 我这里有2个版本的ensp windows7和windows10的 是免费的 ensp免费下载 阿杰邦尼的博客 CSDN博客
  • 收藏清单--排序

    LeetCode 收藏清单 给你一个数组 favoriteCompanies 其中 favoriteCompanies i 是第 i 名用户收藏的公司清单 下标从 0 开始 请找出不是其他任何人收藏的公司清单的子集的收藏清单 并返回该清单下
  • DBSCAN算法的代码实现

    1 读取数据 import pandas as pd data pd read excel 演示数据 xlsx data head 2 数据可视化 import matplotlib pyplot as plt plt scatter da