我有相当大的数据(1140万条记录和9个变量)。变量由序数,名义和连续数据类型组成。因此,我选择Gower方法来计算用于处理混合数据类型的相异矩阵。但是,数据的大小太大而无法计算。然后我找到另一个有趣的方法叫做CLARA,它使用样本来计算聚类,然后将聚类分配给其他数据点。问题是我找不到合适的度量来计算混合数据类型的距离。换句话说,clara in cluster package
和clara_medoids in ClusterR package
中都没有Gower选项(这是我在R中可以找到的clara)。
为什么CLARA没有gower选项? 我该怎么办?
答案 0 :(得分:0)
CLARA在Kaufman和Rousseeuw(1990)中有描述。
该算法的特点是它可以处理更大的数据集,因为它在内存和计算要求方面具有线性复杂性。
Gower距离计算相异矩阵,其内存复杂度为指数O(n ^ 2),这意味着您将获得1140万行和1140万列的矩阵。显然不可行。
如果你想使用gower的距离,你应该尝试使用较小的子样本并使用自下而上的聚类方法。
答案 1 :(得分:0)
获取CLARA的源代码。
修改它,然后添加Gower距离。
由于Gower使用一些与数据相关的归一化因子(并且您无法预先计算距离矩阵),因此您需要将其直接集成到CLARA中。
运行修改后的CLARA。
将您的源代码公开作为开源提供,以便其他人不必这样做。它还可以在将来更容易扩展CLARA以及更远距离的功能。