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

时间:2014-06-03 23:26:04

标签: r machine-learning cluster-analysis missing-data

我想在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                                               

如果我能提供更多信息,请告诉我。

3 个答案:

答案 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均值。请参阅AmeliasoftImpute个包。