分享

R语言实战技能(一)—— 聚类分析

 萌小芊 2017-12-28


摘要

聚类是数据分析时常用的数据探索方法,与分类不同,聚类分析是一种无监督学习过程,其分析结果可以提供多个解,选择最终的解需要研究者的主观判断和后续的分析。实现聚类的方法有很多,本文将着重探讨其中一种重要的聚类方法——K均值聚类。




正文

聚类分析指将物理或抽象对象的集合分组为由类似的对象组成的多个类的分析过程,其特点是简单直观,不管实际数据中是否真正存在不同的类别,利用聚类分析都能得到分成若干类别的解。聚类方法也包括层次聚类和非层次聚类,本文介绍的K均值聚类即是非层次聚类的方法之一。K均值聚类适用于连续型变量,算法快速、简单,对大数据集有较高的效率并且是可伸缩性的,并且通常要求已知的类别数。本文以R语言中USArrests数据为例进行演示,展示了较全面的K均值聚类的实际应用。




01.数据读入




data('USArrests')

str(USArrests)

clean_data<-na.omit(usarrests)>




02.利用factoextra包的fviz_nbclust() 函数寻找最佳的聚类数




clean_data<>

fviz_nbclust(clean_data,kmeans,method='wss')+geom_vline(xintercept=4,linetype=2)#寻找最佳聚类数

psmethod:Possible values are 'silhouette' (for average silhouette width), 'wss' (for total within sum of square) and 'gap_stat' (for gap statistics).



从图中可以看到聚类结果在四类前后变化很大了,因此可以选择聚成四类




03.进行聚类分析




km.res<>



4类的聚类中心如下




04.结果展示




用不同的颜色展示四个聚类结果

fviz_cluster(km.res,data=clean_data)

fviz_cluster(km.res,data=clean_data,frame.type='t')


    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多