机器学习中的聚类

目录

认识聚类算法

聚类算法API的使用

聚类算法实现流程

聚类算法模型评估 


认识聚类算法

聚类算法是一种无监督的机器学习算法。 它将一组数据分成若干个不同的群组,使得每个群组内部的数据点相似度高,而不同群组之间的数据点相似度低。常用的相似度计算方法有欧式距离法。

聚类算法在现实生活中的应用 

  • 用户画像,广告推荐,搜索引擎的流量推荐,恶意流量识别,图像分割,降维,识别
    离群点检测。

栗子:按照颗粒度分类 

聚类算法分类 

  • K-means聚类:按照质心分类
  • 层次聚类:是一种将数据集分层次分割的聚类算法
  • DBSCAN聚类是一种基于密度的聚类算法
  • 谱聚类是一种基于图论的聚类算法

聚类算法与分类算法最大的区别:

  • 聚类算法是无监督的学习算法
  • 分类算法属于监督的学习算法  

聚类算法API的使用

sklearn.cluster.KMeans(n_clusters=8) 

  • n_clusters:开始的聚类中心数量整型,缺省值=8,生成的聚类数
  • estimator.fit(x)
    estimator.predict(x)
    estimator.fit_predict(x)

使用KMeans模型数据探索聚类:

 

from sklearn.cluster import KMeans
import matplotlib.pyplot as plt
from sklearn.datasets import make_blobs
from sklearn.metrics import calinski_harabasz_score
def dm04_kmeans():x, y = make_blobs(n_samples=1000, n_features=2, centers=[[-1,-1], [0,0], [1,1], [2,2]],cluster_std = [0.4, 0.2, 0.2, 0.2], random_state=22)plt.figure()plt.scatter(x[:, 0], x[:, 1], marker='o')plt.show()y_pred = KMeans(n_clusters=2, random_state=22, init='k-means++').fit_predict(x)plt.scatter(x[:, 0], x[:, 1], c=y_pred)plt.show()print(calinski_harabasz_score(x, y_pred))

聚类算法实现流程

  1. 随机选择 K 个样本点作为初始聚类中心
  2. 计算每个样本到 K 个中心的距离,选择最近的聚类中心点作为标记类别
  3. 根据每个类别中的样本点,重新计算出新的聚类中心点(平均值)

 

  • 计算每个样本到质心的距离;离哪个近,就分成什么类别。 
  • 根据每个类别中的样本点,计算出三个质心; 重新计算每个样本到质心的距离,直到质心不在变化 

当每次迭代结果不变时,认为算法收敛,聚类完成,K-Means一定会停下,不可能陷入
一直选质心的过程。 

聚类算法模型评估 

聚类效果评估 – 误差平方和SSE (The sum of squares due to error) 

质心的选择会影响图的松散程度:SSE = (−0.2) 2 + (0.4) 2 + (−0.8) 2 + (1.3) 2+ (−0.7) 2  = 3.02

  • SSE随着聚类迭代,其值会越来越小,直到最后趋于稳定。
  • 如果质心的初始值选择不好,SSE只会达到一个不怎么好的局部最优解 

聚类效果评估 – “肘”方法 (Elbow method) - K值确定 

  • "肘" 方法通过 SSE 确定 n_clusters 的值

对于n个点的数据集,迭代计算 k from 1 to n,每次聚类完成后计算 SSE,SSE 是会逐渐变小的,因为每个点都是它所在的簇中心本身。SSE 变化过程中会出现一个拐点,下降率突然变缓时即认为是最佳 n_clusters 值。 

聚类效果评估 – SC轮廓系数法(Silhouette Coefficient)

轮廓系数是一种用于评价聚类效果好坏的指标,它结合了聚类的内聚度和分离度。

  • 内聚度:反映了一个样本点与其所在簇内其他元素的紧密程度。内聚度是通过计算样本点到同簇其他样本的平均距离来衡量的,这个平均距离称为簇内不相似度。
  • 分离度:反映了一个样本点与不属于其簇的其他元素之间的紧密程度。分离度是通过计算样本点到其他簇中所有样本的平均距离中最小的那个值来衡量的,这个最小平均距离称为簇间不相似度。

对计算每一个样本 i 到同簇内其他样本的平均距离 ai,该值越小,说明簇内的相似程度越大。

