赞
踩
我们知道『物以类聚,人以群分』,这里并不是分类问题,而是聚类问题。
两者主要区别在于,分类是将一组数据根据不同的类区分,已经知道有哪些类,也就是数据已经有了类的标签。而聚类是一种事先不知道有多少类,通过算法学习,分出来了一些类别。
分类跟聚类也分别是有监督学习和无监督学习的范畴。
k-means算法
k-means是聚类算法中最简单的,也是最常用的一种方法。
这里的
指的是初始规定要将数据集分成的类别,means是各类别数据的均值作为中心点。
算法步骤:
1.初始设置要分成的类别
,及随机选取数据集中
个点作为初始点
2.根据相似性度量函数将其他点与初始点做比较,离哪个值近就分到哪一个类
3.将分出来的
类求取平均值,作为新的中心点
4.重复步骤,直到中心点不变或者变化不大(即收敛)或者达到规定的迭代次数则停止
相似性度量有多种函数,一般使用欧式距离。相似性度量函数
补充:为什么会使用均值作为中心点的选择呢?
这主要是因为目标函数的设置决定的。我们使用误差平方和作为聚类的目标函数,即
。
这里的
表示 <
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。