我是否可以/应该使用数据库中过去(例如每月)的标签列作为 ML 预测中的特征(无时间序列!)?

2024-03-12

问题:使用标签的过去作为特征是正常/平常/专业吗?尽管这是一个基本问题,但我找不到任何可靠的信息。

编辑:请注意,这不是一个时间序列问题,我现在删除了时间序列标签并更改了问题。这个问题是关于随着时间的推移定期变化的功能,是的!但我们不会据此创建时间序列,因为还有许多其他特征与标签不同,但也是模型中的重要特征。现在请考虑使用过去的标签作为正常特征没有时间序列方法。

我尝试预测每月可用的某个月份的数据,因此是一个时间序列,但我没有将其用作时间序列,它只是各种不同功能的每月可用数据。

它是一个分类模型,现在我想预测该时间序列中选定月份的标签列。所选标签月份之前的几个月现在是问题的重点。

我不想仅仅因为它们“几乎”是一个标签而放弃过去几个月的标签(或者换句话说:它们只是及时的先前模型的标签列)。我知道该品牌的过去,为什么不将其也视为特色呢?

当将标签时间序列的过去标签添加到特征中时,我的预测当然要好得多。这是合乎逻辑的,因为标签通常不会从一个月到另一个月变化太大,因此如果您将标签的过去信息输入到数据中,则可以很好地预测。不使用这种“过去的标签”作为特征会很奇怪,因为任何简单的时间序列回归都会比机器学习模型更好。

示例:假设我预测一个人的智商测试结果,除了其他正常的“非标签”特征(例如年龄、教育程度)之外,我还使用她过去的智商测试结果作为特征。我使用前 11 个月“过去的标签”一年的作为特征除了我正常的“非标签”功能之外。我预测12个月的标签。 显然,如果将过去的标签添加到特征中,预测第 12 个月的标签效果会更好。这是因为历史标签(如果有的话)当然比年龄和教育等普通栏目更能反映最终结果。

可能相关的 p.s.:

p.s.1:在自回归模型中,因变量的过去可以很好地用作自变量,请参阅:https://de.wikipedia.org/wiki/Regressionsanalysis https://de.wikipedia.org/wiki/Regressionsanalyse

p.s.2:在 ML 中,你也许可以尝试任何功能,然后选择给你最好结果的功能,有点像>好问题,尝试所有[功能选择方法],看看什么最有效https://machinelearningmastery.com/feature-selection-in-python-with-scikit-learn/>如果这些特征与结果相关,模型就会弄清楚如何使用它们。或者大多数模型都会。

p.s.3:也可能相关的是多重共线性问题:https://statisticsbyjim.com/regression/multicollinearity-in-regression-analysis/ https://statisticsbyjim.com/regression/multicollinearity-in-regression-analysis/尽管据说多重共线性对于预测来说不是问题: >多重共线性会影响系数和 p 值,但不会影响预测、预测精度和拟合优度统计数据。如果您的主要目标是进行预测,并且不需要了解每个自变量的作用,则不需要减少严重的多重共线性。


这是完全可能的,而且也是将过去的标签列作为特征包含在内的良好实践,但这取决于你的问题:你想解释一下标签吗only with other功能(故意),或者您想考虑other和你的过去的标签列获得预测的下一个标签,作为一种在不使用时间序列的情况下向模型添加时间序列字符的方式?

时间顺序并不重要,只要在转到预测集时所有此类每月列在时间上一致地移动相同的时间即可。模型并不关心是否只是同一列类型的一月和二月,对于模型来说,每个特征都是孤立的。

示例:您可以在各种特征上完美运行随机森林模型,包括它们过去的标签列,这些标签列一次又一次重复相同的列类型,仅代表不同的月份。任何月份的列都可以作为机器学习模型中的独立新特征来处理,唯一的重要性是将所有这些每月列移动完全相同的周期以达到一致的预测集。换句话说,当您从一月至六月的训练集转换为二月至七月的预测集时,显然您应该避免用三月列替换一月,当然,您必须用二月替换一月。

更新202301:模型名称为“walk-forward”

此模型设置称为“向前行走”,请参阅为什么过时验证没有变得更加普遍? https://towardsdatascience.com/why-isnt-out-of-time-validation-more-ubiquitous-7397098c4ab6--> 选项 3 几乎在页面底部。

我从评论中得到这个将时间序列数据拆分为训练/测试/验证集 https://stats.stackexchange.com/a/346958/287262.

下面仅显示训练集和测试集。它写的是“验证集”,但众所周知,这会到处混淆,请参阅测试数据集和验证数据集有什么区别? https://machinelearningmastery.com/difference-test-validation-datasets/,并且它必须是默认理解中的测试集。

