- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
训练数据代表的分布是否需要反映测试数据和您预测的数据的分布?我可以通过查看每个功能的分布并将该分布与我预测或测试的数据进行比较来衡量训练数据的质量吗?理想情况下,训练数据应足以代表现实世界的分布。
最佳答案
简短的答案:类似的范围将是一个好主意。
长答案:有时(很少)不会有问题,但让我们检查一下时间。
在理想情况下,您的模型将完美地捕捉真实现象。想象最简单的情况:线性模型y = x。训练数据是否无噪音(或有可忍受的噪音)。您的线性回归自然会落在近似等于y = x的模型上。即使在训练范围之外,模型的泛化也将几乎完美。如果您的火车数据为{1:1,2:2,3:3,4:4,5:5,6:6,7:7,8:8,9:9,10:10}。测试点500将很好地映射到函数上,返回500。
在大多数建模方案中,几乎肯定不是这种情况。如果训练数据足够多,并且模型适当复杂(并且仅此而已),那么您就是黄金。
问题在于很少有函数(以及相应的自然现象)-尤其是当我们考虑非线性函数时-如此清晰地扩展到训练范围之外的数据。想象一下抽样办公室温度对员工舒适度的影响。如果只看40度到60度的温度。线性函数将在训练数据中表现出色。奇怪的是,如果您在60到80上进行测试,则映射将中断。在这里,问题在于您对数据具有足够代表性的主张充满信心。
现在让我们考虑噪音。想象一下,您确切地知道真实世界的功能是什么:正弦波。更好的是,系统会告知您其幅度和相位。您不知道的是它的频率。您有一个介于1到100之间的可靠样本,您所拟合的函数与训练数据非常吻合。现在,如果有足够的噪音,您可能会错误地估计一根头发的频率。当您在训练范围附近进行测试时,结果并不差。在训练范围之外,事情开始变得不妙。随着您越来越远离训练范围,实际功能和功能会根据它们的相对频率而发散和收敛。有时,残差似乎很好;有时他们很可怕。
您检查变量分布的想法存在问题:变量之间的交互。即使每个变量在训练和测试中达到适当的平衡,变量之间的关系也可能会有所不同(联合分布)。举一个纯人工的例子,考虑到您正在预测一个人在任何给定时间怀孕的可能性。在您的训练集中,您有20至30岁的女性和30至40岁的男性。在测试中,您拥有相同的男性和女性百分比,但是年龄范围有所不同。独立地,变量看起来非常匹配!但在您的训练集中,您可以很容易得出结论:“只有30岁以下的人会怀孕”。奇怪的是,您的测试集将证明完全相反!问题在于您的预测是从多元空间进行的,但是您正在考虑的分布是单变量的。但是,考虑连续变量彼此之间的联合分布(并适当考虑类别变量)是一个好主意。理想情况下,您的拟合模型应该可以访问与测试数据相似的范围。
从根本上讲,问题在于从有限的培训空间进行推断。如果适合于训练空间的模型可以泛化,则可以泛化;否则,可以泛化。最终,通常最好的方法是提供一个分布良好的培训集,以最大程度地提高捕获基础功能复杂性的可能性。
真有趣的问题!我希望答案有些深刻。随着资源的涌现,我将继续在此基础上继续前进!让我知道是否还有任何疑问!
编辑:我认为将来的读者应该阅读评论中的观点。
理想情况下,培训数据绝不应以任何方式影响测试数据。这包括检查分布,联合分布等。如果有足够的数据,则训练数据中的分布应收敛于测试数据中的分布(请考虑均值,大数定律)。匹配分布的操作(例如训练/测试拆分之前的z评分)从根本上使性能指标偏向您。拆分火车和测试数据的合适技术应类似于分层k折以进行交叉验证。
关于validation - 训练数据的分布与测试/预测的分布,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48143318/
我有两个项目。一个项目正在运行,没有任何问题。它是从 gitlab 下载的。另一个项目是从 github 下载的。 github项目有这个问题。我想使用默认的 gradle 分布。我想知道我做错了什么
我正在通过我学习的大学提供的 VNC 软件(远程访问)使用 IBM bigInsights,但我无法通过该桌面访问 Internet。为了使用互联网上的一些数据样本,我决定安装 Hadoop 在我的笔
所以,这非常简单,我有一个包含嵌套列表的列表,如下所示: List( *list1* List(List("n1", "n3"), List("n1", "n4"), List("n3", "n4")
我有以下示例。 prefix = ['blue ','brown '] suffix = [('dog','shoes','bike'), ('tree','cat','car')] 我想获得一个如下
我创建了一项调查并将其发送出去。该调查要求用户提供电子邮件,然后要求他们从包含 8 个不同选项的下拉菜单中选择要吃哪顿饭。有些人使用同一封电子邮件多次填写调查,但食物选择不同。 我有一个如下所示的 M
我在 Python 中使用 plotly 来创建由某些分类变量着色的美国县的等值线。由于县非常小,因此图像中的边界线占主导地位。我怎样才能摆脱它们(或将它们的宽度设置为零)? 到目前为止的代码和输出(
我们有qgamma在 R 和 gamm.inv在 excel 中,我无法使用 invgamma 获得相同的结果python中的函数。例如在excel中GAMMA.INV(0.99,35,0.08)=4
过去几年我经常使用 Docker,但对于 Kubernetes 来说我还是个新手。我从今天开始,与我以前使用 Docker swarm 的方式相比,我正在努力思考 Pod 概念的实用性。 假设我有一个
我有一个 UIStackView然而,subViews的第一个 View 是 UILabel它没有相应地调整它的大小。 我的代码如下; private let stackView: UIStackVi
我想绘制自由度为 1、2、5 和 10 的 Student t 分布;所有在一个图中,并为图中的每个分布使用不同的颜色。此外,在 Canvas 的左上角创建一个图例,并增加 df = 1 的曲线线宽。
我对 Python 很陌生,我在互联网上浏览过,但找不到任何可以帮助我解决问题的逻辑。 我在图中有降水值,现在我需要根据图中的这些值拟合 GEV 分布。每个值等于从 1974 年到 2017 年的一年
我正在尝试复制此图 https://wind-data.ch/tools/weibull.php 我编写的代码是 import matplotlib.pyplot as plt import nump
对于家庭作业,我必须绘制文本的词频并将其与最佳 zipf 分布进行比较。 根据对数对数图中的排名绘制文本的词频计数似乎效果很好。 但是我在计算最佳 zipf 分布时遇到了麻烦。结果应该如下所示: 我不
Mathematica 具有四参数广义逆 Gamma 分布: http://reference.wolfram.com/mathematica/ref/InverseGammaDistribution
正在用 C 语言开发一个学校项目,使用 Pthreads 将一维数组分解为 tRows 和 tCols 的子矩阵。整个数组的大小为 wRows 和 wCols。假设 wCols = 4、wRows =
有没有办法得到制服int32_t没有警告的分发?我用这个uniform_int_distribution在我的代码中,但我收到警告: 54988961.cpp: In function ‘int ma
在花了相当多的时间试图了解如何在 postgresql 数据库服务器之间实现负载平衡(分配数据库处理负载)之后,我来到这里。 我有一个 postgresql 系统,每秒吸引大约 100 笔交易,而且这
所以标题已经说明了一切。我们正在开发一个开始获得大量依赖项的项目。到目前为止,我们一直在使用 setuptools,但越来越多的依赖项要么不容易安装(例如 wxPython),要么在某些使用 easy
我有以下代码: #include #include #include using namespace boost::numeric; using namespace interval_lib;
我有一个对象列表,我想以随机顺序连续访问这些对象。 我想知道是否有一种方法可以确保随机值并不总是相似。 例子。 我的列表是队列列表,我试图交错这些值以生成用于测试的真实场景。 我并不是特别想要队列 1
我是一名优秀的程序员,十分优秀!