机器学习系列11:减少过拟合——L1、L2正则化

如果我们注意到模型在训练集上的表现明显优于模型在测试集上的表现,那么这就是模型过拟合了,也称为 high variance。

产生的过拟合的原因是对于给定的训练集数据来说,模型太复杂了。有几种可以减少过拟合的方法:

  • 收集更多的训练数据(通常可行性不大)

  • 通过正则化引入对模型复杂度的惩罚

  • 选择一个含有较少参数的简单模型

  • 减少数据的维度

假设模型的参数是向量 w,那么 L1 和 L2 正则化的定义如下。

图片

图片

L1 正则化通常会产生更稀疏的特征空间,大部分的特征对应的权重都是 0。

如果我们在处理高维且大多数特征都互不相关的数据集时,稀疏性就会十分有用,尤其是在训练数据集样本数比样本特征数还少时。此时 L1 正则化也可以被视为是一种特征选择工具,我们将在下一课学习特征选择。

我们在训练机器学习模型时的目标是使模型在训练集和测试集上的损失不断降低,损失是通过损失函数计算出来的。L1 正则化和 L2 正则化就是在损失函数后面再加上惩罚模型复杂度的因子,并且还附带一个取值在 [0.0, 1.0] 之前的参数 λ 控制惩罚力度。

图片

在 scikit-learn 库中,我们只需要指定 penalty='l1' 或 penalty='l2' 就可以选择使用 L1 还是 L2 正则化了。注意!solver 参数指定了优化算法,lbfgs 优化算法不支持 L1 正则化。

图片

我们用逻辑回归算法拟合了经过标准化的红酒数据集后发现,模型在训练集和测试集上的准确率都达到了 100%!

除此之外,你可能还注意到还有两个参数:

  • C 就是 λ 的倒数,默认值是 1.0

  • multi_class='ovr',这表示使用 one-versus-rest 方法将二分类模型应用到多分类

one-versus-rest(OVR)也称为 one-versus-all,是一种将二分类模型应用到多分类任务中的方法。以红酒数据集为例,这是数据集具有三种类别,那么就训练三个二分类器,每个二分类器都将其中一种类别作为正例,其他两种类别作为反例。最终预测时选择得分结果最高的分类器预测的正例对应的类别作为最终的预测类别。

我们可以看到有 3 个权重和对应的偏置(bias)。

图片

我们也能看到有几个特征对应的权重值为 0,所以 L1 正则化也能用作特征选择。我们可以增大正则化项系数 λ(减小参数 C)时会剔除更多的特征,当 C < 0.01(λ > 100)时,所有特征对应的权重都是 0。

图片

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

如若内容造成侵权/违法违规/事实不符,请联系一条长河网进行投诉反馈,一经查实,立即删除!

相关文章

Matplotlib ------ 纵坐标科学计数法含义

matplotlib 纵坐标科学计数法含义 引言正文 引言 今天画图时遇到了一个问题&#xff0c;发现纵坐标是科学计数法的表示&#xff0c;但是很难理解它的含义&#xff0c;这里特来记录一下。 正文 我们以下图为例&#xff0c; 由图上我们可以看出&#xff0c;纵坐标显示为 1e-…

pycharm找回误删的文件和目录

昨天不知道做了什么鬼操作&#xff0c;可能是运行了几个git命令&#xff0c;将项目里面的几个文件删除了&#xff0c;有点懵。 我知道pycharm可以找回文件的历史修改记录&#xff0c;但是对于删除的文件能否恢复&#xff0c;一直没试过。 找到删除文件的目录&#xff0c;点击右…

【MySQL】数据库之高级SQL查询语句补充

目录 一、补充正则表达式的查询regexp 二、补充case的用法 三、补充空值和null值的区别 一、补充正则表达式的查询regexp 要知道 在MySQL中使用正则表达式&#xff0c;一定要在前面加上regexp 正则表达式 ^ 匹配文本的开始字符 ‘^bd’ 匹配以 bd 开头的字符串 …

青龙面板的安装

一、安装docker 首先&#xff0c;需要在服务器上安装docker。 没有服务器的可以使用虚拟机&#xff0c;或申请一台三丰云的免费云服务器体验一下&#xff0c;独立IP地址&#xff0c;送免备案服务&#xff0c;可以满足基本的使用&#xff0c;三丰云上还有免费虚拟主机等其他免费…

SpringBoot整合Canal

一 linux docker compose版本 1.第一步&#xff1a;基础环境 &#xff08;1&#xff09;第1步&#xff1a;安装jak、maven、git、nodejs、npm yum install maven mvn -v 安装maven时会帮安装jdkyum install git git --version 2.27.0yum in…

【2023湖南大学ACM新生赛】A.Yin Yang number(阴阳数)

这是考试的时候的源代码。我考试的时候用的解法属于走捷径了&#xff0c;使用了C模板容器bitset&#xff0c;将输入的无符号长整数unsigned long long直接转化为64位bitset&#xff0c;然后求各位和。 #include <iostream> #include <bitset>using namespace std;…

低代码开发中业务蓝图的重要性:业务需求与系统实现的桥梁

在低代码应用开发领域&#xff0c;业务蓝图是一个至关重要的工具&#xff0c;它提供了组织业务流程需求的详细信息。它类似于一份指导开发人员进行应用开发的路线图&#xff0c;确保与业务的战略目标和需求保持一致。 低代码方法学&#xff0c;顾名思义&#xff0c;即减少了传…

