首页 > 其他分享 >机器学习--模型评估与选择

机器学习--模型评估与选择

时间:2024-07-22 16:28:42浏览次数:9  
标签:误差 训练 -- 模型 样本 ## 测试 评估

解决问题的关键

        1.知道你到底要什么【真正的需求】

        2.知道我给你的是不是你要的【提供的是否符合需求】


何为好的模型?

泛化能力强,能很好的适用于未见样本(unseen instance)的模型。

泛化误差

在”未来“样本上的误差

经验误差

在训练集上的误差,亦称”训练误差“

过拟合&欠拟合

过拟合(Overfitting):

        把训练数据里面的特性学出来了,而这个特性不是一般规律(学太多,学到了不该学的东西),表现在未来的数据上(泛化误差上升,而训练误差仍呈现下降趋势)

欠拟合(Underfitting):

        学的太少,容易犯错

## Overfitting是机器学习里的核心内容,找到好的模型就是找到过拟合与欠拟合的平衡点

## 所有的算法、所有的技术都是在缓解Overfitting!!

** 对于一个新的算法重点要思考它是怎样环节Overfitting,以及这种环节何时会失效


模型选择(Model Selection)

三个关键问题

        1.如何获得测试结果? => 评估方法

        2.如何评估性能优劣?=> 性能度量

        3.如何判断实质差别?=>  比较检验

一、评估方法

关键:怎么获得“测试集”(test set)?

## 测试集应该与训练集”互斥“

常见方法:

               1. 留出法(hold-out)

                2.交叉验证法(cross validation)

               3. 自助法(bootstrap)

留出法

将拥有的数据集分成两部分,一部分用来训练(训练集),另一部分用来限额是(测试集)

注意:

        · 保持数据分布一致性(eg. 分层采样:根据类别的均匀分布的采样)

        · 多次重复划分(eg. 100次随机划分,平均掉样本随即切分所造成的影响)

        · 测试集不能太大、不能太小,常选用 1/5~1/3 ->  Why?

标签:误差,训练,--,模型,样本,##,测试,评估
From: https://blog.csdn.net/SHUA_y/article/details/140451278

相关文章

  • 机器学习--线性模型
    线性模型分类:把多种数据进行区分回归:归纳出某种数据的分布规律线性模型(linearmodel):试图学得一个通过属性的线性组合来进行预测的函数公式如下:#x为特征值,w为权重,b为偏值线性回归##转化为公式时,需要把特征值数值化:            1.若数据有“序......
  • 《白话机器学习的数学》第2章——学习回归
    2.1设置问题    1.机器学习所做的事情正是从数据中进行学习,然后给出预测值。2.2定义模型    1.一次函数的表达式:                                                           其中θ叫做......
  • python学习笔记——基础数据类型
    一、python赋初值         1.Python中的变量不需要声明。每个变量在使用前都必须赋值,变量赋值以后该变量才会被创建。    2.在Python中,变量就是变量,它没有类型,我们所说的"类型"是变量所指的内存中对象的类型。    3.等号(=)用来给变量赋值。 ......
  • 史上SCI学术论文最全的30种图表类型代码实现(matlab版)
    1、柱状图(BarGraph)matlab代码%数据group_values=[10,15,7,25];class_values=[20,5,30,10];%X轴标签labels={'1','2','3','4'};%创建一个图形figure;%创建第一个子图:组数据subplot(1,2,1);bar(group_values,'FaceC......
  • 嵌入式外设 -- ESP32-Cam图像透传到公网访问做个小监控(图文讲解)
    目录一前言局域网透传和环境安装可以看这里二准备工作1.账号注册2.软件下载3.软件安装4.软件使用5.程序烧录三重点来了1.获取分配的IP地址2.软件配置隧道IP地址3.获取到公网的访问地址4.配置摄像头参数四注意事项重新链接热点需要重新去走这几步......
  • Python数据可视化常用的库
    Python中的数据可视化是指使用图形和图表来展示数据,以便更直观地理解和分析数据。数据可视化的目的是将复杂的数据转化为容易理解的视觉形式,从而帮助发现数据中的模式、趋势和异常情况。以下是数据可视化的一些主要用途:探索性数据分析:帮助理解数据分布和结构识别数据中的......
  • C++ 学习笔记十一 封装
    封装4.1.1封装的意义封装是C++面向对象三大特性之一封装的意义:将属性和行为作为一个整体,表现生活中的事物将属性和行为加以权限控制封装意义一:​在设计类的时候,属性和行为写在一起,表现事物语法:class类名{访问权限:属性/行为};**示例1:**设计一个圆类,求圆的周......
  • Transformer 模型和Attention注意力机制学习笔记
    文章目录Transformer模型结构注意力机制ScaledDot-ProductAttention缩放点注意力机制工作流程并行机制Multi-HeadAttention多头注意力机制工作流程Embedding单词Embedding位置编码PositionalEncodingEncoderAdd&NormFeedForwardNetworkDecoderMaskedMul......
  • 手写Kd树(C++模板非递归实现)
    手写Kd树(C++模板非递归实现)1.Kd树1.1Kd树简介1.2Kd树的建立1.3Kd树的查找2.C++完整代码实现3.测试代码3.1代码实现3.2测试结果4.与PCL中的Kd树做对比本文实现的Kd树实现参考了高翔博士的书《自动驾驶与机器人中的slam技术从理论到实践》;高博士原书中是递归......
  • 深入理解Java中的equals和hashCode方法
    序言:在Java编程中,equals和hashCode方法是两个非常重要的概念。它们直接关系到对象的比较和哈希表的使用效率。本文将详细介绍这两个方法的工作原理、如何正确重写它们以及一些常见的误区。一、equals方法equals方法的作用equals方法用于判断两个对象是否相等,返回一个布......