在构建一个机器学习模型之后,我们需要对模型的性能进行评估。如果一个模型过于简单,就会导致欠拟合(高偏差)问题,如果模型过于复杂,就会导致过拟合(高方差)问题。为了使模型能够在欠拟合和过拟合之间找到一个折中方案,我们需要对模型进行评估,后面将会介绍holdout交叉验证和k折交叉验证,通过这两种方法,我们可以获得一个模型泛化误差的可靠估计,也就是模型在新数据上的性能。

一、holdout交叉验证

holdout交叉验证(holdout cross-validation)是评估机器学习模型泛化能力一种常用的方法。holdout方法是将数据集划分为训练集和测试集,训练集用于训练模型,测试集用于评估模型的性能。

但是,如果我们在模型选中过程中不断的重复使用相同的测试数据,其实就可以将测试数据看作训练数据的一部分,从而导致模型的过拟合。在使用holdout交叉验证的时候,有一种更好的方法可以避免过拟合,将数据集分为三个部分:训练集、测试集和验证集。训练集用于不同模型的拟合,模型在验证集上的表现作为模型性能的评估和选择标准,测试集是当模型的参数优化完成之后,再用来评估模型的泛化误差。

holdout方法的缺点:模型性能的评估对于训练集和验证集的划分是敏感的,评价的结果会随着样本的不同而发生变化。接下来将介绍一种鲁棒性更高的性能评价技术:k折交叉验证。

二、k折交叉验证

k折交叉验证(k-fold cross-validation),不重复的将训练集划分为k个,其中k-1个

交叉验证评估模型性能相关推荐

  1. python 交叉验证后获取模型_Python机器学习:6.2 K折交叉验证评估模型性能

    训练机器学习模型的关键一步是要评估模型的泛化能力.如果我们训练好模型后,还是用训练集取评估模型的性能,这显然是不符合逻辑的.一个模型如果性能不好,要么是因为模型过于复杂导致过拟合(高方差),要么是模型 ...

  2. ML之RF:基于葡萄牙银行机构营销活动数据集(年龄/职业/婚姻/违约等)利用Pipeline框架(两种类型特征并行处理)+RF模型预测(调参+交叉验证评估+模型推理)客户是否购买该银行的产品二分类案例

    ML之RF:基于葡萄牙银行机构营销活动数据集(年龄/职业/婚姻/违约等)利用Pipeline框架(两种类型特征并行处理)+RF模型预测(调参+交叉验证评估+模型推理)客户是否购买该银行的产品二分类案例 ...

  3. 手动/自动/交叉验证评估Keras深度学习模型的性能

    Keras是Python中一个的强大而易用的库,主要用于深度学习. 在设计和配置你的深度学习模型时,需要做很多决策.大多数决定必须通过反复试错的方法来解决,并在真实的数据上进行评估. 因此,有一个可靠 ...

  4. 一套完整的基于随机森林的机器学习流程(特征选择、交叉验证、模型评估))...

    机器学习实操(以随机森林为例) 为了展示随机森林的操作,我们用一套早期的前列腺癌和癌旁基因表达芯片数据集,包含102个样品(50个正常,52个肿瘤),2个分组和9021个变量 (基因).(https: ...

  5. ML:基于葡萄牙银行机构营销活动数据集(年龄/职业等)利用Pipeline框架(两种类型特征并行处理)+多种模型预测(分层抽样+调参交叉验证评估+网格/随机搜索+推理)客户是否购买该银行的产品二分类案

    ML之pipeline:基于葡萄牙银行机构营销活动数据集(年龄/职业/婚姻/违约等)利用Pipeline框架(两种类型特征并行处理)+多种模型预测(分层抽样+调参交叉验证评估+网格搜索/随机搜索+模型 ...

  6. R语言构建xgboost模型:xgb.cv函数交叉验证确定模型的最优子树个数(可视化交叉验证对数损失函数与xgboost模型子树个数的关系)、交叉验证获取最优子树之后构建最优xgboost模型

    R语言构建xgboost模型:xgb.cv函数交叉验证确定模型的最优子树个数(可视化交叉验证对数损失函数与xgboost模型子树个数的关系).交叉验证获取最优子树之后构建最优xgboost模型 目录

  7. K折交叉验证与模型评估

    K折交叉验证的原理 见 https://www.jianshu.com/p/284581d9b189 模型评估 当使用十折交叉验证时,每次训练集为90%的数据,测试集为10%的数据.用这10%数据,我 ...

  8. python 模型交叉验证法_python – 交叉验证和模型选择

    我正在使用skilearn进行SVM培训.我正在使用交叉验证来评估估算器并避免过度拟合模型. 我将数据分成两部分.训练数据和测试数据.这是代码: import numpy as np from skl ...

  9. Lasso交叉验证构建模型并计算各样本评分

    Lasso交叉验证 library(glmnet) library(survival) library(survminer)x = exp[,gene] #gene为纳入的基因集 y = Surv(t ...

最新文章

  1. 操作系统实验报告14:Peterson 算法
  2. python 画三角函数_python,将三角函数绘制成二维数组
  3. 程序员如何让自己 Be Cloud Native - 配置篇
  4. 双边滤波器—— Matlab实现
  5. PHP修改表格(增删改)
  6. Python并发编程Futures
  7. 运行控制器方法之前先执行注解@ModelAttribute的方法
  8. python的功能及特点_使用Python这么多年,才发现Python还有这些实用的功能和特点...
  9. AutoCad注册机使用方法
  10. 支付宝小程序实现自定义头部导航栏
  11. 感恩节特辑丨这个世界有无限可能
  12. java 刻度尺,刻度尺选择控件
  13. CentOS安装Nginx 以及日志管理
  14. SpringSecurityOAuth2.0获取Token时报错Encoded password does not look like BCrypt
  15. linux怎么查看证书库,curl --resolve 查看证书情况
  16. CVE-2012-0158 分析
  17. 2020年的年终总结(仰望星空、脚踏实地)
  18. 各类参考文献的著录格式及示例
  19. 爬虫大全,爬虫工具汇总
  20. 关于数字孪生技术国家政策及发展趋势

热门文章

  1. 数据预处理方式:标准化/正态分布/zscore/scale/
  2. (转)c++对象内存分析4
  3. Android怎样使应用安装后不在launcher上显示图标
  4. 使用vw或者rem进行移动端适配
  5. Pytorch入门练习-kaggle手写字识别神经网络(SNN)实现
  6. 校招面试 - 计算机网络 - (非)对称加密 - 安全传输的基础
  7. 贵金属吸附树脂,吸附金的材料,钯吸附树脂
  8. 计蒜客 2020 蓝桥杯省赛 B 组模拟赛(五)E区间dp H 裴蜀 J dp A-J 权值线段树
  9. java计算机毕业设计后勤管理系统源码+mysql数据库+系统+lw文档+部署
  10. thinkphp 源码分析(四)—— 错误和异常处理 以及 log 日志