Partitioning Methods|学习笔记(二)

简介: 快速学习 Partitioning Methods

开发者学堂课程【高校精品课北京理工大学数据仓库与数据挖掘(下)Partitioning Methods】学习笔记,与课程紧密联系,让用户快速学习知识。

课程地址:https://developer.aliyun.com/learning/course/1041/detail/15649


六、K-Medians 聚类算法

那么,除了采用 k 中心点来改善 K-Means 算法对异常敏感的问题,还可以采用这样的一个k中位数的方法,那么也就是可以不用所有数据对象的平均值来代表这个蔟,可以用所有数据对象的中位数来代表这个蔟。

那么如果使用中位数来代表这个蔟,那么相应的相似性度量方法也会发生变化,那么这个时候就会采用马市距离作为相似度测量方法,这个就是中位数聚类算法。

 

七、K-Means 聚类算法问题

对于这样的一个肯定是算法来说,它在执行过程中可能会产生一个问题,就是空蔟的问题。

1. 空蔟的产生

先看一下空蔟的产生。假设这个下图显示的这样的一个数据集是有六个数据对象,刚开始设定了三个聚类中心,在确定聚类中心之后,将每一个数据对象分配到离它最近的这个蔟里面去,就可以得到三个蔟。在得到三个蔟之后,根据K-Means算法,需要更新这个蔟的聚类中心,那么更新后的三个聚类中心的值分别是七点七五,十二点五和十七点二五。在更新蔟的聚类中心之后,需要再一次的对数据对象进行分配,将它分配到离聚类中心最近的蔟中去,那么经过这一次分配之后,就发现所有的数据对象都被分配到了7.75和17.25这两个数据所代表的蔟理面去,而以12.5维蔟中心的这个蔟,是没有任何数据对象的,从而就得到了一个空蔟。

image.png

2.空蔟解决策略

对于空蔟来说,解决主要是有两种策略。第一种策略是可以选择一个对 sse 贡献最大的一个数据对象,把它作为一个新的蔟的中心,那么其次,第二种策略是可以选择一个具有最大 sse 的蔟,在这个蔟中,随机地去选择一个数据对象,作为一个新的蔟中心。那假设在 K-Means 聚类算法中产生的多个空蔟,就可以基于以上策略得到多个新的蔟的聚类中心,然后再进行下一步。

 

八、K-Means 算法小结

最后,对 K-Means 算法做一个小结。对于 K-Means 算法来说,它有很多缺点,那么第一个缺点就是它是不能够处理不同尺寸,不同密度和非球形的蔟。

1.尺寸不同

其次 K-Means 算法,对于这样的一个包含异常的数据集合,它的聚类效果是比较差的。来看一下下面展示的这样的一个图,是一个数据集合,这个数据集合的特点就是它的蔟是具有不同的尺寸,可以看到其中左边和最右边的这两个蔟比较小,而中间红色部分的蔟比较大,如果使用k=3进行聚类,可以得到聚类结果,那么这个聚类结果和能观察到的这个数据的分布,它的差异性是比较大的,就是相当于聚类,结果质量是不太好的。

image.png

2.密度不同

再来看一下,对于下面的一个数据分布来说,那么每一个蔟中,看最左边的图,每一个蔟中的数据对象的数目大概是一样的,但是,第一个蔟面积比较大,就相当于它这个蔟的密度是比较低的,而这两个小蔟,它的密度是比较高的,比如说这代表的是它的密度分布不均匀的数据集合,对于这样的数据集,如果使用K-Means算法,可以看到得到的聚类结果和分布差异也是比较大的聚类结果,也是比较差。

image.png

3.非凸形蔟

再来看一下下面的一个数据集,这样的一个数据集很明显是有两个蔟,但是这两个蔟的形状是非凸形的,那如果是设置 k=2用,肯定是聚类,可以得到把它上面这一部分划分为一个蔟,下面这一部分划分为一个蔟,这跟初始的这个出的分布差异是非常大的,所以说对于 K-Means 算法来说,它是对于这种非凸形的,这种蔟的识别是比较差的。

image.png

4.解决方法

