用R语言实现简单的Kmeans聚类

来源:互联网 发布:淘宝 第一套人民币 编辑:程序博客网 时间:2024/06/01 10:12

最近主要在做针对投资者的统计及聚类分析,希望能找出投资者的一些特征,方便做投资者的精准营销。

首先使用的是SPSS的modeler,毕竟操作可视化,比较简单,就是运行大量数据比较慢,挺费时间。

后来又想用R验证一下聚类的准确性,直接登陆Rstudio,找了kmeans的包,也计算了,发现了SPSS聚类除了没有R计算的效率快,分类也没有R精准,彻底断了我继续使用SPSS的想法,现将R聚类分析过程分享一下,大家一起学习共勉。

原始数据如下:


我需要使用R对这群投资者(约10W)进行聚类分析,代码如下:

library(kernlab)
library(magrittr)
#读取数据
zjd<-read.csv("d:/Rdata/zjd/zjd.csv",header = T,encoding = 'utf8')
zjd[is.na(zjd)]<-0
zjd[] <- lapply(zjd, as.numeric)

#设定聚类数并运行模型
res <- kmeans(zjd,5)
#将结果与原数据拼接
zjd1<-cbind(zjd,res$cluster)
#导出数据
write.csv(zjd1,file = 'd:/Rdata/zjd/zjd1.csv')


这里面还有一个问题,聚类数5是如何确定的?

我是先用SPSS自动聚类之后,挑选轮廓(就是覆盖程度)比较大的模型(就是kmeans),以及分类数(就是5)来作为这次的聚类方向做的。


关于kmeans的用法,我知道有一个指标设置中心的计算方法;

另外针对结果有三个重要指标:

$cluster——聚类结果

$centers——各聚类中心坐标

$size——各聚类数量

就是在结果后面加上指标就行,如我输入res$size,得到100000.


0 0
原创粉丝点击