基于线性回归与核函数——linear function & basis function 的代码,处理马拉松数据

首先,线性规划,比较简单,对误差方程 Ex = (y-mx-c)^2 分别求偏导,再令偏导等于0 一步一步的求出m和c。 令偏导等于0的原因是为了寻找极致点,我们假设每次迭代的都是极值点,而极值点的特点是导数为0。


python代码表示就是:

for i in np.arange(1000000):
    m = ((y - c)*x).sum()/(x*x).sum()
    c = (y-m*x).sum()/y.shape[0]

数据是老师给的,mc要提前赋值(找个差不多像的随机值,不然要迭代好多次)

这样迭代下来的结果就是:



很明显,这些观测数据点是近似线性的,但是用线性规划不足以使误差达到很小的状态,所以现在的做法就是提高维度,用多个基础方程的形式表现,拟合出一个高维的空间模型,而这个模型我们用向量来表示,所以参数形式上还是线性的。



现在可以用代码生成一个多项式的方程:

def polynomial(x, degree, loc, scale):
    degrees = np.arange(degree+1
    Phi = ((x-loc)/scale)**degrees
	return Phi
这个东西算出来的返回值是:


这个形式的。

按照最小二乘法找误差:

E(w)=(yX

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值