博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Linear Regression及各种线型回归在正则化中的应用
阅读量:4067 次
发布时间:2019-05-25

本文共 1193 字,大约阅读时间需要 3 分钟。

Linear Regression

线性回归:

from sklearn.linear_model import LinearRegressionlr = LinearRegression(fit_intercept=True)lr.fit(x, y)p = map(lr.predict, x)e = p - ytotal_error = np.sum(e*e)rmse_train = np.sqrt(total_error / len(p))

交叉验证:

from sklearn.cross_validation import Kfoldkf = Kfold(len(x), n_folds=10)err = 0for train, test in kf:    lr.fit(x[train], y[train])    p = map(lr.predict, x[test])    e = p - y[test]    err += np.sum(e*e)rmse_10cv = np.sqrt(err/len(x))

普通的最小二乘法学习时间非常短:

  • 小模型快速实现
  • 学习曲线、误差分析、上限分析

假设以平方差为损失函数,则优化目标为:

minwi=1m(yiwTxi)2 m i n w ∑ i = 1 m ( y i − w T x i ) 2

惩罚式回归

Lasso法

L1惩罚:通过系数的绝对值之和对回归进行惩罚。

minwi=1m(yiwTxi)2+λ||w||1 m i n w ∑ i = 1 m ( y i − w T x i ) 2 + λ | | w | | 1

岭(ridge)回归

L2惩罚:通过系数的平方和对回归进行惩罚。

minwi=1m(yiwTxi)2+λ||w||22 m i n w ∑ i = 1 m ( y i − w T x i ) 2 + λ | | w | | 2 2


L1范数和L2范数都有助于降低过拟合风险,但前者还会代来一个额外的好处:它比厚泽更易获得“稀疏”(sparse)解,即它求得的w会有更少的非零向量。

这里写图片描述

弹性网络(elastic net)

有两个惩罚项,结合了L1惩罚和L2惩罚。

minwi=1m(yiwTxi)2+λ1||w||1+λ2||w||22 m i n w ∑ i = 1 m ( y i − w T x i ) 2 + λ 1 | | w | | 1 + λ 2 | | w | | 2 2

from sklearn.linear_model import ElasticNeten = ElasticNet(fit_intercept=True, alpha=0.5)

《Building Machine Learning Systems with Python》 P113

你可能感兴趣的文章
Eclipse 关闭 updating indexes
查看>>
windows 添加制定路由通过制定网关出去
查看>>
maven下搭建struts2
查看>>
maven下搭建hibernate体验
查看>>
maven 下搭建spring
查看>>
maven下搭建注解形式的Spring aop
查看>>
SSH性能优化 转
查看>>
spring 事务
查看>>
Linux web工程部署远程必备软件安装
查看>>
Windows 7下硬盘安装CentOS6.4的解决方法
查看>>
JSP不支持EL表达式的解决方案
查看>>
Struts2类型转换器
查看>>
struts2 使用注解、反射、拦截器实现基于方法的权限控制
查看>>
maven 架设 struts2 注解方式 权限控制
查看>>
struts2之多个文件上传
查看>>
struts2之单个文件上传
查看>>
struts2自定义拦截器 模拟session超时的处理
查看>>
面试技巧
查看>>
struts2之防止表单重复提交
查看>>
人不成熟的几大特征
查看>>