聚类分析及R使用Part3-快速聚类法

2022-12-27  本文已影响0人  3between7

系统聚类法受方法限制不适合应用于量较大的数据,而现在我们实际分析的数据往往都是大数据,这一节讲的快速聚类法kmeans则是可应用于大数据的一种聚类方法。

算法原理

kmeans法是一种快速聚类法,这种算法的基本思想是将每一个样品分配给最近中心 (均值)的类中。知乎上一篇文章讲kmeans算法很清楚:

  • 假定我们要对N个样本观测做聚类,要求聚为K类,首先选择K个点作为初始中心点;
  • 接下来,按照距离(距离其实指的就是相似度)初始中心点最小的原则,把所有观测分到各中心点所在的类中;
  • 每类中有若干个观测,计算K个类中所有样本点的均值,作为第二次迭代的K个中心点;
  • 然后根据这个中心重复第2、3步,直到收敛(中心点不再改变或达到指定的迭代次数),聚类过程结束。

至于kmeans的数学描述这篇文章讲的也很清楚,感兴趣的可以去读读,我这篇笔记就不多说了。

R语言使用与举例

R中,使用函数kmeans()进行快速聚类:

kmeans(x,centers,...)

  • x 为数据矩阵或数据框;
  • centers为聚类数或初始聚类中心。

举例说明

> set.seed(123)
> x1 <- matrix(rnorm(1000,0,0.3),ncol=10) #均值0,标准差为0.3的100*10正态随机矩阵
> x2 <- matrix(rnorm(1000,1,0.3),ncol=10) #均值1,标准差为0.3的100*10正态随机矩阵
> X <- rbind(x1,x2) #形成200*10的随机矩阵
> km <- kmeans(X,2)
> plot(X,pch=km$cluster)
kmeans_plot.png

聚类分析的一些问题

上一篇 下一篇

猜你喜欢

热点阅读