1. 首页
  2. 问答社区

问答社区

如何实现同时含有分类变量和数值变量的聚类?

xsmile 发布于 2个月前 分类:统计学

使用Gower方法来计算距离,在R里可以用cluster包的daisy函数来实现,要设定metric = gower",不过如果你的输入里面含有非数值,那么会自动使用gower。

最快速的聚类k-means只能处理数值型变量,其衍生算法k-modes只能处理分类变量;两种算法的结合k-prototype能够处理混合数据。R中我暂时没有找到相对应的package,但该算法思想不是特别难:两点间的距离被定义为dist = d1 + w * d2,d1是用k-means求得的连续型变量的距离,d2是k-modes求得的分类变量间的差异,w为权重。可以试着自己查资料编程看看。

如果想要直接上手用,我找到个clustMD包里的clustMD()函数,可以同时处理分类和数值变量,似乎是一种基于高斯模型的算法,这里贴一个官方guide和相关paper供参考
cran.r-project.org/web/
arxiv.org/pdf/1511.0172

0个回复

  • 暂无回复
Bookmark(0)

No account yet? Register

联系我们

在线咨询:点击这里给我发消息

邮件:23683716@qq.com

跳至工具栏