那针对于 K-Means 算法的,这些问题怎么样去解决和克服它呢?其中一种比较简单的策略就是,在利用 K-Means聚类的时候,可以开始把这个k的数目设置的比较大,也就是可以得到若干个比较小的蔟,然后再对这些比较小的蔟进行合并,从而得到比较好的聚类结果。那可以看一下,那么可以得到比较小的蔟,然后对于小蔟进行合并,那么得到的这些聚类,结果那么就比较的接近真实的数据分布。image.pngimage.png

关于基于划分的层次聚类算法就介绍到这里。

相关文章
|
开发工具 git
Git查看/修改/添加远程仓库地址
Git查看/修改/添加远程仓库地址
854 0
|
安全 云栖大会 云计算
阿里云创业者计划:数字化时代的创新助推器
阿里云创业者计划助力初创企业数字化转型,提供最高100万上云抵扣金,1对1技术服务,及品牌曝光等综合支持。通过降低上云成本与技术指导,该计划旨在帮助企业在竞争中站稳脚跟,促进创新与行业发展。尽管面临审核流程及技术利用的挑战,该计划仍为创业创新提供了关键推动力。
550 4
阿里云创业者计划:数字化时代的创新助推器
|
新零售 人工智能
阿里巴巴联合汉仪重磅推出五款人工智能字体:汉仪天真体、英雄体等
众所周知传统做字的人力成本非常之高,如果全靠人类设计师来完成,一套标准字库从设计到完成需要一年多的时间。
13469 0
|
存储 缓存 网络安全
南大通用GBase 8s 数据库 RHAC集群基本原理和搭建步骤
南大通用GBase 8s 数据库 RHAC集群基本原理和搭建步骤
|
Java Nacos Docker
微服务入门教程
微服务入门教程
278 2
|
弹性计算 JSON API
一键云部署:资源编排 ROS 轻松部署文本转语音系统 ChatTTS
ChatTTS是一款针对对话场景的文本转语音模型,支持英中两种语言,训练数据超过10万小时。ChatTTS可通过WebUI和API访问。阿里云的资源编排服务(ROS)提供了一键部署ChatTTS到云端的方案,用户只需在ROS控制台配置模板参数,如区域和实例类型,即可完成部署。部署后,从资源栈输出获取ChatTTS服务地址。ROS利用IaC理念自动化部署云资源和应用,提高了部署效率和稳定性。
一键云部署:资源编排 ROS 轻松部署文本转语音系统 ChatTTS
|
消息中间件 存储 NoSQL
剖析 Redis List 消息队列的三种消费线程模型
Redis 列表(List)是一种简单的字符串列表,它的底层实现是一个双向链表。 生产环境,很多公司都将 Redis 列表应用于轻量级消息队列 。这篇文章,我们聊聊如何使用 List 命令实现消息队列的功能以及剖析消费者线程模型 。
剖析 Redis List 消息队列的三种消费线程模型
|
缓存 负载均衡 前端开发
优化Web应用性能的十种策略
在当今的数字化时代,Web应用的性能直接影响用户体验和业务成效。本文深入探讨了优化Web应用性能的十种策略,从前端的资源优化到后端的架构改进,涵盖了缓存机制、异步加载、数据库优化等关键技术手段。这些策略不仅能提升响应速度,还能显著减少服务器负担和带宽消耗,为开发者提供了一系列切实可行的解决方案。
|
数据挖掘 UED
ChatGPT数据分析——探索性分析
ChatGPT数据分析——探索性分析
169 1
|
存储 运维 小程序
后端开发零负担!揭秘支付宝小程序云开发的高效与安全,你的项目也能飞速上线?
【8月更文挑战第27天】支付宝小程序云开发是由阿里云提供的集成开发环境,助力开发者高效、安全地构建小程序后端服务,免去服务器搭建,显著提高开发效率并降低运维成本。它集成了云函数、云数据库及云存储等功能,便于快速搭建后端逻辑。例如,仅需简单几行代码即可创建HTTP接口或进行数据管理。这使得开发者能更专注于业务逻辑和用户体验优化,同时平台还提供了强大的安全保障措施,确保数据安全和用户隐私。无论对于初创团队还是成熟企业,支付宝小程序云开发都能有效提升产品迭代速度和市场竞争力。
360 1