git:https://github.com/linyi0604/MachineLearning

正则化:
提高模型在未知数据上的泛化能力
避免参数过拟合
正则化常用的方法:
在目标函数上增加对参数的惩罚项
削减某一参数对结果的影响力度 L1正则化:lasso
在线性回归的目标函数后面加上L1范数向量惩罚项。 f = w * x^n + b + k * ||w||1 x为输入的样本特征
w为学习到的每个特征的参数
n为次数
b为偏置、截距
||w||1 为 特征参数的L1范数,作为惩罚向量
k 为惩罚的力度 L2范数正则化:ridge
在线性回归的目标函数后面加上L2范数向量惩罚项。 f = w * x^n + b + k * ||w||2 x为输入的样本特征
w为学习到的每个特征的参数
n为次数
b为偏置、截距
||w||2 为 特征参数的L2范数,作为惩罚向量
k 为惩罚的力度 下面模拟 根据蛋糕的直径大小 预测蛋糕价格
采用了4次线性模型,是一个过拟合的模型
分别使用两个正则化方法 进行学习和预测
 from sklearn.linear_model import LinearRegression, Lasso, Ridge
# 导入多项式特征生成器
from sklearn.preprocessing import PolynomialFeatures '''
正则化:
提高模型在未知数据上的泛化能力
避免参数过拟合
正则化常用的方法:
在目标函数上增加对参数的惩罚项
削减某一参数对结果的影响力度 L1正则化:lasso
在线性回归的目标函数后面加上L1范数向量惩罚项。 f = w * x^n + b + k * ||w||1 x为输入的样本特征
w为学习到的每个特征的参数
n为次数
b为偏置、截距
||w||1 为 特征参数的L1范数,作为惩罚向量
k 为惩罚的力度 L2范数正则化:ridge
在线性回归的目标函数后面加上L2范数向量惩罚项。 f = w * x^n + b + k * ||w||2 x为输入的样本特征
w为学习到的每个特征的参数
n为次数
b为偏置、截距
||w||2 为 特征参数的L2范数,作为惩罚向量
k 为惩罚的力度 下面模拟 根据蛋糕的直径大小 预测蛋糕价格
采用了4次线性模型,是一个过拟合的模型
分别使用两个正则化方法 进行学习和预测 ''' # 样本的训练数据,特征和目标值
x_train = [[6], [8], [10], [14], [18]]
y_train = [[7], [9], [13], [17.5], [18]]
# 准备测试数据
x_test = [[6], [8], [11], [16]]
y_test = [[8], [12], [15], [18]]
# 进行四次线性回归模型拟合
poly4 = PolynomialFeatures(degree=4) # 4次多项式特征生成器
x_train_poly4 = poly4.fit_transform(x_train)
# 建立模型预测
regressor_poly4 = LinearRegression()
regressor_poly4.fit(x_train_poly4, y_train)
x_test_poly4 = poly4.transform(x_test)
print("四次线性模型预测得分:", regressor_poly4.score(x_test_poly4, y_test)) # 0.8095880795746723 # 采用L1范数正则化线性模型进行学习和预测
lasso_poly4 = Lasso()
lasso_poly4.fit(x_train_poly4, y_train)
print("L1正则化的预测得分为:", lasso_poly4.score(x_test_poly4, y_test)) # 0.8388926873604382 # 采用L2范数正则化线性模型进行学习和预测
ridge_poly4 = Ridge()
ridge_poly4.fit(x_train_poly4, y_train)
print("L2正则化的预测得分为:", ridge_poly4.score(x_test_poly4, y_test)) # 0.8374201759366456

通过比较 经过正则化的模型 泛化能力明显的更好啦

