有3个变量是x,z = 1-(x + y)。 (x> = 0,y> = 0,z> = 0)
数据如下。
O(1)=(x1,y1,z1)
O(2)=(x2,y2,z2)
...
O(n)=(xn,yn,zn)
我认为没有必要表达每个观察结果,因为z由x和y决定。
所以,我用x和y对这些数据进行了聚类。 并且也用x,y和z聚类相同的数据。
结果不同。 因为2D和3D中的距离不相等。 (它改变了。)
(是的,当然,距离2D和3D不相等。)
但是,在这种情况下,聚类的正确方法是什么?
我必须使用x和y吗?或者,我必须使用x,y和z吗?为什么?
请有人帮助我。提前谢谢!
以下是R代码。
############
x <- sample(c(0:100), 100, replace = T)
y <- sample(c(0:100), 100, replace = T)
z <- 200 - (x+y)
xyz <- cbind(x,y,z)
xyz <- xyz/200 # z=1-(x+y)
xy <- zyz[,-3]
require(fpc)
(xy.pamk <- pamk(xy))
plot(xy,col=xy.pamk$pamobject$clustering)
(xyz.pamk <- pamk(xyz))
require(rgl)
plot3d(xyz,col=xyz.pamk$pamobject$clustering,xlim=c(0,1), ylim=c(0,1), zlim=c(0,1))
##############
答案 0 :(得分:0)
你的理论认为你不需要z,因为它可以从x和y计算出来是有缺陷的。
如果是这样,那么x,y和x,z和y,z都会得到相同的结果。
但算法不假设x + y + z = 1。他们不会假设x*x+y*y+z*z=1
或其他功能依赖。