机器学习: K-means 聚类
今天介绍机器学习里常见的一种无监督聚类算法,K-means。我们先来考虑在一个高维空间的一组数据集,S={x1,x2,...,xN}" role="presentation" style="position: relative;">S={x1,x2,...,xN}S={x1,x2,...,xN}, x∈RD" role="presentation" style="position: relative;">x∈RDx∈RD,假设我们需要把这组数据聚集长 K" role="presentation" style="position: relative;">KK 类,不失一般性,我们可以假设每个聚好的类都有一个中心 μk" role="presentation" style="position: relative;">μkμk,如果聚类完成的话,那么数据集中的每一个点 x" role="presentation" style="position: relative;">xx 会有一个中心 μk" role="presentation" style="position: relative;">μkμk 离这个点的距离最近。可以构造一个变量 rnk={0,1}" role="presentation" style="position: relative;">rnk={0,1}rnk={0,1} 表示变量 x" role="presentation" style="position: relative;">xx 离第 k" role="presentation" style="position: relative;">kk 类最近 rnk=1" role="presentation" style="position: relative;">rnk=1rnk=1,离其他的类更远 rnj=0,j≠k" role="presentation" style="position: relative;">rnj=0,j≠krnj=0,j≠k,那么我们可以定义如下的目标函数:
这个目标函数就是要求 rnk,μk" role="presentation" style="position: relative;">rnk,μkrnk,μk,使得目标函数 J" role="presentation" style="position: relative;">JJ 的值最小。
为了解决上面这个问题,因为要同时求 rnk,μk" role="presentation" style="position: relative;">rnk,μkrnk,μk 两个变量,所以我们会采取分步迭代的方法,当我们求 rnk" role="presentation" style="position: relative;">rnkrnk 可以让 μk" role="presentation" style="position: relative;">μkμk 固定不动,当我们求 μk" role="presentation" style="position: relative;">μkμk 的时候,可以让 rnk" role="presentation" style="position: relative;">rnkrnk 固定不动。
很显然,当我们求 rnk" role="presentation" style="position: relative;">rnkrnk,只有比较每一个 xn" role="presentation" style="position: relative;">xnxn 与 μk" role="presentation" style="position: relative;">μkμk 的距离,选择距离最近的一个类即可:
而求 μk" role="presentation" style="position: relative;">μkμk 的时候,我们可以 让 rnk" role="presentation" style="position: relative;">rnkrnk 固定不动, 对目标函数 J" role="presentation" style="position: relative;">JJ 求导,
从而我们可以求得 μk" role="presentation" style="position: relative;">μkμk :
通过这样的反复迭代,直到所有的 rnk,μk" role="presentation" style="position: relative;">rnk,μkrnk,μk 都不再变化。
机器学习: K-means 聚类的更多相关文章
- 吴裕雄 python 机器学习——K均值聚类KMeans模型
import numpy as np import matplotlib.pyplot as plt from sklearn import cluster from sklearn.metrics ...
- 机器学习算法与Python实践之(五)k均值聚类(k-means)
机器学习算法与Python实践这个系列主要是参考<机器学习实战>这本书.因为自己想学习Python,然后也想对一些机器学习算法加深下了解,所以就想通过Python来实现几个比较常用的机器学 ...
- 机器学习算法与Python实践之(六)二分k均值聚类
http://blog.csdn.net/zouxy09/article/details/17590137 机器学习算法与Python实践之(六)二分k均值聚类 zouxy09@qq.com http ...
- 机器学习实战5:k-means聚类:二分k均值聚类+地理位置聚簇实例
k-均值聚类是非监督学习的一种,输入必须指定聚簇中心个数k.k均值是基于相似度的聚类,为没有标签的一簇实例分为一类. 一 经典的k-均值聚类 思路: 1 随机创建k个质心(k必须指定,二维的很容易确定 ...
- 机器学习之路:python k均值聚类 KMeans 手写数字
python3 学习使用api 使用了网上的数据集,我把他下载到了本地 可以到我的git中下载数据集: https://github.com/linyi0604/MachineLearning 代码: ...
- 机器学习之K均值聚类
聚类的核心概念是相似度或距离,有很多相似度或距离的方法,比如欧式距离.马氏距离.相关系数.余弦定理.层次聚类和K均值聚类等 1. K均值聚类思想 K均值聚类的基本思想是,通过迭代的方法寻找K个 ...
- 100天搞定机器学习|day44 k均值聚类数学推导与python实现
[如何正确使用「K均值聚类」? 1.k均值聚类模型 给定样本,每个样本都是m为特征向量,模型目标是将n个样本分到k个不停的类或簇中,每个样本到其所属类的中心的距离最小,每个样本只能属于一个类.用C表示 ...
- 机器学习实战---K均值聚类算法
一:一般K均值聚类算法实现 (一)导入数据 import numpy as np import matplotlib.pyplot as plt def loadDataSet(filename): ...
- 机器学习六--K-means聚类算法
机器学习六--K-means聚类算法 想想常见的分类算法有决策树.Logistic回归.SVM.贝叶斯等.分类作为一种监督学习方法,要求必须事先明确知道各个类别的信息,并且断言所有待分类项都有一个类别 ...
- 机器学习理论与实战(十)K均值聚类和二分K均值聚类
接下来就要说下无监督机器学习方法,所谓无监督机器学习前面也说过,就是没有标签的情况,对样本数据进行聚类分析.关联性分析等.主要包括K均值聚类(K-means clustering)和关联分析,这两大类 ...
随机推荐
- 牛客第二场A-run
链接:https://www.nowcoder.com/acm/contest/140/A 来源:牛客网 White Cloud is exercising in the playground. Wh ...
- zookeeper 的心跳
假定:主机 A, B 通过 tcp 连接发送数据,如果拔掉 A 主机的网线,B 是无法感知到的.但是如果 A 定时给 B 发送心跳,则能根据心跳的回复来判断连接的状态. 以 zookeeper 为例: ...
- Linux安装配置NFS教程(CentOS 6.5)
一.服务端安装nfs 1.1安装 yum install -y rpcbind yum install -y nfs-utils 1.2配置nfs共享目录 这里以/nfs目录为例 mkdir /nfs ...
- linux重命名所有find查找到的文件/文件夹
一.说明 在某些时候我们想要将所有find命令查找到的文件或文件夹全都重命名,比如都加上.bak后辍 二.操作命令 find /dir -name "*pattern*" -exe ...
- PyQt+Html+Js
先做记录,后面有时间在仔细研究 https://www.cnblogs.com/jiangjh5/p/7209315.html?utm_source=itdadao&utm_medium=re ...
- 用socket.io将Node后台与M站相联系
目的:用socket.io将Node后台与M站相联系,实现当Node后台添加一条数据时,调用该接口的M站不用手动刷新自动出现新增的数据 具体实现:当在后台系统position列表中添加/修 ...
- scratch如何获取透明的图片
scratch中,每个对象都有一个造型,这个造型可以是载入外部的图片,但是外部图片很多是有背景的,放入scratch舞台区,有背景,很是不爽.用wps2016的ppt演示, 把文本框等另存为图片,图片 ...
- 用大白菜U盘安装:[3]Ghost版Win7系统
Ghost版Win7系统安装步骤: 1,先下载Ghost Win7系统到硬盘中,然后在U盘或其它硬盘根目录中新建一个GHO文件夹,注意:决不能把文件夹建在C盘(系统盘)中,然后用UltraISO或者W ...
- 执行这些代码, Edit1只能输入数字,小数点和负号,负号和小数点只能输入一个,负号必须在最前,粘贴的数字必须完全正确.
执行这些代码, Edit1只能输入数字,小数点和负号,负号和小数点只能输入一个,负号必须在最前,粘贴的数字必须完全正确. type TForm1 = class(TForm) Edit1: TEdit ...
- Saiku的下载与安装(一)
Saiku- 数据可视化的工具,连接数据源展示数据,并且可方便导出xls/csv/pdf等文件的工具 一.Saiku下载 社区网址:https://community.meteorite.bi/ 二. ...