预测未来 30 年的平均气温

数据挖掘 Python scikit-学习 线性回归
2022-03-13 07:04:38

目标:我想预测未来 30 年的平均温度。

Q1:什么类型的数据集适合这个(它应该包含哪些列)

Q2:平均温度的自变量是什么?

Q3:假设我用 30% 的数据训练了模型。这是否意味着预测的 30% 是未来 30 年?还是现有数据?如果不是,我如何使用经过训练的模型预测未来 30 年的平均温度?

2个回答

你有这个问题起源的背景吗?你似乎混淆了一些事情。

Q1:取决于你有什么可用的数据集,或者你能找到吗?它可以只是年份和一年的平均温度,然后您将应用回归或 ARIMA 模型。但也许你有各个国家和地区的平均温度,然后你可以预测每个地区的平均温度。

Q2:同样,取决于您拥有的数据集和列。典型的自变量是其变化不影响温度的变量。这些通常与温度的相关性接近 0。

Q3:根据数据集,你可能根本不应该使用机器学习。也许回归/ARIMA 就足够了。和回归来预测你不应该对部分数据做的值。

当您使用 30% 训练模型时,您使用 70% 来验证或对模型进行评分。

您的预测可能只是对数据集拟合曲线的外推。您还有一些关于变化 (R2) 的信息,可以帮助给出概率分数。典型的结果可能是温度将为 Tx +/- dTx 的 95% 置信区间。

在较高的层面上,您需要找到与您需要预测(平均温度)以及影响它的任何因素相匹配的历史数据。因此,您需要成为一名领域专家,可以访问一位专家,或者查找数据并进行探索性分析,以自己找出哪些因素是重要的。

如果您使用 30% 来训练模型,那么您将保留 70% 来测试它。由于您正在尝试预测时间序列,因此您通常希望计算模型在未来的得分 - 这意味着您使用前 30% 的历史数据训练模型并在最后 70% 上对其进行测试 - 这可能赢了不好用。在您的情况下,假设您正在使用 100 年的年平均温度进行训练。这意味着你要训练前 30 年的数据——从 70 年前开始,这似乎行不通。另一种方法是块交叉验证,您可以将数据分成足够长的块以最小化自相关的影响,然后将块分配给测试和训练。我发现这种方法非常有效。