空间数据的数据分区

机器算法验证 机器学习 随机森林 空间的 分区 地质统计学
2022-02-03 16:42:44

我正在构建随机森林的不同配置,以研究井设计变量和位置对美国给定区域内页岩油井第一年产量的影响。在不同的模型配置中,我以不同的方式控制位置,以显示当模型的空间分辨率不足时,井设计变量的影响可能会发生偏差。在这里,位置充当了地质特性/储层质量的代表。

我有一个约 4500 口井的数据集,有 6 个变量。响应是第一年的产量,预测变量是除经度和纬度之外的三个不同的井设计变量。

在处理空间数据时,我一直在研究和思考数据分区的主题。例如,在 Lovelace 等人的“Geocomputation with R”这一章中。( https://geocompr.robinlovelace.net/spatial-cv.html ),他们强调了空间交叉验证的重要性:“随机分割空间数据会导致训练点在空间中与测试点相邻。由于空间在这种情况下,自相关、测试和训练数据集不会是独立的,结果是 CV 无法检测到可能的过度拟合。空间 CV 缓解了这个问题,是本章的中心主题。

此外,它们说明了空间分区与随机分区的不同之处: 在此处输入图像描述

...并显示一个示例,说明如果空间数据被随机拆分(这是分类问题的 AUC 差异),结果可能如何产生正偏差: 不同CV方案下的AUC

关键是由于空间自相关(近处的事物比远处的事物更相关),如果不考虑观察值的接近性,您最终会在训练集中得到一些与测试集中的观察值非常相似的观察值拆分数据。这可能会导致集合之间的“信息泄漏”。

我的问题是,这种信息泄露一定会造成问题吗?我认为这和观察的相似性也可以代表手头的问题,因此使性能评估更能代表模型的实际应用。我知道,如果应该将空间上不相交的测试集用于预测一个全新的和遥远的区域,它会对您的模型产生更具代表性的性能评估。但是,如果您想评估模型对近距和远距位置混合的预测性能,随机分割不是更合理吗?

在这里希望大家多多指教,谢谢!

编辑:在 Twitter 上与上述书籍的作者联系后,建议我查看 Hanna Meyer 的以下讲座:https ://www.youtube.com/watch?v=mkHlmYEzsVQ 。她区分了“数据再现”和“数据预测”(视频中大约 16:40)。这是我最初写这篇文章时想到的事情;我并没有真正应用这些模型进行预测,而是使用预测模型作为调查影响井生产力的因素的工具。看完视频,我更加确信这个应用更像是“数据再现”,随机分区似乎还可以,而不是“数据预测”。

3个回答

看完视频,我更加确信这个应用更像是“数据再现”,随机分区就可以了,而不是“数据预测”。

对我来说,你用“如果我用它来复制数据,没关系”来证明你选择对空间 ML 模型使用随机 CV 是合理的。

  • 拟合模型的首要目标是对看不见的数据进行预测。
  • 模型性能评估的首要目标是对其在各种预测场景中的性能进行概括概述。因为只有有限数量的可用数据,人们试图通过 CV 估计性能来充分利用它。

空间建模中的预测场景总是伴随着这样一个事实,即预测集与训练数据在空间上距离很远(距离不同)。当这种情况发生时,你只是用通过非空间 (NSP) CV 估计的模型性能来欺骗自己。

如果您通过“我只想重现数据”来证明您选择在空间模型场景中使用随机 CV 是合理的,那么您根本不需要进行 CV/估计性能。在这种情况下,您可以拟合模型并尝试解释它(如果可能的话)。

具有随机分区的空间 CV 有时与在相同数据上训练和测试模型非常相似(即在“train”上训练和在“train”上进行测试),因为由于所选的分区,这两个集合非常相似。请记住,分区是您在这里自由选择的,很可能是因为它是 ML 中最流行的方案。虽然它对于非空间数据非常好(因为没有空间关系之类的东西),但实际上它完全不适合空间数据。报告模型的性能较差是没有问题的。并且由于空间数据专用分区策略的可用性(至少在 R 中,请参见123) 也没有任何方法可以轻松应用它(即使编程语言中实现的不可用永远不应该成为使用无效实现的理由)。

我想不出一个正当的理由,为什么人们甚至会开始尝试证明在某些情况下非空间分区方法的正确性,并有可能在科学研究/报告中报告它。为了更好的性能价值,尝试这样做对我来说就像是“故意作弊”。我们正在努力让空间建模社区意识到需要对 CV 使用空间分区方法。我想确保在这里遇到这个问题的人们明白,在某些情况下使用随机 CV 不是一种选择,并且它的结果对于任何类型的报告都是完全无效的。

这同样适用于优化超参数:如果您使用 CV 执行此操作并使用随机分区,则您有可能在外循环中选择非最佳参数进行性能估计。虽然使用空间/非空间 CV 进行调整的差异可能不如性能估计的差异那么高,但它们只会在您的研究设计中引入另一个潜在的偏差 ( Schratz et al. 2019 )。

好问题,我完全同意 Roozbeh。

当您的训练数据中存在空间自相关时,空间交叉验证是相关的,这通常发生在您的数据在空间中聚类时。如果您想知道您的模型的泛化能力如何(即在训练位置之外进行预测),您将需要通过一种空间验证来评估这一点。

但是遵循 Roozbeh 的警告:即使您对进行空间预测不感兴趣,但“仅”对可变重要性感兴趣,您也应该小心空间依赖性。如果数据不是独立的,“默认”变量重要性会告诉您变量对“再现”训练数据的重要性。如果您的数据是聚类的,那么纬度和经度等变量肯定非常适合作为再现训练数据的预测因子。但这并不意味着它们与解释空间模式有任何相关性。如果您想知道变量是否与独立位置相关,您可能应该评估“空间变量重要性”。我们在 R 包“CAST”( j.envsoft.2017.12.001),并且在 Roozbeh 提到的论文 ( j.ecolmodel.2019.108815 ) 中也描述了这个想法。

非常有趣的问题!当您认为您的性能可能会受到空间自相关的影响时,空间/块交叉验证的重要性就显现出来了。这完全取决于你的学习目的。如果您有兴趣仅针对那些特定位置或相同邻近范围内的新位置评估模型的性能,则传统的随机 CV 可能仍然是一个合理的选择。

一般来说,这类建模的目的是想出一个不仅性能好而且泛化好的模型。因为我们希望模型的结果对我们的数据是正确的,并且总体上仍然是合理的(或对于其他数据集或位置)。在这种情况下,空间自相关会导致对模型结果的置信度过高。

我只是在这里发出警告,因为您使用空间坐标作为预测变量,当您使用随机 CV 时,该模型可能会让您对这些变量的高度重要性产生错误的认识,请查看 Meyer 等人,2019 生态建模作为一个好的例如。

干杯,

鲁兹贝·瓦拉维