在执行 k-means 之前,最好的(推荐的)预处理步骤是什么?
k-means 聚类是否需要均值归一化和特征缩放?
如果您的变量具有不可比较的单位(例如,以厘米为单位的身高和以公斤为单位的体重),那么您当然应该标准化变量。即使变量具有相同的单位但显示出完全不同的方差,在 K-means 之前进行标准化仍然是一个好主意。你看,K-means 聚类在空间的所有方向上都是“各向同性的”,因此往往会产生或多或少的圆形(而不是拉长的)聚类。在这种情况下,使方差不相等相当于将更多权重放在方差较小的变量上,因此集群将倾向于沿着方差较大的变量分开。
另一件值得提醒的事情是,K-means 聚类结果可能对数据集中对象的顺序很敏感. 合理的做法是多次运行分析,随机化对象顺序;然后平均这些运行之间的通信/相同集群的集群中心并将中心作为初始中心输入,以进行最后一次分析。
以下是关于在聚类或其他多变量分析中标准化特征问题的一些一般性推理。
具体来说,(1)中心初始化的一些方法对case order很敏感;(2) 即使初始化方法不敏感,结果有时也可能取决于将初始中心引入程序的顺序(特别是,当数据中存在相同距离时);(3) 所谓的 k-means 算法的运行均值版本对案例顺序自然敏感(在此版本中 - 除了可能在线聚类之外不经常使用 - 在每个单独的案例重新分配到之后重新计算质心另一个集群)。
在实践中,来自不同运行的哪些集群对应——通常可以通过它们的相对接近度立即看出。当不容易看到时,可以通过在中心之间进行层次聚类或通过匹配算法(例如匈牙利语)来建立对应关系。但是,要注意的是,如果对应关系如此模糊以至于几乎消失,那么数据要么没有 K-means 可检测到的簇结构,要么 K 非常错误。
我猜取决于你的数据。如果您希望数据中的趋势无论大小都聚集在一起,那么您应该居中。例如。假设您有一些基因表达谱,并且想查看基因表达的趋势,那么如果没有均值居中,那么无论趋势如何,您的低表达基因都会聚集在一起并远离高表达基因。居中使具有相似表达模式的基因(高表达和低表达)聚集在一起。