为什么混合数据是基于欧几里得的聚类算法的问题?

机器算法验证 聚类 降维 距离 自组织图 混合类型数据
2022-01-31 20:52:03

大多数经典的聚类和降维算法(层次聚类、主成分分析、k-means、自组织图......)都是专门为数值数据设计的,它们的输入数据被视为欧几里得空间中的点。

这当然是一个问题,因为许多现实世界的问题涉及混合数据:例如,如果我们研究公共汽车,高度和长度以及电机尺寸将是数字,但我们也可能对颜色感兴趣(分类变量:蓝色/red/green...)和容量等级(有序变量:小/中/大容量)。具体来说,我们可能希望同时研究这些不同类型的变量。

有许多方法可以将经典聚类算法扩展到混合数据,例如使用 Gower 相异性插入层次聚类或多维缩放,或其他将距离矩阵作为输入的方法。或者例如这种方法,SOM 对混合数据的扩展。

我的问题是:为什么我们不能只对混合变量使用欧几里得距离?或者为什么这样做不好?为什么我们不能对分类变量进行虚拟编码,对所有变量进行归一化,使它们在观察之间的距离上具有相似的权重,并在这些矩阵上运行通常的算法?

这真的很容易,而且从来没有做过,所以我想这是非常错误的,但谁能告诉我为什么?和/或给我一些参考?谢谢

4个回答

这不是不能计算某些东西

距离多用来衡量一些有意义的事情。对于分类数据,这会更早地失败。如果它曾经与多个变量一起工作,那就是......

如果您具有鞋码和体重属性,那么欧几里德距离也没有多大意义。当 x,y,z 是距离时很好。那么欧几里得距离就是点之间的视线距离。

现在,如果你对变量进行虚拟编码,这意味着什么?

另外,当您的数据是离散的时,欧几里得距离没有意义。

如果只存在整数 x 和 y 值,欧几里得距离仍然会产生非整数距离。它们不会映射回数据。同样,对于虚拟编码变量,距离不会映射回一定数量的虚拟变量......

然后,当您计划使用例如 k-means 聚类时,它不仅仅是关于距离,而是关于计算平均值但是虚拟编码变量没有合理的平均值,是吗?

最后,还有维度的诅咒众所周知,当您增加变量数量时,欧几里得距离会降低。添加虚拟编码变量意味着您会很快失去距离对比度。一切都和其他一切一样,因为一个虚拟变量可以使一切变得不同。

这些基于度量的聚类问题的核心是插值的思想。

采用您刚才引用的任何方法,让我们考虑一个连续变量,例如权重。你有 100 公斤,你的数据中有 10 公斤。当您看到新的 99 公斤时,该指标将使您接近 100 公斤——即使您从未见过它。不幸的是,不存在离散数据的插值。

这个问题的另一个论点是没有自然的方法可以做到这一点。您想在 R 中分配 3 个值并使它们在每对之间的距离相等,这是不可能的。如果您将它们分配到不同的类别并运行假设是 PCA,那么您会丢失它们实际上反映同一类别的信息。

无序分类值的一个问题是,如果您对它们进行虚拟编码,则会强制进行排序,从而对变量赋予新的含义。例如,如果您将蓝色编码为 1,橙色编码为 2,绿色编码为 3,那么您暗示橙色值的数据模式比蓝色值的数据模式更接近绿色值的模式。

处理此问题的一种方法是使它们成为新功能(列)。对于每个不同的值,您创建一个新的二进制特征并将其设置为真/假(换句话说,二进制编码值并使每一位成为一列)。对于这组新特征中的每个数据模式,只有一个特征的值为 1,所有其他特征的值为 0。但这通常不会阻止训练算法将接近 1 的质心值分配给多个特征。这当然可能会导致解释问题,因为这在数据域中没有意义。

对于“容量类别”即有序类别,您没有相同的问题,因为在这种情况下,数值分配是有意义的。

当然,如果您使用不同性质或测量单位或不同值范围的特征,那么您应该始终对值进行标准化。

https://stackoverflow.com/questions/19507928/growth-self-organizing-map-for-mixed-type-data/19511894#19511894

https://stackoverflow.com/questions/13687256/is-it-right-to-normalize-data-and-or-weight-vectors-in-a-som/13693409#13693409

答案其实很简单,我们只需要了解虚拟变量中的信息到底是什么。虚拟变量的概念表示存在或不存在因子水平(分类变量的离散值)。它旨在通过存储有关它是否存在的信息来表示不可测量、不可量化的事物。这就是为什么虚拟变量用二进制数字表示的原因,与它所代表的分类变量的离散值一样多(或负 1)。

将因子水平表示为 0/1 值仅在分析方程中才有意义,例如线性模型(对于那些可以解释统计模型系数的人来说,这是一个简单的概念)。在虚拟变量中,底层分类变量的信息按位顺序存储。当使用这些位作为维度将输入样本映射到特征空间时(如相似度/距离矩阵的情况),位顺序的信息完全丢失。