机器学习基础之《回归与聚类算法(2)—欠拟合与过拟合》

一、背景

1、上一篇说正规方程的时候,实际情况中使用很少,主要原因它不能解决过拟合。

2、训练集上表现的好,测试集上表现不好---过拟合

二、欠拟合和过拟合

1、欠拟合

训练集:有3个训练集,告诉机器都是天鹅

机器学到了2个特征:有翅膀、嘴巴长

缺点:学习到的特征太少了

2、过拟合

之前特征太少了,那就多学点

缺点;学习到的特征太多了

3、分析

第一种情况:因为机器学习到的天鹅特征太少了,导致区分标准太粗糙,不能准确识别出天鹅。

第二种情况:机器已经基本能区别天鹅和其他动物了。然后,很不巧已有的天鹅图片全是白天鹅的,于是机器经过学习后,会认为天鹅的羽毛都是白的,以后看到羽毛是黑的天鹅就会认为那不是天鹅。

三、定义

1、欠拟合

一个假设在训练数据上不能获得更好的拟合,并且在测试数据集上也不能很好地拟合数据,此时认为这个假设出现了欠拟合的现象。(模型过于简单)

2、过拟合

一个假设在训练数据上能够获得比其他假设更好的拟合, 但是在测试数据集上却不能很好地拟合数据,此时认为这个假设出现了过拟合的现象。(模型过于复杂)

3、用图来表示这样一个过程

训练误差这一条线:随着不断地进行训练,损失值越来越少,模型复杂度越来越多

测试误差这一条线:一开始是误差随着模型复杂度越来越小,但是到一定程度之后(临界值),随着模型复杂度进一步增加,在测试集上误差会变大

在临界值左边的,欠拟合(训练集表现不好,测试集表现也不好)

在临界值右边的,过拟合(训练集表现好,测试集表现不好)

四、解决办法

1、欠拟合解决办法

原因:学习到数据的特征过少

解决办法:增加数据的特征数量

2、过拟合解决办法

原因:原始特征过多,存在一些嘈杂特征, 模型过于复杂是因为模型尝试去兼顾各个测试数据点

解决办法:正则化

3、在这里针对回归,我们选择了正则化。但是对于其他机器学习算法如分类算法来说也会出现这样的问题,除了一些算法本身作用之外(决策树、神经网络),我们更多的也是去自己做特征选择,包括之前说的删除、合并一些特征

4、在学习的时候,数据提供的特征有些影响模型复杂度或者这个特征的数据点异常较多,所以算法在学习的时候尽量减少这个特征的影响(甚至删除某个特征的影响),这就是正则化

5、注意:调整时候,算法并不知道某个特征影响,而是去调整参数得出优化的结果

五、正则化

1、L2正则化(更常用)

作用:可以使得模型中,模型参数W(权重系数),尽可能的接近于0,削弱某些特征的影响

优点:越小的参数,说明模型越简单,越简单的模型则越不容易产生过拟合现象

别名:Ridge回归(岭回归)

加入L2正则化后的损失函数:

损失函数 + λ * 惩罚项

(1)用【预测值】-【真实值】,然后求平方和,然后除以2m

(2)惩罚项是权重值平方,然后加在一起。第一个权重的平方加到最后一个权重的平方

(3)λ是惩罚的步长

(4)n为样本数,m为特征数

2、L1正则化

作用:可以使得其中一些W的值直接为0,删除这个特征的影响

别名:LASSO回归

加入L1正则化后的损失函数:

损失函数 + λ * 惩罚项

(1)惩罚项是W的绝对值加在一起

相关推荐
C嘎嘎嵌入式开发1 小时前
(六)机器学习之图卷积网络
人工智能·python·机器学习
AI量化投资实验室8 小时前
15年122倍,年化43.58%,回撤才20%,Optuna机器学习多目标调参backtrader,附python代码
人工智能·python·机器学习
明月(Alioo)9 小时前
机器学习入门,无监督学习之K-Means聚类算法完全指南:面向Java开发者的Python实现详解
python·算法·机器学习
深度之眼9 小时前
【Nature高分思路速递】 物理驱动的机器学习
人工智能·机器学习·pinn
胖达不服输10 小时前
「日拱一码」105 机器学习原子间势能MLIP
人工智能·机器学习·机器学习原子间势能·mlip
人机与认知实验室12 小时前
触摸大语言模型的边界
人工智能·深度学习·机器学习·语言模型·自然语言处理
ARM+FPGA+AI工业主板定制专家13 小时前
基于Jetson+GMSL AI相机的工业高动态视觉感知方案
人工智能·机器学习·fpga开发·自动驾驶
做科研的周师兄13 小时前
【机器学习入门】7.4 随机森林:一文吃透随机森林——从原理到核心特点
人工智能·学习·算法·随机森林·机器学习·支持向量机·数据挖掘
第七序章14 小时前
【C++】AVL树的平衡机制与实现详解(附思维导图)
c语言·c++·人工智能·机器学习
晨非辰14 小时前
【面试高频数据结构(四)】--《从单链到双链的进阶,读懂“双向奔赴”的算法之美与效率权衡》
java·数据结构·c++·人工智能·算法·机器学习·面试