因此,用正确的措辞来说,它是:

这应该是及时成为特征的标签的最佳模型。

“前进”模型中的验证集?

正如您在模型中看到的,由于测试数据不需要验证集must在时间上“向前”有偏差,这就是预测“时间上的一步”的整个想法,并且任何验证集都必须处于相同的有偏差的人工未来中 - 这在训练时已经是过去了,但是模型不知道这一点。 默认情况下,验证会在前进过程中进行,无需进行所需的数据集分割,此时模型一次又一次地学习以预测未来,并且输出指标可以相互比较。由于该模型是为了预测有时间偏差的未来,因此无需证明这一点或人造未来如何有偏差以及“被时间过度训练”。该模型的目的是在人工未来中进行验证并预测真实的未来仅作为最后一步。

但是,为什么不在这之上仍然有一个验证集,至少如果它只是一个小的 k 倍验证呢?如果测试集在较小的时间窗口内发生了一些强烈的变化,但这些变化仍然需要预测或至少暗示,但也不应该在每个训练步骤中过度训练,那么它就可以发挥作用。验证集将达到其中一些时间窗口,并可能显示模型是否能够足够好地处理它们。除 k 倍之外的任何其他方法都会过多地缩小模型的功效。在训练过程中从测试集中获取的信息越多,它对未来的预测就越少。

Wrap up:
尝试一下,如有疑问,请将验证放在一边,并在“前进”期间通过检查模型随时间的指标来判断模型。该模型与其他模型不同。

因此,最终,您可以(但不必)从测试集中拆分 k 折验证。那看起来像:

在预测了许多已知的未来之后,时间的最后一步就是对未知未来的预测。

这也回答了.

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

