机器学习笔记(12)— K均值算法
本文主要介绍K均值的运行原理、代价函数、聚类数量的选择等内容。
1.运行原理
假如有以下数据集,并且要将其分为两类。
首先使用生成两个聚类中心(图中的红蓝点)。之后该算法会计算每个样本点和两个聚类中心的距离,根据距离的远近把样本点分配给聚类中心。
第一次聚类之后的结果如下:
之后K-均值算法根据之前计算出来的距离移动聚类中心,移动之后的结果如下所示。
之后重复之前的过程,完成聚类。
通过以上例子,可知K-均值的计算过程是:
首先随机初始化K个聚类中心。之后计算样本与K个聚类中心的距离,选择最近的聚类中心进行分类。
2.代价函数
K均值算法的代价函数为:
其中:μ_k代表第K个聚类中心,c^((m) )代表样本目前所属的聚类,μ_c (i)代表第i个样本所属的聚类中心。
3.聚类中心
3.1初始化
首先K的值要小于样本的数量,之后在样本中随机挑选K个样本点作为初始聚类中心,为了避免算法陷入局部最优解,可以多次初始化K值,然后多次(50-1000次)运行算法。之后选择代价函数最小的初始化K值。
3.2聚类中心的数量选择
通常的方法是多次选择不同的聚类中心比较代价函数的结果。
如图所示,在K=3时,代价函数变化最大,在3以后代价函数减低的较慢,如果选择k>3会增加计算时间,因此在这个例子中可以选择K=3.
聚类中心数量的选择大部分时候还是要依赖于实践经验,以上的方法知识为大家提供一个思路。
机器学习笔记(12)— K均值算法相关推荐
- 01. 机器学习笔记01——K近邻算法 , CV_example
K近邻算法(K-nearest neighbor,KNN算法) 李航博士<统计学习方法> 最近邻(k-Nearest Neighbors,KNN)算法是一种分类算法 应用场景:字符识别.文 ...
- 百面机器学习—7.K均值算法、EM算法与高斯混合模型要点总结
文章目录 一.总结K均值算法步骤 二.如何合理选择K值? 三.K均值算法的优缺点是什么? 四.如何对K均值算法进行调优? 五.EM算法解决什么问题? 六.EM算法流程是什么? 六.EM算法能保证收敛嘛 ...
- (学习笔记)聚类算法 - k均值算法(k-means)
聚类之K均值算法 聚类介绍 k均值算法步骤 Python实现 参考文献 聚类介绍 聚类是一种经典的无监督学习方法. 聚类的目的是将数据集中的样本划分为若干个通常是不相交的子集,每个子集被称为簇,以此来 ...
- k均值算法python实现(吴恩达机器学习作业)
k均值算法python实现(吴恩达机器学习作业) 题目要求 数据集 读取mat文件 K-means 实现 结果 问题 题目要求 采用K均值算法对样本进行聚类. 编写K均值算法源代码,对ex7data2 ...
- K均值算法【K-means】
一.K-Means算法流程 K均值算法是学习无监督学习的第一个算法,这个算法理解和实现都比较简单,算法的目的是将数据分成K组. 为了达到这个目的,算法首先随机初始化k个数据点(聚类中心),然后遍历所有 ...
- K 均值算法-如何让数据自动分组
公号:码农充电站pro 主页:https://codeshellme.github.io 目录 1,K 均值算法 2,K 均值算法聚类过程 3,K 均值算法的实现 4,准备数据点 5,对数据聚类 6, ...
- k均值算法原理详细讲解以及matlab代码实现
有研究生物电信号处理和机器学习的欢迎加我qq429500506共同交流学习进步. 最近更新文章的频率太低了,主要原因是不想为了发文章而发文章,想潜心研究,写好文章,顺便想说一句开源万岁,最近一个月虽然 ...
- k均值算法 二分k均值算法_如何获得K均值算法面试问题
k均值算法 二分k均值算法 数据科学访谈 (Data Science Interviews) KMeans is one of the most common and important cluste ...
- k均值算法 二分k均值算法_使用K均值对加勒比珊瑚礁进行分类
k均值算法 二分k均值算法 Have you ever seen a Caribbean reef? Well if you haven't, prepare yourself. 您见过加勒比礁吗? ...
- python机器学习库sklearn——k均值聚类
全栈工程师开发手册 (作者:栾鹏) python数据挖掘系列教程 k均值聚类的相关的知识内容可以参考 http://blog.csdn.net/luanpeng825485697/article/de ...
最新文章
- servlet response 中文乱码
- sql server 表索引碎片处理
- 黑客都用Python?学习Python的4个理由!
- MAC软件下载比较好的三个第三方网站
- java 枚举高级应用_【后端】java基础(5.6)java高级基础之枚举
- python如何去掉字符串‘\xa0’
- Django从理论到实战(part7)--关于视图函数与URL映射
- python展开list嵌套,并解决from compiler.ast import flatten报错ModuleNotFoundError: No module named ‘compiler‘
- 详解iPhone Tableview分批显示数据
- Rust: Rangechar 'a'..'z' 能干什么?......待续
- 微信开发者工具关联gitee账户
- 景区门票怎么在线上渠道分销?
- 职场技巧:高效实用的四象限法则
- 我为什么不看好微信小程序_0
- Laravel执行seeder命令出现class *** does not exist
- JS做的一款动感超酷banner
- Shell脚本发送邮件(CentOS+mailx+QQ邮箱)
- casio计算机隐藏游戏fx-82ES,CASIOlowbar;fx-82ES计算器隐藏功能
- Keras Tuner官方教程
- 《化工流体力学》课程笔记(四)