主成分分析 - 为什么特征向量'点积不是零?

时间:2017-09-16 15:32:27

标签: python scikit-learn pca eigenvector orthogonal

我尝试使用Python sklearn对breast_canser数据集进行主成分分析。 并且无法理解为什么两个特征向量的点积(3个分量)都不是零?

frst = pca.components_[0,:]
scnd = pca.components_[1,:]
thrd = pca.components_[2,:]
orth1 = np.dot(frst,scnd)
orth2 = np.dot(scnd, thrd)
print(orth1.real)
print(orth2.real)

出:

0.0

1.52655665886e-16

1 个答案:

答案 0 :(得分:3)

浮点运算并不总是100%准确,因为计算机使用有限数量的数字来表示具有无限数字的数字。 1.52655665886e-16machine epsilon由浮点运算引起的相对误差的上限,所以我将其计为0。

编辑: 如果你的矩阵没有不同的特征值,你也可能遇到这个问题。