我正在运行 kmeans 进行市场研究,我有几个问题:
我应该标准化我的数据吗?如果是,如何标准化?例如,我拥有的一个变量是产品需求,它以七分制衡量。另一方面,我也有一个关于年龄的变量,这是一个非常不同的尺度。我应该标准化这些,以及如何标准化?
我可以在 kmeans 中使用分类变量吗?具体来说,我想使用性别和种族。如果可能,我将如何为聚类分析准备这些数据?我想我会给他们分配数字,但是我如何将这些与我的其他数据标准化?
我下载了开源软件Cluster 3.0。这是一个好用的吗?
我正在运行 kmeans 进行市场研究,我有几个问题:
我应该标准化我的数据吗?如果是,如何标准化?例如,我拥有的一个变量是产品需求,它以七分制衡量。另一方面,我也有一个关于年龄的变量,这是一个非常不同的尺度。我应该标准化这些,以及如何标准化?
我可以在 kmeans 中使用分类变量吗?具体来说,我想使用性别和种族。如果可能,我将如何为聚类分析准备这些数据?我想我会给他们分配数字,但是我如何将这些与我的其他数据标准化?
我下载了开源软件Cluster 3.0。这是一个好用的吗?
首先:是的:标准化是必须的,除非你有一个强有力的论据为什么它没有必要。可能先尝试z分数。
离散数据是一个更大的问题。K-means 适用于连续数据。平均值不会是离散的,因此聚类中心很可能是异常的。聚类算法很有可能最终发现数据的离散性,而不是合理的结构。
分类变量更糟。K-means 根本无法处理它们;一种流行的技巧是将它们变成多个二进制变量(男性,女性)。然而,这将以更糟糕的规模暴露上述问题,因为现在它是多个高度相关的二元变量。
由于您显然正在处理调查数据,因此请考虑使用层次聚类。通过适当的距离函数,它可以处理上述所有问题。您只需要花费一些精力来找到一个好的相似性度量。
Cluster 3.0 - 我什至从未见过它。我认为这对于非数据科学人员来说是一个不错的选择。可能类似于其他工具,例如 Matlab。它将缺少所有现代算法,但它可能具有易于使用的用户界面。
第一个:是的,您必须标准化,确切的方法实际上取决于您期望从数据中获得什么,但通常您需要在相同的规模下拥有所有功能。这样做的原因是因为否则具有最高范围的特征将在聚类过程中具有更大的权重。例如,如果您有一个范围为 (0,100) 的要素和另一个范围为 (0,1) 的要素,则最后一个要素对聚类没有影响。由于聚类依赖于距离,因此在计算距离时,您可以看到具有最小范围的特征几乎没有任何贡献。
对于第二个:是的,您可以通过使用二进制表示来使用分类变量。例如,如果您有三种颜色:蓝色、棕色、绿色,并说出其他两个连续变量,例如年龄和体重,那么您将在标准化之前如何表示数据:
blue, brown, green, age, weight
0 , 1 , 0 , 25 , 150
1 , 0 , 0 , 26 , 140
0 , 0 , 1 , 26 , 130
标准化后它应该或多或少像这样
blue, brown, green, age, weight
0 , 1 , 0 , 0.8 , 1
1 , 0 , 0 , 1 , 0.8
0 , 0 , 1 , 1 , 0.6