美文网首页
聚类分析及R使用Part3-快速聚类法

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

作者: 3between7 | 来源:发表于2022-12-27 15:47 被阅读0次

系统聚类法受方法限制不适合应用于量较大的数据,而现在我们实际分析的数据往往都是大数据,这一节讲的快速聚类法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

聚类分析的一些问题

  • 系统聚类分析的特点:综合性、形象性、客观性
  • 关于kmeans算法:kmeans算法只有在类的均值被定义的情况下才能使用对于“噪声”和孤立点是敏感的,这种数据对均值影响极大。
  • 关于变量变换
    有时候原始数据不适合直接进行聚类,可以把变量变换一下再做分析,如:
    • 平移变换:x-\overline x
    • 极差变换:max(x)-min(x)
    • 标准差变换:\frac{x-\overline x}{s}
    • 主成分变换
    • 对数变换(适用于极差大时)

相关文章

网友评论

      本文标题:聚类分析及R使用Part3-快速聚类法

      本文链接:https://www.haomeiwen.com/subject/erunqdtx.html