嗨,我正在为类编写一些代码,这是线性回归的代码。
您可以在代码中看到的数据,手动计算得出的值为 a=1.7 和 b=1.6。
我尝试将公式的不同部分分成不同的变量,但答案保持不变 (1.6999999999999993)。
import numpy as np
x=np.array([2,3,5,6])
y=np.array([4.5,7.2,9.2,11.5])
b=(np.sum((y-np.mean(y))*x))/(np.sum((x-np.mean(x))*x))
a=np.mean(y)-(b*(np.mean(x)))
print(a)
print(b)
预期结果为 a=1.7 和 b=1.6,但输出为 a=1.6999999999999993。
最佳答案
这是因为你使用的是float
数字,二进制 float 学是这样的。在大多数编程语言中,它基于 IEEE 754 standard .
关于python - 为什么结果应该是整数,却是循环数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56307591/