2019-10-20 12:35:14

全文共2427字,预计学习时长5分钟

在现实生活中,通常只能使用一个小数据集。基于少量观测数据所训练出的模型往往会过度拟合,产生不准确的结果。所以即使可用的数据是极其有限的,也需要了解如何避免过度拟合,并获得准确的预测。

大数据和数据科学这两个概念常常被一并提及。人们认为,数据科学可以从大量数据的万亿字节中得出一些有价值的见解。的确,理论上可以。

然而,在实际的场景中,能用来解决问题的数据通常是有限的。因为收集一个庞大的数据集可能会非常昂贵,或者根本就不可能(例如,在进行时间序列分析时,只有来自特定时间段的记录)。因此,时常除了使用一个小数据集来尽可能获得准确的预测外,别无选择。

本文将简要介绍在使用小数据集时可能会出现的问题。随后再讨论哪些技术可以最有效地克服这些问题。

权衡偏差与方差

简而言之,权衡偏差和方差就是寻找一个完美的模型来解释数据。

偏差是模型预测值和真实值之间的差异。高偏差模型过分简化了期望预测和目标变量之间的关系,并且在训练和测试数据上都显示出高误差。

方差则反映了模型预测的偏离程度。高方差模型过于关注训练数据,却不能很好地关注到测试数据集。结果,这些模型在训练集上显示出很低的误差,而在测试集上显示出很高的误差。

过度拟合/不充分拟合/良好平衡

拥有低偏差和高方差的模型对数据拟合过度,而高偏差和低方差的模型则对数据拟合不足。

而且,在小数据集上训练的模型更可能会显示出不存在的模式,这会导致测试集的高方差及高错误。这是过度拟合的常见症状。因此,使用小数据集时,要尤为注意避免过度拟合。

那怎么才能做到这一点呢?

克服小数据集过度拟合的技术

现在就来讨论一下,在处理小数据集时,避免过度拟合的七种最有用的技术分别是什么。

1.选择简单的模型。

因为具有许多参数的复杂模型更容易过度拟合:

•在训练分类器时,可以考虑从逻辑回归开始。

•在预测某个值时,考虑训练一个简单的、权重有限的线性模型。

•对于树型模型,限制其最大深度。

•使用正则化技术,使模型更加准确。

由于数据有限,所以要限制模型显示出不存在的模式和关系的可能。这意味着要限制权重和参数的数量,并排除掉所有可能具有非线性或特征交互的模型。另外要注意,根据研究,某些分类器可能更擅长处理小数据集。

2.从数据中删除异常值。

使用小数据集时,异常值可能会对模型产生巨大影响。因此,在处理较少的数据时,需要识别并删除异常值。另一种方法是,使用对于异常值比较稳健的技术,如分位数回归。想要获得一个小数据集的合理模型,去除异常值的影响至关重要。

3.相关特征选择。

通常,显式特征选择不是最佳的方法,但当数据有限时,这可能就是必不可少的一步。因为当有少量观测值和大量预测值时,很难避免过度拟合。特征选择有几种方法,包括与目标变量的相关性分析、重要性分析和递归消除。另外值得注意的一点是,专业领域知识将对功能选择有很大帮助。因此,如果不熟悉该领域,有必要找一个该领域的专家来讨论其特征选择的过程。

4.组合多个模型。

当把多个模型的结果组合起来时,可能得到更准确的预测。例如,与来自每个个体模型的预测相比,来自所有个体模型的预测的加权平均值计算出的最终预测,其方差显著降低,也更加具有概括性。此外,还可以组合来自不同模型的预测,或是将来自同一模型不同的超参数值的预测组合起来。

组合来自多个模型的预测

5.依靠置信区间而不是点估计值。

除了预测本身之外,估计预测的置信区间通常也是一个好方法。特别在处理小数据集时,这一点尤其重要。因此,在回归分析中,一定要估计一个95%的置信区间。如果要解决分类问题,就要计算分类预测的概率。当更好地了解到模型对其预测有多“自信”时,就更少可能会根据模型的结果得出错误的结论。

6.扩展数据集。

当数据非常有限或数据集严重不平衡时,搜索扩展数据集的方法。可以使用这两种:

• 使用合成样本。这是解决数据集中某些类表示不足的常见方法。使用合成样本扩充数据集,有好几种方法,选择一个最适合的来完成特定任务。

• 使用其他来源的数据。例如,如果正在对某个特定区域的温度进行建模,也可以使用其他区域的天气信息,但是要为重点研究区域的数据点分配更高的权重。

7.运用迁移学习。这种方法也是数据扩展的一种。迁移学习就是在可用的大型数据集上训练通用模型,然后在小型数据集上对其进行微调。例如,在处理一个图像分类问题时,可以使用一个在ImageNet(一个巨大的图像数据集)上预先训练的模型,然后针对特定问题对其进行微调。比起从零开始使用有限数据训练的模型,使用预先训练的模型更可能产生准确的预测。并且,灵活运用深度学习技巧,迁移学习尤其有效。

不用担忧,小数据是一个你完全可以克服的挑战!

许多研究者和实践者都认为,小数据是数据科学的未来。因为,庞大的数据集并非对每一种问题都是可行的。遵循以下指导,来一起克服小数据集的挑战吧:

•了解统计学基础,知晓在处理少量观察数据时可能会遇到的问题。

•学习避免过度拟合的关键策略,并从小数据中获得准确结果。

•有效地执行所有数据清理和数据分析步骤(例如,使用R语言中的Tidyverse或数据科学中的Python工具)。

