训练集和测试集必须与预测集不同吗?

2024-04-19 08:19:28 发布

您现在位置:Python中文网/ 问答频道 /正文

我对ML比较陌生,我知道一个一般规则,即我们应该只在测试集上测试一个经过训练的分类器。你知道吗

但是现在问题来了:当我有一个已经训练和测试过的分类器时,我能把它应用到作为训练和测试集基础的同一个数据集吗?还是我必须将其应用于不同于训练+测试集的新预测集?你知道吗

如果我预测一个时间序列的一个标签列,我是否必须将training+测试集的所有特征(不仅是时间序列标签列的过去的列,还有所有其他正常特征)移回一个时间点,在这个时间点上数据与预测集没有“知识”截取?你知道吗

然后,我将对分类器进行训练并测试n个月前转移到过去的特征,对未转移和最近的标签列进行评分,然后根据最近的、未转移的特征进行预测。移位和未移位特征的列数相同,我通过将移位特征的列名指定给未移位特征来对齐移位和未移位特征。你知道吗


Tags: 数据分类器规则training时间序列特征标签
1条回答
网友
1楼 · 发布于 2024-04-19 08:19:28

我认为你混淆了一些概念,所以我将试着对监督学习作一个一般性的解释。你知道吗

  • 训练集是算法学习的基础。将其拆分为X(特征)和Y(目标变量)。
  • 测试集是用于为模型评分的集,它必须包含不在训练集中的数据。这意味着测试集也有X和Y(意味着您知道目标的值)。所发生的是,你根据X预测f(Y),并将其与你的Y进行比较,看看你的预测有多好
  • 预测集只是新数据!这意味着通常你没有目标,因为监督学习的重点是预测它。你将只拥有你的X(特征),你将预测f(X)(你对目标Y的估计)并将其用于你需要的任何东西。

所以,测试集最终只是一个预测集,你有一个目标来比较你的估计。

对于时间序列来说,它有点复杂,因为特征(X)通常是对目标变量(Y)的过去数据的转换。例如,如果您想预测今天的SP500价格,您可能希望使用最近30天的平均值作为一个特性。这意味着,对于每一个新的一天,您都需要在过去的几天中重新计算此功能。
不过,总的来说,如果您是ML新手,我建议您从非时间序列数据开始,因为时间序列在特性工程和数据管理方面要困难得多,而且很容易出错。你知道吗

相关问题 更多 >