过拟合问题——正则化方法

      看了很多资料,本身想放一个正则化的概念的,实在不敢放,怕吓跑一堆人,所以,将就吧。

      首先,我们知道正则化(Regularization)是解决过拟合问题的,简单来说,过拟合(也叫高方差)就是训练样本效果比较好,但是在测试集上的效果就比较差了,官方一点的话就是模型的泛化能力太差。

      泛化能力:一个假设模型能够应用到新样本的能力。

       解决过拟合我们可以采用

     (1)丢弃一些不能帮助我们正确预测的特征,可以手工保留,也可以采用算法(例PCA)

     (2)正则化处理。保留所有的特征,但是减少参数的大小。


      正则化的方式有很多,常见的有数据增强、L1正则化,L2正则化,早停,Dropout等。

      正则化代价函数 =经验代价函数 +正则化参数 *正则化项

      其中,经验损失函数就是我们所说的损失函数,最小化误差让模型更好拟合训练集


      范数的概念:

       

 从概率角度进行分析,很多范数约束相当于对参数添加先验分布,其中L2范数相当于参数服从高斯先验分布,L1范数相当于拉普拉斯分布。从贝叶斯的角度来分析, 正则化是为模型参数估计增加一个先验知识,先验知识会引导损失函数最小值过程朝着约束方向迭代。

 相关资料表示:

 L0和L1可以解决稀疏问题

 L0 问题是NP组合难问题,对较大规模数据无法直接求解;

 存在两种直接求解L0问题的算法:

(1)贪婪算法

(2)门限算法

 问题:

(1)贪婪算法时间代价过高,无法保证收敛到全局最优

(2)门限算法时间代价低,但对数据噪声十分敏感。解不具有连续性 ,无法保证全局最优解。

  L0应用场景:压缩感知、稀疏编码

  L0过渡到L1:从一个组合优化问题放松 到凸优化问题来解,L1范数是L0范数的最优凸近似

  实线的椭圆代表示没有正则化目标的等值线,虚线圆圈表示L1正则化的等值线

  里边涉及一堆数学推理,我简化来说,L1正则化可以产生稀疏矩阵(去掉没用的特征,将权重置为0),有利于特征选择。

  扩充:参考https://wenku.baidu.com/view/00613bc4f78a6529657d536c.html?from=search

  


  L2(Tikhonov正则) 权重衰减

  目标是通过向目标函数添加一个正则项,使权重更加接近原点。

  实线的椭圆代表示没有正则化目标的等值线,虚线圆圈表示L2正则化的等值线

  


  在岭回归中,我们主要解决的问题就是特征数大于样本数的情况,也是奇异矩阵问题。

  奇异矩阵:若存在X的列间存在完全的线性依赖,即它的某一或某些列元素正好是另一或另一列元素的线性函数,这称为共线性   或多重共线性。X的共线性必然导致的列间和行间存在共性,并使得奇异,即行列式的值为0,。则无法求解矩阵的逆。

  在回归分析中,存在着近似于但不同于奇异矩阵的情况,即行列式的值近似于0,此类矩阵通常称为病态矩阵或者近奇异矩阵。   L2范数有助于计算病态问题。

  

















本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/466840.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

CentOS 8明年正式停止维护,以后再也不会有免费的RHEL了!

CentOS 8 明年正式停止维护,以后再也不会有免费的 RHEL 了!CentOS 是 Community Enterprise Operating System(社区企业操作系统)的首字母缩写,是 100% 重建的 RHEL(红帽企业 Linux)。尽管 RHEL…

Linux C标准

Linux下C标准 宗旨&#xff1a;技术的学习是有限的&#xff0c;分享的精神是无限的。 1、ANSI C ANSI C的目标是为各种操作系统上的C程序提供可移植性保证&#xff08;如Linux与windows之间&#xff09;。 ISO C标准定义的头文件 <assert.h> 验证程序断言 <signa…

Python sqlalchemy orm 多外键关联

多外键关联 注&#xff1a;在两个表之间进行多外键链接 如图&#xff1a; 案例&#xff1a; # 创建两张表并添加外键主键 # 调用Column创建字段 加类型 from sqlalchemy import Integer, ForeignKey, String, Column# 调用基类Base from sqlalchemy.ext.declarative import dec…

查找含有特定字符的存储过程

select p.name, m.definition from sys.procedures p inner join sys.sql_modules m on p.object_id m.object_idwhere m.definition like %150% 感谢怡红公子

将DataFrame格式的数据存入到mysql数据库中

因为最近频繁操作数据库&#xff0c;特别是写入数据比较麻烦。在DataFrame格式或者是Series格式的数据处理之后&#xff0c;总是会面临写入数据&#xff0c;迫不得已只能进行格式转换&#xff0c;搜索过程中发现了to_sql&#xff08;&#xff09;函数&#xff0c;就百度了用法&…

从小米智能家居入手,揭秘物联网关键技术

物联网已不知不觉融入我们的生活中给我们带来便捷&#xff0c;比如&#xff0c;智能门锁、ETC 电子自动收费系统等&#xff0c;一开始感觉还挺很新奇的&#xff0c;现在也习以为常了。那到底什么是物联网&#xff1f;可能很多人还挺蒙圈的。所谓物联网&#xff0c;最终目的就是…

