美文网首页
聚类分析及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