我有一个“年份”变量,但我不知道哪个是 ML 模型处理它的最佳方法,因为它是一个数值变量,给出了一些序列。我应该将其视为分类变量吗?
提前致谢,
我有一个“年份”变量,但我不知道哪个是 ML 模型处理它的最佳方法,因为它是一个数值变量,给出了一些序列。我应该将其视为分类变量吗?
提前致谢,
首先,我建议您分析数据。你真的需要过年吗?你研究过与其他变量的相关性吗?我的意思是,在创建任何模型之前研究您打算创建的模型的领域。
您可以将年份视为分类变量,并使用一些技术(例如 One Hot Ecoding 或 Dummy Variables)以获得更好的性能。您还可以对年份进行归一化,将它们视为介于 0 和 1 之间的数值变量。
最重要的是要知道我们将要做什么来充分利用信息或数据。
年份或任何时间维度很难包含在 ML 模型中,因为它引出了一个问题:
我们是否在查看时间序列?
时间序列的行为与未按顺序排序的数据完全不同,我们必须对它们进行不同的建模。
您可以将年份/时间视为任何其他维度,并将其用作基于回归的模型中的预测变量。但这并不理想!
而是尝试使用适合时间序列分析的模型,例如 ARIMA,甚至是深度学习模型,例如 LTSTM。
处理此问题的直接方法是基于时间序列模型(如 ARIMA)对简单预测进行建模,然后在顶部构建第二个模型,该模型接受所有其他预测变量并尝试从时间序列模型中预测残差.
您的问题陈述不是很清楚,但从我所阅读的内容看来,您可以使用Year 作为索引来进行时间序列验证拆分。你可以在这里阅读一些关于它的信息,并使用Alan Turing Institute 或经典scikit learn的sktime实现。
这将允许您评估模型在生产环境中的性能,因为鉴于您的问题的性质(真实状态),您将希望预测下一个给定年份的价格。
因此,与其将其用作特征,不如按其索引然后拆分。
如果您有兴趣将其用作一项功能,您可以计算从第一年开始的经过时间,这将有助于模型查看随时间推移是否存在趋势。或者作为分类并进行目标编码。