gpt4 book ai didi

r - K-means 和 Mahalanobis 距离

转载 作者:行者123 更新时间:2023-12-02 05:42:59 25 4
gpt4 key购买 nike

我想在 K-means 算法中使用 Mahalanobis 距离,因为我有 4 个高度相关的变量 (0.85)

在我看来,在这种情况下最好使用马哈拉诺比斯距离。

问题是我不知道如何在 R 中使用 K-means 算法实现它。

我想我需要在聚类步骤之前“伪造”它来转换数据,但我不知道如何。

我尝试了经典的 kmeans,在标准化数据上使用欧几里得距离,但正如我所说,相关性太多。

fit <- kmeans(mydata.standardize, 4)



我也试图找到一个距离参数,但我认为它在 kmeans() 函数中不存在。

预期的结果是一种将 K-means 算法与 Mahalanobis 距离一起应用的方法。

最佳答案

您可以在运行算法之前重新调整数据,
使用方差矩阵的 Cholesky 分解:
变换后的欧几里得距离
是之前的马氏距离。

# Sample data 
n <- 100
k <- 5
x <- matrix( rnorm(k*n), nr=n, nc=k )
x[,1:2] <- x[,1:2] %*% matrix( c(.9,1,1,.9), 2, 2 )
var(x)

# Rescale the data
C <- chol( var(x) )
y <- x %*% solve(C)
var(y) # The identity matrix

kmeans(y, 4)

但这假设所有集群与整个数据具有相同的形状和方向。
如果不是这种情况,您可能需要查看明确允许椭圆簇的模型,
例如,在 mclust 中包裹。

关于r - K-means 和 Mahalanobis 距离,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16274788/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com