Springboot静态资源与模板引擎Thymeleaf篇

一、导入静态资源 1.1 静态资源目录 只要静态资源放在类路径下&#xff1a; /static or /public or /resources or /META-INF/resources访问 &#xff1a; 当前项目根路径/ 静态资源名原理&#xff1a; 静态映射/**&#xff1b; "/**" 访问当前项目的任何资源 (静态…

链表精选题集

目录 1 链表翻转 题目链接&#xff1a; 解题&#xff1a; 试错版&#xff1a; 2 找中间节点 题目链接: 题解&#xff1a; 3 找倒数第k个节点 题目链接&#xff1a; 题解&#xff1a; 4 将两个升序链表合并为一个升序链表 题目链接&#xff1a; 题解&#xff1a; …

Winform RDLC报表(数据库连接、报表函数使用、动态表头)

文章目录 NuGet安装库数据库连接报表设计报表引用添加报表 数据集设计方法一手动添加方法二——连接数据库添加 关联报表与数据集表格数据与数据集数据设计表格格式、字体设计报表数据字段绑定 Winform 使用报表控件数据库填充数据集从数据库获取与数据源相同字段的数据 动态表…

基于Python的电商手机数据可视化分析和推荐系统

1. 项目简介 本项目旨在通过Python技术栈对京东平台上的手机数据进行抓取、分析并构建一个简单的手机推荐系统。主要功能包括&#xff1a; 网络爬虫&#xff1a;从京东获取手机数据&#xff1b;数据分析&#xff1a;统计各厂商手机销售分布、市场占有率、价格区间和好评率&am…

PythonTSK Study for first day (paper read)

HTSK model Study AbstractIntroductionII TSK for high-dimentional datasetIII ResultsA DatesetB AlgorithmC性能评估 Abstract The TSK Fuzzy System with Gaussian membership functions can not address high dimentional datasets, if add softmax function to solve i…

模式识别与机器学习-判别式分类器

模式识别与机器学习-判别式分类器 生成式模型和判别式模型的区别线性判别函数多分类情况多分类情况1多分类情况2多分类情况3 例题 广义线性判别函数实例 分段线性判别函数Fisher线性判别感知机算法例&#xff1a;感知机多类别分类 谨以此博客作为学习期间的记录 生成式模型和判…

跨境电商:平台选择的艺术与科学

一、平台类型与特点 亚马逊&#xff1a;作为全球最大的电商平台之一&#xff0c;亚马逊拥有庞大的用户群体和完善的物流体系。它以优质的服务和高效的配送著称&#xff0c;但竞争也相对激烈。eBay&#xff1a;eBay是一个全球性的在线拍卖和购物网站&#xff0c;它的市场覆盖面…

关于蚁剑(AntSword)的溯源反制

中国蚁剑(AntSword) RCE漏洞 此漏洞在AntSword2.7.1版本上修复 &#xff0c;所以适用于AntSword2.7.1以下版本。 下面介绍被低版本蚁剑攻击后如何进行溯源反打 以物理机为攻击机&#xff0c;虚拟机kali模拟受害者&#xff0c;之后使用kali进行溯源反制 物理机内网ip地址&…

【前端基础】——原型与原型链详解,看一篇即可【图文版】

前言 本文旨在通过图文的方式&#xff0c;一步步回顾原型链的整个流程是如何运作的&#xff0c;如果你刚好在电脑旁边&#xff0c;不妨跟着我的思路&#xff0c;一起走一遍敲一遍代码流程&#xff0c;你会发现原型链并没有你想的那么复杂。 new关键字 我们先看这一个代码&am…

【温故而知新】vue运用之探讨下单页面应用(SPA)与多页面应用(MPA)

一、概念 1.单页面应用SPA(Single page application) Vue单页面应用是一种采用Vue.js框架开发的Web应用程序,它仅有一个HTML文件,通过前端路由实现页面的切换和渲染。与传统的多页面应用相比,Vue单页面应用在用户体验和开发效率方面有着明显的优势。 在Vue单页面应用中…

【JavaEE】多线程(7) -- 线程池的概念和简单实现

目录 1.线程池是什么 2.标准库中的线程池 2.1ThreadPoolExecutor 2.2构造方法参数介绍 2.3拒绝策略(面试易考) 2.4Executor的使用 3.实现线程池 1.线程池是什么 线程池是一种用来管理线程的机制&#xff0c;它可以有效地控制线程的创建、复用和销毁&#xff0c;从而提高程…

vscode括号颜色突然变成白色的了,怎么解决

更新版本后发现vscode的各种括号都变成了白色&#xff0c;由于分色括号已经使用习惯&#xff0c;突然变成白色非常不舒服&#xff0c;尝试多次后&#xff0c;为大家提供一下几种解决方式&#xff0c;希望能帮到同样受到此种困惑的你&#xff1a; 第一种&#xff1a; 首先打开…

07-C++ 异常

异常 1. 概念 异常事件&#xff08;如&#xff1a;除 0 溢出&#xff0c;数组下标越界&#xff0c;所要读取的文件不存在,空指针&#xff0c;内存不足等等&#xff09; 在C 语言对错误的处理是两种方法&#xff1a; 一是使用整型的 返回值标识错误&#xff1a;二是使用 errno…