K均值算法(K-means)
K均值聚类容易实现,但是可能收敛到局部最小值,影响K-means效果的因素:
- K值的选择
- 初始化质心
- 距离度量
优:只需要计算数据点与聚类中心的距离,其计算复杂度只有O(n)。
缺:十分依赖于初始给定的聚类数目;同时随机初始化可能会生成不同的聚类效果,所以它缺乏重复性和连续性。
伪代码:
创建k个点作为起始质心(通常是随机选择)
当任意一个点的簇分配结果发生改变时:对数据集中的每个数据点:对每个质心:计算质心与数据点之间的距离将数据点分配到距其最近的簇对每一个簇,计算簇中所有店的均值并将均值作为质心
为克服K-means收敛于局部最小值的问题,有人提出了二分K-均值算法(bisecting K-means)。
伪代码:
将所有点看成一个簇
当簇的数目小于K时
对于每个簇:计算总误差在给定的簇上面进行K-均值聚类(K=2)计算将该簇一分为二之后的总误差
选择使得误差最小的那个簇进行划分操作
在Scikit-learn中也实现了2种K-means:
- cluster.KMeans([n_clusters, init, n_init, …]) K-Means clustering
- cluster.MiniBatchKMeans([n_clusters, init, …]) Mini-Batch K-Means clustering
应用:
- 文档分类器、客户分类(开始聚类时,公司的客户只是具有某些特征,没有具体的分类标准。那么可以直接根据特征进行聚类,得出聚类结果后再分析研究这些类别的真实含义)
- 对地理坐标进行聚类、对恶意IP进行聚类、识别犯罪地点、IT组件报警信息聚类与故障预测。(位置信息聚类,发现常驻地;微信聚类,黑产,恶意用户。)
- 保险欺诈检测
https://en.wikipedia.org/wiki/K-means_clustering
http://scikit-learn.org/stable/auto_examples/text/document_clustering.html#sphx-glr-auto-examples-text-document-clustering-py
周志华 《机器学习》 9.4 P202
《Building Machine Learning Systems with Python》 P46
《Machine Learning in Action》
K均值算法(K-means)相关推荐
- python实现k均值算法_python实现kMeans算法
聚类是一种无监督的学习,将相似的对象放到同一簇中,有点像是全自动分类,簇内的对象越相似,簇间的对象差别越大,则聚类效果越好. 1.k均值聚类算法 k均值聚类将数据分为k个簇,每个簇通过其质心,即簇中所 ...
- k均值算法python实现(吴恩达机器学习作业)
k均值算法python实现(吴恩达机器学习作业) 题目要求 数据集 读取mat文件 K-means 实现 结果 问题 题目要求 采用K均值算法对样本进行聚类. 编写K均值算法源代码,对ex7data2 ...
- K 均值算法-如何让数据自动分组
公号:码农充电站pro 主页:https://codeshellme.github.io 目录 1,K 均值算法 2,K 均值算法聚类过程 3,K 均值算法的实现 4,准备数据点 5,对数据聚类 6, ...
- k均值算法 二分k均值算法_如何获得K均值算法面试问题
k均值算法 二分k均值算法 数据科学访谈 (Data Science Interviews) KMeans is one of the most common and important cluste ...
- 基于SPSS的K均值算法
文章目录 前言 一.K均值算法是什么? 二.动画演示 1.网站 2.示例 三.缺点解决(K-means++算法) 四.SPSS实现 总结 前言 菜鸡学习数学建模 一.K均值算法是什么? K-means ...
- 一句话总结K均值算法
一句话总结K均值算法 核心:把样本分配到离它最近的类中心所属的类,类中心由属于这个类的所有样本确定. k均值算法是一种无监督的聚类算法.算法将每个样本分配到离它最近的那个类中心所代表的类,而类中心的确 ...
- spark Bisecting k-means(二分K均值算法)
Bisecting k-means(二分K均值算法) 二分k均值(bisecting k-means)是一种层次聚类方法,算法的主要思想是:首先将所有点作为一个簇,然后将该簇一分为二.之后选择能最大程 ...
- k均值算法原理详细讲解以及matlab代码实现
有研究生物电信号处理和机器学习的欢迎加我qq429500506共同交流学习进步. 最近更新文章的频率太低了,主要原因是不想为了发文章而发文章,想潜心研究,写好文章,顺便想说一句开源万岁,最近一个月虽然 ...
- k-modes算法mysql_第十一章 K-Means(K均值)算法模型实现(中)
python2 代码实现: from numpy import * import numpy def loadDataSet(fileName): #general function to parse ...
- k均值算法 二分k均值算法_使用K均值对加勒比珊瑚礁进行分类
k均值算法 二分k均值算法 Have you ever seen a Caribbean reef? Well if you haven't, prepare yourself. 您见过加勒比礁吗? ...
最新文章
- android camera工程师,浅析Android Camera架构
- JavaScript 数组排序及查找数组中最大值最小值方法
- 禅道8.2.4 腾讯云迁移至VM
- 最新中文NLP开源工具箱来了!支持6大任务,面向工业应用 | 资源
- 前端字符串内HTML标签无效的处理方式
- Andromeda OS 来了,Android 再见?
- [转]SecureCRT使用配置详细图文教程
- ubuntu记录pdf手写笔记: 数位板(硬件)+xournal(软件)
- 使用反相器的rc振荡电路
- 互联网日报 | 美团外卖日订单量突破4000万个;《王者荣耀》动画番剧启动;360金融更名为360数科...
- 开关稳压器详解(四)-Buck降压型开关稳压器自举电路
- 互联网公司裁员还有秘密?我知道了!
- MTK6577+Android之按键(key)修改
- N沟道MOSFET所需的高于电池的电源电压
- google 搜索接口
- transPlotR 优雅的绘制基因转录本结构
- 买不起NAS,用硬盘也可以玩起来
- TikZ绘制多样的花括号
- springcloud:config配置中心(多配置文件引入)
- 微软预告:下一代 Windows 将很快宣布