最近学习李航《统计学习方法》,在github上找到了这本书对应的源码,决定自己跟着敲一敲代码,也感谢代码的贡献者,链接如下:
https://github.com/fengdu78/lihang-codegithub.com第一章有一个关于使用最小二乘法演示过拟合的示列,但最小二乘法的实现直接使用了scipy库中的leastsq,于是自己网上找了关于最小二乘法的矩阵求解,据此进行了简单的代码实现。关于多项式系数的最小二乘法推导如下(线代杀我 ):
实现代码如下:
def leastsq_mutifunc(x, y, m):
"""
多项式最小二乘法实现
:param x:输入
:param y:目标输出
:param m:多项式阶数
:return:多项式系数
"""
x = np.array(x)
y = np.array(y)
assert m <= x.shape[0], f"the number of m({m}) need less than x's size({x.shape[0]})"
assert x.shape[0] == y.shape[0], f"the size of x({x.shape[0]}) must equal to