• R语言中的划分聚类模型


    原文链接:http://tecdat.cn/?p=6443

    划分聚类 是用于基于数据集的相似性将数据集分类为多个组的聚类方法。

    分区聚类,包括:

    • K均值聚类 (MacQueen 1967),其中每个聚类由属于聚类的数据点的中心或平均值表示。K-means方法对异常数据点和异常值敏感。
    • K-medoids聚类PAMPartitioning Around Medoids,Kaufman和Rousseeuw,1990),其中,每个聚类由聚类中的一个对象表示。与k-means相比,PAM对异常值不太敏感。
    • CLARA算法Clustering Large Applications),它是适用于大型数据集的PAM的扩展。

    对于这些方法中的每一种,我们提供:

    • 基本思想和关键数学概念
    • R软件中的聚类算法和实现
    • R用于聚类分析和可视化的示例

    数据准备:

    my_data <- USArrests
    # Remove any missing value (i.e, NA values for not available)
    my_data <- na.omit(my_data)
    # Scale variables
    my_data <- scale(my_data)
    # View the firt 3 rows
    head(my_data, n = 3)
    ##         Murder Assault UrbanPop     Rape
    ## Alabama 1.2426   0.783   -0.521 -0.00342
    ## Alaska  0.5079   1.107   -1.212  2.48420
    ## Arizona 0.0716   1.479    0.999  1.04288

    确定k-means聚类的最佳聚类数:

    fviz_nbclust(my_data, kmeans,
                 method = "gap_stat")
    ## Clustering k = 1,2,..., K.max (= 10): .. done
    ## Bootstrapping, b = 1,2,..., B (= 100)  [one "." per sample]:
    ## .................................................. 50 
    ## .................................................. 100

    计算和可视化k均值聚类:

    fviz_cluster(km.res, data = my_data, 
                 ellipse.type = "convex",
                 palette = "jco",
                 repel = TRUE,
                 ggtheme = theme_minimal())

    同样,可以如下计算和可视化PAM聚类:

    pam.res <- pam(my_data, 4)
    # Visualize
    fviz_cluster(pam.res)

    如果您有任何疑问,请在下面发表评论。  

  • 相关阅读:
    Vjios P1736 铺地毯【暴力,思维】
    Vijos P1116 一元三次方程求解【多解,暴力,二分】
    Vijos P1131 最小公倍数和最大公约数问题【暴力】
    Vijos P1786 质因数分解【暴力】
    C++课程设计类作业4
    析构函数的用法【简单理论讲解】
    C++课程设计类作业3
    最短路径Floyd算法【图文详解】
    HDU 1874 畅通工程续【Floyd算法实现】
    C++课程设计类作业2
  • 原文地址:https://www.cnblogs.com/tecdat/p/11493049.html
Copyright © 2020-2023  润新知