谷歌地球引擎的不确定性量化使用保形预测对 Google 地球引擎中的分类和回归任务进行不确定性量化。使用时间序列卫星数据(哨兵-1、哨兵-2 L1C 和/或哨兵-2 L2A)和谷歌地球引擎绘制入侵树种地图的附加 8 步工作流程。
本 Github 代码库包含研究论文 "使用保形预测对地球观测中的概率机器学习进行不确定性量化 "的代码。它包括使用保形预测量化不确定性、为多个时间步长和空间交叉验证创建填隙无云图像合成的功能。
不确定性量化(UQ)提供了有关预测质量的信息,可以对数据集进行比较和整合。共形预测是目前唯一能提供有效覆盖范围内像素不确定性信息的 UQ 框架(例如,如果指定置信度为 0.9,alpha = 0.1,预测区域将包含 90% 可能性的实际值)。
支持 GEE-Native 共形分类器和回归器
支持 GEE-JS 和 GEE-Python API
创建哨兵-2 的无云图像合成和哨兵-1 的无间隙合成。
举例说明端到端的工作流程,包括可视化、基于 API 的导入和导出、附加地形和坐标变换变量的协同计算、模型拟合和推理。
空间交叉验证。
在使用人工智能(AI)系统时,可能会出现不可靠的预测,给下游应用带来负面影响,尤其是在用于决策时。共形预测为不确定性量化提供了一个与模型无关的框架,可应用于任何数据集,无论其分布如何,均可进行事后分析。与其他像素级不确定性量化方法不同的是,共形预测无需访问底层模型和训练数据集,即可同时提供统计有效且信息丰富的预测区域,同时保持计算效率。为了满足在进行点预测的同时报告不确定性的日益增长的需求,我们提请人们注意保形预测在地球观测(EO)应用领域的前景。为了实现这一目标,我们评估了 EO 领域不确定性量化的现状,并发现在已审查的谷歌地球引擎(GEE)数据集中,只有 20% 的数据集包含一定程度的不确定性信息,而且方法普遍不可靠。接下来,我们将介绍可无缝集成到现有 GEE 预测建模工作流程中的模块,并演示这些工具在从局部到全球尺度的数据集中的应用,包括动态世界和全球生态系统动态调查 (GEDI) 数据集。这些案例研究包括回归和分类任务,既有传统的工作流程,也有基于深度学习的工作流程。随后,我们讨论了在 EO 中使用保形预测所带来的机遇。我们预计,随着保形预测器(如本文提供的预测器)的易用性越来越高,将推动在 EO 中更广泛地采用严格的不确定性量化,从而提高操作监测和决策等用途的可靠性。
总结三个案例研究的工作流程,包括使用谷歌地球引擎(GEE)JavaScript 代码编辑器 API(蓝色)和使用谷歌地球引擎(GEE)JavaScript 代码编辑器 API(蓝色)和 GEE Python API 与 Python MAPIE 软件包(绿色)进行不确定性量化。GEE Python API 与 Python MAPIE 软件包(绿松石色)。
a) 使用动态世界进行土地覆被分类,随机分割(80:20)校准样本和测试样本。使用动态世界进行土地覆被分类,校准和测试样本随机分配(80:20)。来自谷歌提供的 409 个样本外验证样本。每个b) 使用 GEDI 估算树冠高度按国家随机划分为训练样本(>5,000 万点)、测试样本(>3,100 万点)和校准样本(>3,200 万点点)样本(65:20:15)。所考虑的国家仅限于c) 入侵树种分类随机划分(65:20:15)。
谷歌地球引擎(GEE)目录和 GEE 社区目录中的每个评估数据集(n = 241)的分类示意图。只有使用机器学习的数据集只考虑了 GEE 主目录中使用机器学习的数据集。对于社区的所有数据集。考虑。五项研究使用了一种以上的 UQ 方法。
在数据驱动的决策过程中使用地球观测数据集为描述、理解和保护地球做出了巨大贡献。
对地球的特征描述、理解和保护做出了巨大贡献。然而,我们对这些贡献所涉及的国家级到全球级数据集进行的研究。然而,我们对这些贡献所涉及的国家级到全球级数据集的研究表明,这些数据集缺乏 UQ 以及有效性保证,也缺乏能够同时提供粒度数据的技术。能同时提供像素级不确定性信息的技术。我们认为通过将保形预测纳入人工智能系统,UQ 将极大地增强 EO 数据在业务监测系统、政策制定和监管报告中的作用,加快在实现这一目标方面取得进展。监管报告中的作用,加快实现国际行星目标和指标的进程。
复制三个指定案例研究和相应图表所需的 Python 源代码和相应的图表可从以下 GitHub 存储库中获取:
python代码
GEE-Python 保形分类器的使用方式与 JavaScript 模块类似,必须通过克隆 github repo 加载(如下所示)
# Install and import packages
%pip install watermark geemap geeml -q
!git clone https://github.com/Geethen/Invasive_Species_Mapping.git
import sys
sys.path.insert(0,'/content/Invasive_Species_Mapping/code')
# Authenticate GEE
ee.Authenticate()
# Initializ