我尝试使用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
答案 0 :(得分:3)
浮点运算并不总是100%准确,因为计算机使用有限数量的数字来表示具有无限数字的数字。 1.52655665886e-16
〜machine epsilon由浮点运算引起的相对误差的上限,所以我将其计为0。
编辑: 如果你的矩阵没有不同的特征值,你也可能遇到这个问题。