我是否可以/应该使用数据库中过去(例如每月)的标签列作为 ML 预测中的特征(无时间序列!)? 的相关文章

  • Matlab - 神经网络训练

    我正在努力创建一个具有反向传播的 2 层神经网络 神经网络应该从 20001x17 向量获取数据 该向量在每行中包含以下信息 前 16 个单元格包含从 0 到 15 的整数 它们充当变量 帮助我们确定在看到这些变量时要表达的 26 个字母中
  • 用面向对象的方法设置标签元素的属性

    标签有一个 for 属性 使它们指向某个输入字段 我需要使用 JQuery 更改此属性的值 以便我可以使用 label attr for targetName 但我还需要设置 className 所以我更喜欢使用 label attr fo
  • 预测误差指标的差距是什么:MAPE 和 WMAPE?

    我知道 MAPE 和 WMAPE 作为预测误差指标 它们有一些好处 但差距是什么 有人说 For MAPE Combinations with very small or zero volumes can cause large skew
  • 帮助--LibSVM 的准确率达到 100%?

    名义上这是一个好问题 但我很确定这是因为发生了一些有趣的事情 作为上下文 我正在研究面部表情 识别空间中的一个问题 因此获得 100 的准确度似乎令人难以置信 并不是说在大多数应用程序中这是合理的 我猜测数据集中存在一些一致的偏差 这使得
  • Sklearn 随机森林回归器的错误

    当尝试使用 y 数据拟合随机森林回归器模型时 如下所示 0 00000000e 00 1 36094276e 02 4 46608221e 03 8 72660888e 03 1 31375786e 04 1 73580193e 04 2
  • SpaCy 的相似度是如何计算的?

    初学者 NLP 问题在这里 similarity 方法如何运作 哇 spaCy 太棒了 它的tfidf模型可以更容易预处理 但w2v只有一行代码 token vector 惊人的 In his spaCy 上的 10 行教程 https g
  • 比较文本文档含义的最佳方法?

    我正在尝试找到使用人工智能和机器学习方法来比较两个文本文档的最佳方法 我使用了 TF IDF Cosine 相似度和其他相似度度量 但这会在单词 或 n gram 级别上比较文档 我正在寻找一种方法来比较meaning的文件 最好的方法是什
  • 使用我自己的训练示例训练 spaCy 现有的 POS 标记器

    我正在尝试在我自己的词典上训练现有的词性标注器 而不是从头开始 我不想创建一个 空模型 在spaCy的文档中 它说 加载您想要统计的模型 下一步是 使用add label方法将标签映射添加到标记器 但是 当我尝试加载英文小模型并添加标签图时
  • 没有循环匹配指定的签名和转换错误

    我是 python 和机器学习的初学者 当我尝试将数据放入 statsmodels formula api OLS fit 时 出现以下错误 回溯 最近一次调用最后一次 文件 第 47 行 位于 regressor OLS sm OLS y
  • 检查输入时出错:预期 conv2d_1_input 有 4 个维度,但得到形状为 (800, 1000) 的数组

    我正在尝试使用 CNN 进行情感分析 我的代码我的数据具有 1000 1000 形状 当我将数据传递给 convolution2D 时 它会抛出一个错误 我无法解决 我尝试了以下解决方案 但仍然面临问题 在构建 CNN 时 我收到 Kera
  • 朴素分类器 matlab

    在 matlab 中测试朴素分类器时 即使我在相同的样本数据上进行训练和测试 我也会得到不同的结果 我想知道我的代码是否正确 是否有人可以帮助解释这是为什么 dimensionality reduction columns 6 U S V
  • 使用 Keras、Tensorflow 进行多时间序列维度的 RNN 时间序列预测

    我正在尝试在某些时间序列集上运行 RNN LSTM 网络 值得一提的是 时间序列正在分类 我有大约 600 个不同的时间序列 每个序列都有 930 个带有特征的时间步长 我已将数据结构化为 numpy 3D 数组 其结构如下 X 666 o
  • Node2vec 的工作原理

    我一直在读关于node2vec https cs stanford edu jure pubs node2vec kdd16 pdf嵌入算法 我有点困惑它是如何工作的 作为参考 node2vec 由 p 和 q 参数化 并通过模拟来自节点的
  • Scikit-learn 具有使用“特征”的自定义评分函数

    我正在尝试使用一种名为 SERA 平方误差相关区域 的新指标作为本文中提到的不平衡回归的自定义评分函数 https link springer com article 10 1007 s10994 020 05900 9 https lin
  • Java机器学习库可以商用吗? [关闭]

    Closed 这个问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 有谁知道我可以将其用于商业产品的优秀 Java 机器学习库吗 不幸的是 Weka 和 Rapidmin
  • 以编程方式创建 UILabel

    我通过代码执行了以下操作 UILabel label UILabel alloc initWithFrame CGRectMake 40 70 300 50 label backgroundColor UIColor clearColor
  • R 中 svm 特征选择的示例

    我正在尝试使用 R 包在 SVM 中应用特征选择 例如递归特征选择 我已经安装了 Weka 它支持 LibSVM 中的特征选择 但我还没有找到任何 SVM 语法的示例或类似的东西 一个简短的例子会有很大的帮助 功能rfe in the ca
  • 具有多个输入的 Keras TimeDistributed 层

    我正在尝试使以下代码行正常工作 low encoder out TimeDistributed AutoregressiveDecoder X tf embeddings Where AutoregressiveDecoder是一个需要两个
  • 如何将 igraph 中的边标签与边分开?

    我想移动边缘标签的位置 使其不在其上方 这是一个小例子 g lt graph empty n 3 g lt graph c 1 2 3 2 1 3 directed T E g weight lt c 3 2 5 plot g edge l
  • PyTorch 中的连接张量

    我有一个张量叫做data形状的 128 4 150 150 其中 128 是批量大小 4 是通道数 最后 2 个维度是高度和宽度 我有另一个张量叫做fake形状的 128 1 150 150 我想放弃最后一个list array从第 2 维

