我有一个关于k均值聚类的问题。我们有一个包含120,000个观测值的数据集,并且需要计算具有R的k均值聚类解。问题是k均值通常使用欧几里得距离。我们的数据集包含3个连续变量,11个序数(Likert 0-5)(我认为可以像连续一样处理它们)和5个二进制变量。对于“大”数据集,您对k均值方法可以使用的距离度量有任何建议吗?我们坚持k均值,所以我真的希望你们中的一个有一个好主意。
干杯
马丁
答案 0 :(得分:0)
一种方法是将特征标准化,然后仅使用11维 欧氏距离。将二进制值强制转换为0/1(好吧,它是R,所以无论如何都要这样做),然后从那里开始。
除了11个维度上的k均值之外,我看不到这种方法有直接的问题,这绝对很难解释。您可以尝试使用降维技术,并希望使k均值输出更易于阅读,但是您对数据集的了解比以往任何时候都多,因此我们为您提供帮助的能力有限。
答案 1 :(得分:0)
您当然也可以将二进制变量编码为0,1。
由于分布不均,不将李克特量表变量视为数字是一种最佳的统计方法。
但我不知道您会得到有意义的k均值聚类。该算法全部与计算 means 有关。这对于连续变量有意义。离散变量通常缺少“分辨率”才能使其正常工作。然后,三个均值会降级为“频率”,然后应对数据进行非常不同的处理。
不要用锤子选择问题。也许您的数据不是钉子;即使您希望使用kmeans做到这一点,它也无法解决您的问题...而是提出问题,然后选择正确的工具。因此,鉴于您的数据,什么是好的集群?除非有一个方程式可以衡量这一点,否则处理数据将无法解决任何问题。
答案 2 :(得分:0)
将变量编码为二进制将无法解决基本问题。相反,它只会帮助增加数据维数,增加负担。统计数据的最佳做法是不将原始数据更改为其他任何形式,例如连续或分类,反之亦然。但是,如果要这样做,即数据转换,那么它必须与要解决的问题保持同步,并且必须提供有效的理由。
如其他人所述,继续尝试首先降低数据集的维数。检查诸如missing values
,outliers
,zero variance
,principal component analysis (continuous variables)
,correspondence analysis (for categorical variables)
等问题。这可以帮助您减小尺寸。毕竟,数据预处理任务构成了分析的80%
。
关于混合数据类型的距离度量,您确实了解mean
中的k
仅对continuous
变量有效。因此,我不理解对于混合数据类型使用算法logic
的{{1}}吗?
考虑选择其他算法,例如k-means
。 k模式是k均值的扩展。它使用距离来代替距离(即,对两个对象之间的总失配进行量化:此数字越小,两个对象越相似)。而不是手段,它使用模式。模式是元素的向量,可以最大程度地减少向量本身与数据的每个对象之间的差异。
答案 3 :(得分:0)
混合物模型可用于对混合数据进行聚类。
您可以使用R包VarSelLCM,该包在每个聚类中通过高斯分布和序数/二元变量对连续变量进行建模。
此外,缺失值可以通过手头的模型进行管理。
可通过以下网址获得教程:http://varsellcm.r-forge.r-project.org/