|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
本帖最后由 H.E.G. 于 2021-8-5 22:25 编辑
每月一问~
在下面的代码中,函数能够计算出一次回归参数
但计算是,会有一些难以避免的误差
那么,如何尽可能把误差减到最小?(顺便改进一下代码)
- class LenError(TypeError):
- pass
- def linear_regression(x=[], y=[]):
- if len(x) != len(y):
- raise LenError('len x is not equal to len y!')
- Sx = sum(x)
- Sy = sum(y)
- Sxy = sum([x[i] * y[i] for i in range(len(x))])
- n = len(x)
- x_ = Sx / n
- y_ = Sy / n
- Lxy = Sxy - n * x_ * y_
- Lxx = sum([x[i] ** 2 for i in range(len(x))]) - n * x_ ** 2
- b_ = Lxy / Lxx
- a_ = y_ - b_ * x_
- return (b_, a_)
复制代码
|
|