R中用于处理缺失分类和数值数据的聚类算法

9

我想在一个有遗漏的分类和数值数据集上执行市场分割聚类, 使用R语言进行计算。由于存在缺失值,无法使用K-means聚类算法。请问是否有针对部分填充数据的聚类算法包可以供R语言使用?通过查看学术论文中介绍的缺失值处理方法,研究人员为特殊用例设计了新算法,但这些包不在R软件中提供。例如,具有软约束的K-means算法以及采用部分距离策略的K-means聚类算法。

我的R语言版本是3.1.0 (2014-04-10),操作系统环境为x86_64-apple-darwin13.1.0 (64-bit),电脑配置为Mac OSX 10.9.3,硬盘空间为4GB。

我共有36个变量,以下是前5个变量的描述:

head(df)

  user_id    Age   Gender Household.Income Marital.Status
1   12945           Male                                
2   12947           Male                                
3   12990                                                  
4   13160   25-34   Male   100k-125k         Single
5   13195           Male    75k-100k         Single
6   13286                                               

如果还需要更多的信息,请告诉我。


@EDi,在传统聚类方法之前,基于矩阵的方法存在可扩展性问题。我收到了一个关于无法分配特定大小向量的错误。 - Scott Davis
3个回答

2
-means算法通常不适用于存在分类变量的情况。有一种k-means的变体,称为k-prototypes,可以处理混合数据类型。您可以在此处找到更多有关可执行此操作的软件包的信息:here
对于缺失值,您可以删除这些行(通常不建议)或填充适当的值。通常情况下,对于数值,可以填充平均值;对于分类变量,可以填充众数。或者,可以使用标准软件包(例如mice)进行填充。
参考文献:
Z.Huang(1998):针对具有分类变量的大型数据集的k-Means算法扩展,Data Mining and Knowledge Discovery 2,283-304。

0

0
Eduardo的一个变体是使用稀疏矩阵逼近来填充缺失的单元格,然后进行聚类。一旦您获得了所有值的估计,您可以使用层次聚类或k-means。请参见AmeliasoftImpute软件包。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接