•从预测中得出结论时,注意模型的局限性。

若还缺乏一些处理小数据所需的知识,那么在网上可以找到一些很好的课程来学习。例如,在Vertabelo Academy网站,人们可以通过参与互动练习来学习基础统计学和数据分析。还有一些其他数据科学课程,例如Coursera、 edX、 Udemy 和 Udacity。然而,这些课程往往缺乏互动性,所以对于非IT人员可能具有挑战性。

小数据集同样重要!掌握处理它的7种方法相关推荐

  1. html密码框怎么添加小图标,JS Input里添加小图标的两种方法

    我们在做网页的时候,经常需要在input里面添加小图标,那么这里就介绍比较常见的两种方法. 方法一 将小图标当做input的背景来插入,直接上代码吧: *{ margin: 0; padding: 0 ...

  2. 微信小程序之获取用户信息(流程+2种方法)

    获取流程图 ui库Vant Weapp:Vant Weapp地址(点击跳转) 第一种方法 适用于直接点击登录获取 在界面添加登录按钮,用户点击按钮调用wx.getUserProfile()函数来提示用 ...

  3. linux 压缩文件小,技术|在 Linux 上压缩文件的 5 种方法

    在 Linux 系统上有很多可以用于压缩文件的工具,但它们的表现并不都是一样的,也不是所有的压缩效果都是一样的.在这篇文章中,我们比较其中的五个工具. 在 Linux 上有不少用于压缩文件的命令.最新 ...

  4. 小程序底部弹窗css_微信小程序之animation底部弹窗动画(两种方法)

    简单分享一下常用的底部弹窗层或下拉框弹出层(代码需要修改)的内容弹窗的动画效果,这里分享的是点击按钮后底部弹窗的动画效果.第一种方式是动态设置显示区域的高度,第二种方法是动态设置显示区域的移动的位置( ...

  5. 你不知道的小技巧 — 把对象交给spring管理的3种方法及经典应用

    背景 先说一说什么叫把对象交给spring管理.它区别于把类交给spring管理.在spring里采用注解方式@Service.@Component这些,实际上管理的是类,把这些类交给spring来负 ...

  6. 【小案例】字符串转换为数字数据类型的三种方法

    <script>var string="88.96"; var num=string*10; console.log(string,num,typeof num);&l ...

  7. yii2 php 生成小程序分享海报的两种方法

    前段时间做了个小程序-爱小环保,现在要给它加一个生成海报分享朋友圈的功能. 先简单介绍下这个小程序,主要是号召大家随手捡垃圾,如果你在马路上见到别人随手丢的垃圾,可以将它拍下来,然后丢到垃圾桶,拍下来 ...

  8. 为了提升在小数据集上的性能,有学者让神经网络像生物一样“进化”了|CVPR2021 Oral...

    点击上方"3D视觉工坊",选择"星标" 干货第一时间送达 作者丨二玖 审稿丨邓富城 编辑丨极市平台 导读 如何在较小的数据集上训练神经网络?马里兰大学的学者提出 ...

  9. 如何使用小数据集对大模型进行微调(迁移学习)-微迁移

    1.首先使用小数据集训练大模型一定要有大模型的优化器停止状态参数(没有的话尽量将学习率设置的小点),和停止时候权重参数,也就是要有预训模型 2,最好不要冻结参数,冻结虽然会节约时间但是未必能达到好的效 ...

最新文章

  1. Oracle Database基础
  2. Android移动开发之【通往安卓的神奇之旅】TextView和ImageView 实现跑马灯效果
  3. MySQL字符串和二进制
  4. 【编译原理】让我们来构建一个简单的解释器(Let’s Build A Simple Interpreter. Part 4.)(python/c/c++版)(笔记)
  5. java斐波那切数列_Java中的递归方法
  6. Points角点halcon算子,持续更新
  7. java控制台高级_K9s Kubernetes的高级控制台
  8. SQL SERVER 2008 中分页方法
  9. Docker可视化界面(Consul+Shipyard+Swarm+Service Discover
  10. asp.net中Roles和User的异常处理机制的思考
  11. django迁移数据库错误
  12. RMAN-20201: datafile not found in the recovery catalog
  13. 正在启动文档服务器,正在启动远程服务器
  14. 前端图片文件压缩方案
  15. 从零开始学数据分析之——《笨办法学Python》(习题0-10)
  16. c语言编程给系统加密保护,C语言:模拟输入密码系统,三次以内正常通过,三次退出程序...
  17. WPS转Word的方法介绍
  18. Both setBehindContentView must be called in onCreate in addition to setContentView.
  19. Chocolatey 包管理器安装配置
  20. Linux的基础配置

热门文章

  1. 【无标题】ubuntu20.04 开机引导后黑屏 光标闪现 无法进入图形桌面的解决方案_Denis.Zzzzzzzz?的博客-CSDN博客_ubuntu20黑屏光标闪烁
  2. 【Apollo源码分析】系列的第三部分【prediction】_slamcode的博客 -CSDN博客
  3. c++ stdlib中rand()函数的值范围
  4. pandas.apply 有源码github
  5. Seq2Seq (Attention) 的 PyTorch 实现 我的理想是数学家的博客,很详细实现过程
  6. pandas.dataframe用法总结 何时返回dataframe 何时返回series
  7. JAXB 转 XML乱码
  8. win内置ubuntu安装_win10安装内置ubuntu教程
  9. 被嫌弃的贝叶斯派的逆袭
  10. 5分钟 NLP系列—— 11 个词嵌入模型总结