随机推荐

  • [Excel][VBA] 如何在图表中画一条线?

    Please view this image to get my clearly question Sub Tester Dim s d d 4 18 2011 1 a bit of a hack since I could figure
  • 如何使 Flask/保持 Ajax HTTP 连接处于活动状态?

    我有一个 jQuery Ajax 调用 如下所示 tags keyup function event ajax url terms type POST contentType application json data JSON strin
  • JavaScript 中嵌套函数的需求和用途是什么

    我理解什么是嵌套函数 但我不明白为什么我们首先需要嵌套函数 JavaScript 中是否存在只能使用嵌套函数才能解决的问题 我看到的所有创建嵌套函数的示例都可以在无需在函数内部创建函数的情况下进行编码 并且结果相同 那么哪些问题需要创建嵌套
  • 尝试使用转义字符时 OCaml 正则表达式有问题

    我正在尝试使用 OCaml 为 C 的变体编写一个词法分析器 对于词法分析器 我需要匹配字符串 和 分别作为幂和或符号 这两个都是正则表达式中的特殊字符 当我尝试使用反斜杠转义它们时 没有任何变化 代码运行时就好像 仍然是行首而 仍然是 或
  • 如何在Eclipse中添加GitLab存储库?

    如何在Eclipse中添加Gitlab 这样我就可以从 GitLab 推送或获取 我是这方面的新手 请给予更多解释 一 准备工作 确保 Eclipse 中有 eGit 帮助 gt 安装详细信息 看到 Eclipse Git Team 提供者
  • 将路径数组转换为 UL 列表

    我的数据库中有一个表 其中包含我网站页面的各种路径 每条路径仅列出一次 我目前有一系列非常长且复杂的查询和 PHP 来提取所有这些并将数据重写到无序列表中 为我的网站创建菜单 似乎有一种相对简单的循环方法可以更有效地工作 但我似乎无法让任何
  • 什么是语义标记,为什么我要使用它?

    就像它说的那样 使用语义标记意味着您在页面中使用的 X HTML 代码包含描述其用途的元数据 例如 h2 包含员工姓名的内容可能会被标记class employee name 最初有人希望搜索引擎能够使用这些信息 但随着网络的发展 语义标记
  • Java RMI 与 Scala,这可能吗?

    Java RMI 远程方法调用 仅适用于 Java 到 Java On the Scala http www scala lang org 网站上我读到与 Java 的集成是无缝的 并且 Scala 程序在 Java VM 上运行 字节码与
  • Spring Cloud Kubernetes 支持 Spring Cloud LoadBalancer 吗?

    Spring Cloud Kubernetes 支持 Spring Cloud 负载均衡器吗 我要在 Kubernetes 上部署 Spring boot 应用程序 并通过以下链接使用功能区客户端执行客户端负载平衡https cloud s
  • 将java方法转换为C#:使用位移运算符将字节转换为整数

    我正在尝试将以下 2 个方法转换为 C 而 net 编译器不会向我抱怨 坦率地说 我只是不明白这两种方法是如何在幕后真正发挥作用的 所以这里的答案和解释会很好 public static int bytesToInt byte b0 byt
  • “npm install --global”和“--save”一起吗?

    我想知道在中使用是否有意义npm 安装一起命令 global 和 save 参数 例如 npm install gulp g s 据我所知 npm 系统文件夹中没有 package json 所以我想答案是 否 但我想消除所有疑问 The
  • 使用InstallUtil工具时出现BadImageFormatException错误

    我已经使用 NET 4 0 创建并编译了我的 Windows 服务 所以我转到 NET 4 0 文件夹并说这样的话 我将 bin 文件夹复制到 C 盘以缩短路径 InstallUtil exe C bin Debug MyTestServi
  • 主键和外键索引

    我有一个使用 GUI 工具创建的数据库 我注意到使用不一致KEY aka INDEX 定义 CREATE TABLE foo bar foo id int 10 unsigned NOT NULL bar id int 10 unsigne
  • 用户离开站点时显示消息

    我正在寻找一种方法 如果用户在仅查看一个页面后离开我的网站 则向用户显示一条消息 我找到了这个 http www pgrs net 2008 1 30 popup when leaving website http www pgrs net
  • IOError:[Errno 13]权限被拒绝:'/usr/local/bin/django-admin.py'

    为什么我会得到这个 IOError Errno 13 Permission denied usr local bin django admin py 我跑后pip install django 1 9这是一个问题吗 如果你在安装时看到这个
  • VBA 函数参数列表选择

    我想做类似以下的事情 Public Function myFunc vArg1 as string vArg2 as string vArg3 as A B C End Function 用户调用 vArg3 时会得到一个下拉列表 这类似于
  • 重新创建队列并重新连接到rabbitMQ

    涉及的组件 Spring Config 服务器 Spring AMQP RabbitMQ Spring Config 客户端 Goal 使用推送通知通知配置客户端刷新配置 RabbitMQ 实例 从 docker hub 中 我拉出了rab
  • 在 ExpressJS 中执行 res.send() 之前修改响应正文

    在我目前开发的应用程序中 它使用 Express 就我而言 我想在发送之前获得响应并对其进行修改 出于 JWT 的目的 在此应用程序中 有十几个端点 我不想创建自己的函数 例如sendAndSign 并替换res send 代码中随处可见
  • 与大型开发团队一起管理分发证书

    我是一个开发团队的一员 该团队的许多应用程序跨越多个业务部门和 iOS 团队 我们现在在管理分发证书时遇到很多麻烦 Apple 允许您在一个开发帐户上拥有 3 个分发证书 但无法对证书进行唯一命名 因此它们看起来都一样 不同证书的唯一识别信
  • 我是否可以/应该使用数据库中过去(例如每月)的标签列作为 ML 预测中的特征(无时间序列!)?

    问题 使用标签的过去作为特征是正常 平常 专业吗 尽管这是一个基本问题 但我找不到任何可靠的信息 编辑 请注意 这不是一个时间序列问题 我现在删除了时间序列标签并更改了问题 这个问题是关于随着时间的推移定期变化的功能 是的 但我们不会据此创