centos清除dns cache.

# /etc/init.d/nscd restart# service nscd restart# service nscd reload# nscd -i hosts https://www.2daygeek.com/flush-clear-dns-cache-on-ubuntu-centos-debian-fedora-mint-rhel-opensuse/# f转载于:https://www.cnblogs.com/jhj117/p/8335781.html

Linux开发初步

Linux开发初步 宗旨&#xff1a;技术的学习是有限的&#xff0c;分享的精神是无限的。 一、库函数与系统调用 1、系统调用函数和库函数 库函数是一些完成特定功能的函数&#xff0c;一般由某个标准组织制作发布&#xff0c;并形成一定的标准。使用库函数编写的函数一般可以应…

Orange——The Data

The Data 这个部分描述的是怎样在Orange上加载数据。我们也将展示如何探索数据&#xff0c;发现一些基本统计特性&#xff0c;怎么数据取样。 Data Input Orange可以读取本机以制表符分隔的格式的文件&#xff0c;也可以从任何主要的标准电子表格文件类型加载数据&#xff0…

[转载]VirtualBox网络配置详解

标题: [原创]VirtualBox网络配置详解来自 http://www.linuxsir.org/bbs/showthread.php?p1800679#post1800679 欢迎转载, 转载请注明作者, 谢谢下面简单介绍一下Test-bed Environment:Host : 偶的本本OS : Arch Linux (Kernel Version 2.6.20) 已安装uml_utilities(包含tunctl…

工作4年工资8K,还有什么理由不努力?

—— 提问发哥&#xff0c;我现在还是从事裸机开发&#xff0c;51单片机&#xff0c;会点arm&#xff0c;但没有用arm真正做完整开发的经验&#xff0c;细想感觉自己会的不是很多&#xff0c;薪资提不上去&#xff0c;想做更高级点的工作&#xff0c;虽然自学点&#xff0c;到没…

内存管理函数

内存管理函数 宗旨&#xff1a;技术的学习是有限的&#xff0c;分享的精神是无限的。 一、 动态申请内存 1、 malloc/free ——动态分配内存和释放内存 &#xff08;1&#xff09;函数原型 void *malloc(size_tsize); void free(void *str); &#xff08;2&#xff09;函数参…

嵌入式的坑在哪方面?

在知乎看到的&#xff0c;觉得见解不错&#xff0c;看完我觉得会对嵌入式有些见解&#xff0c;分享给大家。今年毕业刚工作半年&#xff0c;稍微写一下自己的见解。嵌入式就个万金油&#xff01;干得活可以涉及硬件和软件&#xff01;永远学不完的知识。嵌入式工程师简直就是硬…

Orange-Classification,Regression

1.Classification Orange和sklearn一样&#xff0c;提供了Classification和Regression等机器学习的算法&#xff0c;具体使用如下&#xff1a; import Orangedata Orange.data.Table("voting") lr Orange.classification.LogisticRegressionLearner() rf Orange…

CentOS、Ubuntu、Debian三个linux比较异同

Linux有非常多的发行版本&#xff0c;从性质上划分&#xff0c;大体分为由商业公司维护的商业版本与由开源社区维护的免费发行版本。 商业版本以Redhat为代表&#xff0c;开源社区版本则以debian为代表。这些版本各有不同的特点&#xff0c;在不同的应用领域发挥着不同的作用&a…

再见,杀毒软件之父,王江民!

王江民&#xff0c;中国最早的反病毒专家&#xff0c;被业界尊称“中国杀毒软件之父”、“中国反病毒第一人。以38岁为分界&#xff0c;王江民的前半生&#xff0c;是中国青年身残志坚的楷模&#xff0c;他的后半生是中国安全软件的奠基人&#xff0c;带领中国商用软件第一个走…

arm流水线相关

不管是arm几,只要是在执行指令时采用的是流水线机制,前3级的都是:取指->译码->执行.在"执行"阶段,pc总是指向该指令地址加8字节的地址.换句话说,pc总是指向正在执行的指令地址再加2条指令的地址.之所以是2条指令,是因为在"执行"阶段前还有"取指…

C语言——回调函数

C语言——回调函数 宗旨&#xff1a;技术的学习是有限的&#xff0c;分享的精神是无限的。 如果参数是一个函数指针&#xff0c;调用者可以传递一个函数的地址给实现者&#xff0c;让实现者去调用它&#xff0c;这就是回调函数。 void func(void (*f)(void*), void *p) 提供…

百面机器学习——第一章特征工程

特征工程&#xff1a;是对原始数据进行一系列工程处理&#xff0c;将其提炼为特征&#xff0c;作为输入供算法和模型使用。从本质上来讲&#xff0c;特征工程是一个表示和展现数据的过程。在实际工作中&#xff0c;特征工程旨在去除原始数据中的杂质和冗余&#xff0c;设计更高…

C语言不调用库函数画一个三角形

这个是知乎上面的一个题目&#xff0c;非常有意思&#xff0c;晚上打球回来就下决心要写代码实现下&#xff0c;再加上自己剖析&#xff0c;让大家明白一个三角形在坐标系中如何用C语言画出来的。https://www.zhihu.com/question/53832071/answer/1625616415第一步就是要先构建…