当前位置:   article > 正文

r语言kmodes_聚类分析——k-means算法及R语言实现

kmodesr语言实现

我们知道『物以类聚,人以群分』,这里并不是分类问题,而是聚类问题。

两者主要区别在于,分类是将一组数据根据不同的类区分,已经知道有哪些类,也就是数据已经有了类的标签。而聚类是一种事先不知道有多少类,通过算法学习,分出来了一些类别。

分类跟聚类也分别是有监督学习和无监督学习的范畴。

k-means算法

k-means是聚类算法中最简单的,也是最常用的一种方法。

这里的

equation?tex=k 指的是初始规定要将数据集分成的类别,means是各类别数据的均值作为中心点。

算法步骤:

1.初始设置要分成的类别

equation?tex=k ,及随机选取数据集中

equation?tex=k 个点作为初始点

2.根据相似性度量函数将其他点与初始点做比较,离哪个值近就分到哪一个类

3.将分出来的

equation?tex=k 类求取平均值,作为新的中心点

4.重复步骤,直到中心点不变或者变化不大(即收敛)或者达到规定的迭代次数则停止

相似性度量有多种函数,一般使用欧式距离。相似性度量函数

补充:为什么会使用均值作为中心点的选择呢?

这主要是因为目标函数的设置决定的。我们使用误差平方和作为聚类的目标函数,即

equation?tex=SSE

equation?tex=SSE+%3D+%5Csum_%7Bi+%3D+1%7D%5E%7BK%7D%7B%5Csum_%7Bx%5Cin+C_i%7D%7Bdist%28c_i%2C+x%29%7D%7D

这里的

equation?tex=K 表示 <

声明:本文内容由网友自发贡献,转载请注明出处:【wpsshop博客】
推荐阅读
相关标签
  

闽ICP备14008679号