机器学习_线性回归_线性回归过拟合和欠拟合+正则化线性模型学习总结

ops/2024/10/18 19:10:11/

线性回归的缺陷--欠拟合和过拟合

       欠拟合:

              简介

                     训练集和测试集表现都不怎么样, 模型太简单

              产生原因:

                     学习到的特征太少

              改进方法:

                     1.添加其他特征

                            组合

                            泛化

                            相关性

                            上下文特征,平台特征等

                     2.添加多项式特征, 将低次项模型变成高次项模型

       过拟合:

              简介

                     原始特征过多,存在嘈杂特征,模型尝试兼顾各个测试点

              产生原因:

                     训练集表现好,测试集表现不好, 模型过于复杂

              改进方法:

                     1.重新清洗数据

                            过拟合可能因为数据不纯导致的

                     2.增大数据的训练量

                            过拟合可能因为训练的数据量太少,没有代表性,训练数据占总数据的比例过小

                     3.正则化

                     4.减少特征维度, 防止维灾难

       改进方法-正则化:

              通过限制高次项的系数来尽量减小高次项特征的影响,

              以达到防止过拟合的目的

              L1正则化

                     将某些高次项前面的系数W变为0, 去除该特征值的影响

                     应用

                            LASSO回归

                     缺点

                            模型不是平滑的曲线,会出现很多顶点不可导

              L2正则化

                     让某些高次项系数W值很小,接近零,削弱该特征其影响

                     应用

                            Ridge回归

                     优点

                            模型是平滑曲线, 高次项参数越小, 说明模型越简单, 越不容易产生过拟合

正则化线性模型

       1.RidgeRegression-岭回归

              简介:

                     在系数前面添加平方项, 然后用α来限制系数值的大小,

                     α越大, 系数值越小, α越小, 系数值越大

              api:

                     sklearn.linear_model.Ridge()

                     参数:

                            alpha--正则化强度

                            solver-选择的线性回归算法

                                   默认SAG(随机平均梯度下降算法)

                            normalize-是否对数据进行标准化

                                   normalize=True, 自动调用算法进行标准化

                                   normalize=False, 不对数据进行标准化

       2.Lasso回归

              简介:

                     处理系数的绝对值, 用α来影响系数值大小,

                     α越大, 系数值越小, α越小, 系数值越大

       3.Elastic Net 弹性网络

              简介:

              前两个的综合, 即

              在系数前面添加平方项, 然后用rα来限制系数值的大小,

              处理系数的绝对值, 用1-r/2α来影响系数值大小,

              当r为0时, 算法变成lasso回归

              当r为1时, 算法变成ridge回归

       4.算法推荐:

              常用算法: Ridge回归

              当只有少部分特征可以使用时:

                     - Elastic Net(弹性网络)

                     - Lasso回归

                     弹性网络使用更广泛,因为在特征维度高于样本数时, 或者特征维度为强相关时, Lasso回归表现不佳

       5.Early stopping(扩展, 了解即可)

              通过限制错误率的阈值, 即时停止

              当错误率最小时, 停止执行算法

扩展--维灾难:

       随着维度增加,分类器性能逐步上升, 到达某一顶点之后, 性能逐渐下降

       维数灾难的核心问题:

              随着维数的增加,数据的体积指数级增长,导致可用数据变得稀疏。

              这使得在统计学上获得正确且可靠的结果所需的数据量也呈指数级增长。

              此外,高维空间中的数据分析和模型构建变得更加复杂和困难,容易导致过拟合等问题

我的唠叨--下述内容与上述内容无关

哦, 对于机器学习感兴趣的小伙伴,   推荐你们可以看一看

【不讲废话!北大教授花198小时整理出来的人工智能机器学习+深度学习】教程,全程干货无废话,学不会自我反省!-哔哩哔哩】 https://b23.tv/XYti299

或者吴恩达的<机器学习>, 可能刚刚进去的时候容易被他的英文字幕给吓到, 但是没关系的,

国内b站上面的中文字幕到处都是, 而且这位大佬讲的确实浅显易懂,

我估摸着学习好点的高中生完全可以听得懂, 这里链接我就不推荐了

最近在学爬虫, 找了好多课程, 发现了一个内容质量挺高的一个博主<轻松学python>,

个人感觉, 搞爬虫, 他是专业的🤣, 话不多说, 要开始我下午的生活了


http://www.ppmy.cn/ops/126541.html

相关文章

【python】数据容器:dict(字典、映射)

目录 数据容器入门数据容器&#xff1a;list&#xff08;列表&#xff09;list&#xff08;列表&#xff09;的遍历数据容器&#xff1a;tuple&#xff08;元组&#xff09;数据容器&#xff1a;str&#xff08;字符串&#xff09;数据容器的切片数据容器&#xff1a;set&…

G-Set(增长集合,Grow-Only Set)

一、概念 G-Set&#xff08;增长集合&#xff0c;Grow-Only Set&#xff09;是一种冲突自由复制数据类型&#xff08;Conflict-Free Replicated Data Type, CRDT&#xff09;&#xff0c;用于在分布式系统中同步和合并数据&#xff0c;而不需要中央协调器。G-Set 支持两种操作…

LLM - 使用 Neo4j 可视化 GraphRAG 构建的 知识图谱(KG) 教程

欢迎关注我的CSDN&#xff1a;https://spike.blog.csdn.net/ 本文地址&#xff1a;https://spike.blog.csdn.net/article/details/142938982 免责声明&#xff1a;本文来源于个人知识与公开资料&#xff0c;仅用于学术交流&#xff0c;欢迎讨论&#xff0c;不支持转载。 Neo4j …

深入了解React 工作原理是什么

前端面试题包括ECMScript,TypeScript,Nodejs,React,Webgl,Webpack,Threejs等还在整理中&#xff0c;在线地址前端面试题&#xff0c;源码地址大家多多支持才有动力给大家分享更多好的面试题。 React 的工作原理基于以下几个关键概念&#xff1a;虚拟 DOM&#xff08;Virtual D…

@PostConstruct和afterPropertiesSet方法执行多次的原因

近日&#xff0c;遇到一个问题&#xff0c;PostConstruct方法会莫名执行多次&#xff0c;单看代码看不出问题&#xff0c;印象中也只会在bean初始化的时候执行一次而已。 然后问AI&#xff0c;问百度&#xff0c;没找到原因。 后面自己猜测&#xff08;现在都是面向猜测编程&am…

大数据治理:定义、重要性及实践

大数据治理&#xff1a;定义、重要性及实践 引言 大数据治理是当代企业信息管理和数据管理的重要环节&#xff0c;它涉及到数据的获取、处理、存储、安全、质量、生命周期管理等方方面面。随着信息技术的迅猛发展和数据量的爆炸式增长&#xff0c;大数据治理已经成为企业提升…

Vue 3 中的状态管理:深入探讨 Vuex 和 Pinia 的比较与最佳实践

文章目录 1. 引言2. Vuex 的使用及其状态管理模型2.1 Vuex 的核心概念2.2 Vuex 的优点与局限性 3. Pinia 的特点及与 Vuex 的比较3.1 Pinia 的核心特点3.2 Pinia 与 Vuex 的主要区别 4. 如何在 Vue 3 中实现状态管理的最佳实践4.1 小型应用中的最佳实践4.2 大型应用中的最佳实践…

python多线程lock使用方法进行文件锁定

如果写文件想让这个线程写的时候&#xff0c;别的线程不会干扰写&#xff0c;也就是不中间插内容 需要使用thread.lock方法 代码&#xff1a; import threading import datetime import random from queue import Queue lockthreading.Lock() def writelog():lock.acquire()w…