美文网首页
聚类分析

聚类分析

作者: 巴拉巴拉_9515 | 来源:发表于2017-07-03 08:56 被阅读0次
    文森特·梵高 :粉红色的桃花树

    01、聚类分析

    在没有先验知识的情况下,对样本按各自的特性来进行合理的分类
    聚类分析:不需要先知道所属类别就可以实现按各自特性的分类

    聚类分析有两种主要计算方法,分别是凝聚层次聚类(Agglomerative hierarchical method)和K均值聚类(K-Means)
    (1)层次聚类首先要定义样本之间的距离关系,距离较近的归为一类,较远的则属于不同的类。
    (2)K均值聚类不需要计算距离,但要求事先给出分类个数

    02、iris聚类分析

    2.1、层次聚类

    ris数据集包含5个方面的信息,为了探索聚类分析,所以采用前4个变量作为模型前期数据,使用species作为聚类模型结果的验证。

    数据集

    (1)首先提取iris数据中的4个数值变量,然后计算其欧氏距离矩阵。
    (2)然后将矩阵绘制热图,从图中可以看到颜色越深表示样本间距离越近·
    从图中可以看到颜色越深表示样本间距离越近。大致上可以区分出三到四个区块,其样本之间比较接近。

    热力图
    data<-iris[,-5]  #删除第五行
    dist.e <- dist(data,method='euclidean')  #变量间欧式距离的数据集
    heatmap(as.matrix(dist.e),labRow = F, labCol = F)
    

    使用hclust完成数据集的层次聚类,plot函数可以查看聚类结果
    使用cutree函数提取每个样本所属的类别

    #--------------------------------------------->2、层次聚类模型
    #建立聚类模型
    model1<-hclust(dist.e,method='ward.D') #采用离差平方和法处理距离
    plot(model1) #绘制聚类树图:没什么用的结果
    result<-cutree(model1,k=3) #使用cutree函数提取每个样本所属的类别
    

    到此就完成了150个数据的类别划分

    层次聚类结果

    可视化展现层次聚类结果
    setose品种聚类很成功,但有一些virginica品种的花被错误和virginica品种聚类到一起

    #------------------------------------------------->3、层次聚类结果展示
    #----------------------------------------------------->3.1、MDS降维
    mds<-cmdscale(dist.e,k=2,eig=T)
    x <- mds$points[,1]
    y <- mds$points[,2]
    #----------------------------------------------------->3.2、聚类结果显示
    #以不同的的形状表示原本的分类,用不同的颜色来表示聚类的结果
    library(ggplot2)
    p<-ggplot(data.frame(x,y),aes(x,y))
    p+geom_point(size=3,alpha=0.8,aes(colour=factor(result),shape=iris$Species))
    #setose品种聚类很成功,但有一些virginica品种的花被错误和virginica品种聚类到一起
    
    层次聚类结果

    2.2、K均值聚类

    使用kmeans函数进行K均值聚类

    model2<-kmeans(data,centers=3,nstart=10)
    model2$cluster    #model2$cluster可以用来提取每个样本所属的类别
    data$type<-model2$cluster
    data$id<-rownames(data)
    

    centers参数用来设置分类个数,
    nstart参数用来设置取随机初始中心的次数,其默认值为1,但取较多的次数可以改善聚类效果
    K均值聚类后,数据集的结果为:

    K均值聚类

    如果聚类正确的话,圆形点对应红色;三角形对应蓝色;方框对应绿色
    K均值聚类setose品种聚类比较好,但有一些virginica品种的花被错误和virginica品种聚类到一起

    K均值聚类结果

    相关文章

      网友评论

          本文标题:聚类分析

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