我不明白为什么归一化向量的点积始终为数据大小-1。
a <- scale(rnorm(100))
crossprod(a)
# equal = 100 - 1 = 99
b <- scale(runif(50))
crossprod(b)
# equal = 50 - 1 = 49
c <- scale(rchisq(30, 5))
crossprod(c)
# equal = 30 - 1 = 29
我想了解数学知识。
答案 0 :(得分:1)
不在LaTex中,但是证明可以帮助您理解:
您的值按比例缩放,因此:[x_i-mean(X)] / sd(X)。
Crossprod会求出x_i = Sum_i([x_i-mean(X)])^ 2的平方和
方差(sd的平方):var(X)= sd ^ 2(X)= 1 /(n-1)* Sum_i([x_i-mean(X)])^ 2
交叉pros = Sum_i([x_i-mean(X)] / sd(X))^ 2)= 1 / sd(X)^ 2 * Sum_i([x_i-mean(X)] ^ 2)= 1 / (1 /(n-1))= n-1