计算每一个样本 i 到最近簇 j 内的所有样本的平均距离 bij,该值越大,说明该样本越不属于其他簇 j 

  • 内部距离最小化,外部距离最大化 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/697510.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

OSU micro-benchmarks安装测试指导

OSU micro-benchmarks安装测试指导 OSU micro-benchmarks工具介绍 OSU Micro benchmark工具是由Ohio State University提供的MPI(Message Passing Interface,消息传递接口)通信效率评测工具。该工具旨在通过执行不同模式的MPI操作&#xff…

配置 IDEA 识别自定义规则的 Dockerfile 文件

目录 配置所在位置解决方案其他 配置所在位置 打开 IntelliJ IDEA,然后转到顶部菜单中的 “File” > “Settings”(Windows/Linux)或 “IntelliJ IDEA” > “Preferences”(macOS)。 在弹出的设置窗口中&#x…

LeetCode 125题:验证回文串

❤️❤️❤️ 欢迎来到我的博客。希望您能在这里找到既有价值又有趣的内容,和我一起探索、学习和成长。欢迎评论区畅所欲言、享受知识的乐趣! 推荐:数据分析螺丝钉的首页 格物致知 终身学习 期待您的关注 导航: LeetCode解锁100…

VTK 数据类型:vtkUnstructuredGrid

VTK 数据类型:vtkUnstructuredGrid VTK 数据类型:vtkUnstructuredGridVTK 中数据类型的继承关系常用的几何类型实例:vtkHexahedron 和 vtkTetra VTK 数据类型:vtkUnstructuredGrid 非结构化点是在空间中离散随意分布的点&#xf…

【java-数据结构13-双向链表的增删查改1】

在上一篇文章中,我们已将双向链表成功创建,接下来,我们将对链表进行增删查改,敬请期待叭~(觉得小编写的还可以的可以可以留个关注~) (1.遍历链表 思路:定义一个cur,让c…

使用Xshell工具连接ubuntu-方便快捷

使用Xshell连接ubuntu 在命令行输入 “sudo apt-get install openssh-server”安装openssh-server 开启 ssh-server,在命令行输入 “service ssh start”,然后输入密码即可

自动攻丝机进出料激光检测 进料出料失败报警循环手动及关闭报警退出无限循环

/**************进料检测********************/ /***缺料无限次循环 手动退出 超时报警*******/ void check_Pon() // { zstatus0; //报警计数器归零 Signauto1; …

使用ffmpeg将本地摄像头推流至RTSP服务器,支持RTSP和RTMP协议

一、流媒体传输协议:RTSP和RTMP 1、RTSP和RTMP的工作原理 1.1)RTSP工作原理 用户设备向视频流平台发送RTSP请求。视频流平台返回可操作的请求列表,如播放、暂停等。用户设备发送具体的请求,如播放。视频流平台解析请求并启动相…

git仓库使用

git仓库是会限制空间大小限制的 git网络库的容量限制_github仓库大小限制-CSDN博客 git是用于管理github的工具 电脑左下角搜索git打开GitBash.exe 进入到要下载到本地的目录 下载到本地的文件不要更改! 如果要使用请务必把文件复制到别的空间去再在这个别的空间…

数据库笔记-【视图】

视图 视图通俗是企业想展示给用户看的,数据库存储的数据有很多,但是也有很多是不能对外公开的,做项目的过程就通过视图这个媒介达到这种效果 视图也可以保证数据库表结构字段的隐私安全等 create or replace view stu_v_1 as select id st…

虚拟机有线已连接但无法上网—·可能性之一

背景 VMware虚拟机,搭建了三台Linux服务器,组成Hadoop集群,由于在Hadoop102上有一些经常与Mysql数据库交互的任务,需要经常打开运行,而Hadoop103和104则经常处于关闭状态,一段时间后再次启动集群时候&…

使用Dockerfile配置Springboot应用服务发布Docker镜像-16

创建Docker镜像 springboot-docker模块 这个应用可以随便找一个即可&#xff0c;这里不做详细描述了。 pom.xml 依赖版本可参考 springbootSeries 模块中pom.xml文件中的版本定义 <dependencies><dependency><groupId>com.alibaba.cloud</groupId>…