我想在R中缺少分类和数值的数据集上执行市场细分聚类。由于缺少值,我无法执行k均值聚类。
R版本3.1.0(2014-04-10)
平台:x86_64-apple-darwin13.1.0(64位)
Mac OSX 10.9.3 4GB hardrive
R中是否有可用于支持部分填充率的聚类算法包?在研究缺失值的学术文章时,研究人员为特殊用例创建了一种新算法,并且R中没有包。例如,k-means有软约束,k-means聚类有部分距离策略。
我有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
如果我能提供更多信息,请告诉我。
答案 0 :(得分:1)
k -means算法。有一种 k -means的变种,称为 k - 原型,可以处理混合数据类型。您可以找到有关可以执行此操作的程序包的更多信息here。
对于缺失值,您可以删除这些行(通常不是首选的)或者插入合适的值。通常,对于数值,可以估算平均值,对于分类变量,可以估算模式。或者,对于插补,可以使用标准包,例如鼠标。
价:
Z.Huang(1998):用于分类具有分类变量的大数据集的k-Means算法的扩展,数据挖掘和知识发现2,283-304。
答案 1 :(得分:0)
我建议使用Gower度量标准的层次聚类(HC)。检查空单元替换NA的可能性。
HC可以处理分类和数值。请查看R中的daisy包。
daisy(x, metric ="gower",stand = FALSE, type = list(), weights = rep.int(1, p))
有关详情,请点击此处:https://stat.ethz.ch/R-manual/R-devel/library/cluster/html/daisy.html
答案 2 :(得分:0)
Eduardo的答案的一个变体是使用稀疏矩阵近似来填充丢失的单元格,然后进行聚类。对所有值进行估算后,可以使用分层或k均值。请参阅Amelia或softImpute个包。