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

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

首先使用的是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.


  • 2
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值