机器学习之路: python线性回归 过拟合 L1与L2正则化的更多相关文章

  1. 机器学习(二十三)— L0、L1、L2正则化区别

    1.概念  L0正则化的值是模型参数中非零参数的个数. L1正则化表示各个参数绝对值之和. L2正则化标识各个参数的平方的和的开方值. 2.问题  1)实现参数的稀疏有什么好处吗? 一个好处是可以简化 ...

  2. 机器学习之路: python 线性回归LinearRegression, 随机参数回归SGDRegressor 预测波士顿房价

    python3学习使用api 线性回归,和 随机参数回归 git: https://github.com/linyi0604/MachineLearning from sklearn.datasets ...

  3. Spark2.0机器学习系列之12: 线性回归及L1、L2正则化区别与稀疏解

    概述 线性回归拟合一个因变量与一个自变量之间的线性关系y=f(x).       Spark中实现了:       (1)普通最小二乘法       (2)岭回归(L2正规化)       (3)La ...

  4. 机器学习中的L1、L2正则化

    目录 1. 什么是正则化?正则化有什么作用? 1.1 什么是正则化? 1.2 正则化有什么作用? 2. L1,L2正则化? 2.1 L1.L2范数 2.2 监督学习中的L1.L2正则化 3. L1.L ...

  5. 4.机器学习——统计学习三要素与最大似然估计、最大后验概率估计及L1、L2正则化

    1.前言 之前我一直对于“最大似然估计”犯迷糊,今天在看了陶轻松.忆臻.nebulaf91等人的博客以及李航老师的<统计学习方法>后,豁然开朗,于是在此记下一些心得体会. “最大似然估计” ...

  6. L1与L2正则化的对比及多角度阐述为什么正则化可以解决过拟合问题

    正则化是一种回归的形式,它将系数估计(coefficient estimate)朝零的方向进行约束.调整或缩小.也就是说,正则化可以在学习过程中降低模型复杂度和不稳定程度,从而避免过拟合的危险. 一. ...

  7. 深入理解L1、L2正则化

    过节福利,我们来深入理解下L1与L2正则化. 1 正则化的概念 正则化(Regularization) 是机器学习中对原始损失函数引入额外信息,以便防止过拟合和提高模型泛化性能的一类方法的统称.也就是 ...

  8. day-17 L1和L2正则化的tensorflow示例

    机器学习中几乎都可以看到损失函数后面会添加一个额外项,常用的额外项一般有两种,一般英文称作ℓ1-norm和ℓ2-norm,中文称作L1正则化和L2正则化,或者L1范数和L2范数.L2范数也被称为权重衰 ...

  9. L1与L2正则化

    目录 过拟合 结构风险最小化原理 正则化 L2正则化 L1正则化 L1与L2正则化 参考链接 过拟合 机器学习中,如果参数过多.模型过于复杂,容易造成过拟合. 结构风险最小化原理 在经验风险最小化(训 ...

随机推荐

  1. QByteArray储存二进制数据(包括结构体,自定义QT对象)

    因为利用QByteArray可以很方便的利用其API对内存数据进行访问和修改, 构建数据库blob字段时必不可少; 那如何向blob内写入自定义的结构体和类 //自定义person结构体 typede ...

  2. Oracle Certified Java Programmer 经典题目分析(一)

    Given: 1. public class returnIt { 2. returnType methodA(byte x, double y){ 3. return (short) x/y * 2 ...

  3. Shell-脚本只能运行1次

    用空文件进行判断 path=`pwd` if [ -f ${path}/.runned ]; then { echo "This script can only execute once! ...

  4. Jenkins远程调度Shell命令

    http://blog.csdn.net/fireofjava/article/details/40624353 Jenkins服务器为Win7版本,需要远程调用CentOS服务器上Shell脚本,然 ...

  5. Linux内存初始化【转】

    转自:http://www.cnblogs.com/super-king/p/3291120.html start_kernel -> setup_arch 在这个函数中我们主要看这几个函数. ...

  6. VC++ 编译libcurl 支持SSL,GZIP

    由于网上下载的 libcurl 不支持 gzip,只好自己动手编译,期间走了很多弯路,下面是最终成功的记录. 我所使用的环境 Visual Studio 2010 . Windows 7 64 bit ...

  7. openlayers常用操作

    1.坐标转换 根据当前坐标系与目标坐标系进行转换ol.proj.transform(coordinate, source, destination);  //coordinate:数组:source: ...

  8. echarts 移动端地图数据可视化开发教程

    如上效果图: 以下未代码: <!doctype html> <html lang="en">   <head> <meta charset ...

  9. bootstrap File Input 多文件上传插件使用记录(二)删除原文件

    在上一篇文章中,主要介绍了file input插件的初始化和多文件同步上传到服务器的相关配置等.这篇主要介绍file input插件的编辑等. 使用场景: 在后台管理框架中,一条数据中包含不固定的多张 ...

  10. git —— 分支冲突

    解决冲突 冲突需手动解决 $ git status 查看冲突的文件 <<<<<<<,=======,>>>>>>> ...