当前位置: 首页 > article >正文

机器学习核心概念解读

文章目录

  • 1.什么是过拟合
  • 2.关于学习曲线
  • 3.关于交叉验证
    • 3.1引入交叉验证
    • 3.2k折交叉验证
  • 4.关于模型的误差
    • 4.1关于误差的概念
    • 4.2模型的误差的组成
    • 4.3偏差和方差的关系
  • 5.关于混淆矩阵
    • 5.1相关计算
    • 5.2三个指标
    • 5.3F1分数的计算
  • 6.关于ROC曲线
    • 6.1P-R曲线
    • 6.2ROC曲线
  • 7.总结

1.什么是过拟合

关于这个话题,在开始我的这个叙述之前,首先推荐一个视频,来自于B站知名up主(但是可能你不知道的):漫士沉思录,他有一个视频的标题叫做:为什么刷题越多,效果反而越差,它使用这个生活化的案例去解释这个过拟合,我认为非常好,强烈推荐给大家;

其实如果你理解了这个漫士的视频里面的相关理论,我想你对于这个过拟合的原因和大致的内径应该是没有问题的;

下面的这个是图解过拟合:分别展示了这个正常情况,先你和,过拟合的这个不同场景,第一个就是欠拟合,这个效果就不是很好,第二个就是正常的比较不错的这个情况,第三个就是过拟合,和容易受到一些情况的这个影响,看似这个曲线把我们的两类数据完全分隔开了,但是其实这个效果并不是很好;

image-20250317124204740

2.关于学习曲线

学习曲线的这个横坐标表示的是我们的训练集的大小,纵轴表示我们的误差,其中可以看到这个里面是有两个曲线的:

上面的那个曲线的角标写的是这个test,其实就是我们的测试集;

下面的那个曲线的角标写的是这个train,其实就是我们的训练集;

刚开始的时候这个训练集的误差很小,这个可以理解,刚开始的这个样本的数量很少,这个误差就比较小,但是为什么这个误差越来越大了,就是因为我们的这个很少的样本训练出来的这个模型无法满足大部分的情况,所以这个误差就会逐渐的变大,但是随着这个样本数量的增加,考虑的情况变得很全面,这个误差就会逐渐的趋于稳定的状态;

上面的那个是测试集的,刚开始的这个误差比较大,因为刚开始这个模型的效果不好,test里面很多的情况模型无法解释,这个时候的误差就会比较大,但是随着样本增加,模型全面,这个时候测试集的误差就会越来越小,一直到这个最后的趋于稳定的状态;

image-20250317185632579

3.关于交叉验证

3.1引入交叉验证

交叉验证就是对于传统的这个思路稍微进行了改进,提高我们的这个模型的效果,原来的传统的这个思路就是训练集和测试集,这个交叉验证的思路就是在原来的这个基础上面引入了我们的验证集的概念(实际上这个验证集就是调参的过程,这个验证集就是从人家训练集里面分过来的数据罢了)

image-20250317190451330

下面进行简单的类比:下面的这个是使用的我们的日常学习进行类比,这个徐联机就是我们大量刷题的过程,这个验证集就是模考,比如一模考试,二模考试之类的,在这个基础上需要我们调整学习方法(相当于就是机器学习里面的调参),机器学习里面是想要找到这个最好的参数,我们的这个学习是想要找到最好的学习方法,可以类比进行理解;

这个测试集就是我们的这个学习过程中的期末考试,或者说是中考,高考之类的开始;

image-20250317190515524

3.2k折交叉验证

k折交叉验证就是把我们的训练集分为几个部分,分别的进行计算:

下面的这个是分成了5分,比如说我们的训练集是5000个数据,这个时候进行编号,第一轮使用1-1000编号的数据,第二轮使用1000-2000的数据,以此类推,进行5轮的计算,取得这几次的平均值,作为我们的这个最后的效果,其实这个里面变化的就是我们的验证集( 就是下面的这个黄色的部分),每一次选取我们的训练集里面的不同部分作为验证集计算这个准确率的均值即可;

image-20250317190632320

4.关于模型的误差

4.1关于误差的概念

下面的这个是关于误差的相关的概念:

image-20250317190756245

4.2模型的误差的组成

模型的误差主要是三个部分组成的:

image-20250317190845126

关于噪声:在输入数据或者输出数据中存在的随机误差或者干扰;

噪声会对数据质量产生负面影响,干扰机器学习模型对数据的准确建模和预测能力。 如果噪声过大,可能会导致模型出现过拟合现象,使得模型只能对训练数据进行拟合,而无法很好地泛化到新的数据上。

4.3偏差和方差的关系

两个是相反的关系,就是一个增大,另外的一个就是减少的,我们会选择一个合适的位置,让这个整体的误差是最小的;

image-20250317191136105

5.关于混淆矩阵

5.1相关计算

image-20250317192335005

5.2三个指标

使用上面的三个统计的结果,可以计算出来三个指标:召回率,准确率之类的,翻译多种多样,理解即可;

image-20250317192451902

5.3F1分数的计算

通过上面的指标我们就可以理解这个下面的这个F1分数的计算,也算是一个指标:

image-20250317192553800

6.关于ROC曲线

6.1P-R曲线

p就是我们上面的5.2章节计算的那个precision,这个R就是recall,两个参数的组成形成的这个曲线就是我们的P-R曲线;

image-20250317192953177

6.2ROC曲线

ROC曲线也不是什么高端东西,不用觉得很神奇,我们的混淆矩阵里面的这个TP,TR,FR,FP形成了这个recall和precision之类的,这个是其中的几种组合方式,另外的组合方式形成了这个新的参数我们去名字叫做TPR和FPR罢了,其实来来回回都是我们的这个混淆矩阵里面的四个变量加加减减,乘除运算罢了,这个TPR和FPR组成的这个曲线就是ROC曲线;

image-20250317193159081

关于这个AUC衡量的标准:AUC就是area under curve,表示的这个曲线下面的这个面积,这个曲线就是ROC曲线,因此这个AUC是基于ROC曲线的概念;

image-20250317193631360

7.总结

上面只是简答的熟悉,代码怎么写,具体怎么计算,自己下去查,其实python里面是有这个相关的库的,matlab里面也是有这个相关的工具箱的,都是可以使用的,并不需要我们自己去手搓,不要想象的很难,先理解原理,再去实现,提升理解;


http://www.kler.cn/a/589677.html

相关文章:

  • Webpack构建流程详解优化前端性能\Dev-Server与Proxy\网络攻击\HMR
  • 深入解析 Spring Boot 中的 FailureAnalyzer
  • C++菱形继承内存模型
  • ONENET数据可视化命令框下发命令使用
  • 内网环境安装dlv,本地远程调试go
  • 自动化实施的常用元件有哪几种?
  • hadoop-配置安装jdk
  • Linux目录结构以及文件操作
  • IDEA的相关配置
  • 孤儿进程与僵尸进程:Linux进程管理中的“隐形杀手”与“无主孤儿”
  • 蓝桥杯 之 数学规律求解
  • React:React主流组件库对比
  • 【数据库】Data Model(数据模型)数据模型分析
  • AGI大模型(8):提示词的安全与防护
  • Redis 持久化机制:AOF 与 RDB 详解
  • 使用Ollama本地部署DeepSeek
  • (hash表+vector 数位和相等数对的最大和)leetcode 2342
  • CUDA多线程
  • EB-Cable许可证的常见问题及解决方案
  • 贪心算法(7)(java) 分发饼干