为什么归一化向量的点积总是数据大小-1
why dot product of normalized vector is always data size -1
我不明白为什么归一化向量的点积总是数据大小-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
我想知道数学理解。
不是在 LaTex 中,但证明可以帮助您理解:
您的值已缩放,因此:[x_i-mean(X)] / sd(X)。
Crossprod 计算 x_i = Sum_i ( [x_i-mean(X)])^2
的平方和
方差(平方标准差):var(X) = sd^2(X) = 1/(n-1) * Sum_i ( [x_i-mean(X)])^2
叉积 = 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
我不明白为什么归一化向量的点积总是数据大小-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
我想知道数学理解。
不是在 LaTex 中,但证明可以帮助您理解:
您的值已缩放,因此:[x_i-mean(X)] / sd(X)。
Crossprod 计算 x_i = Sum_i ( [x_i-mean(X)])^2
的平方和方差(平方标准差):var(X) = sd^2(X) = 1/(n-1) * Sum_i ( [x_i-mean(X)])^2
叉积 = 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