空间统计模型文件介绍

空间统计模型 (.ssm) 文件是一个文件,其中包含空间关系建模工具集中多个工具执行的分析的训练模型、属性和模型诊断。 您可以使用空间统计模型文件来使用新数据集进行预测,并安全地与可以将其用于其数据的其他人共享。 例如,野生动物生态学家可以收集濒危物种已知位置的实地数据,并建立模型来预测该物种在其研究区域内的其他可能位置。 然后他们可以与其他生态学家共享 .ssm 文件,这些生态学家可以使用它来预测该物种在他们自己研究区域内的位置。 由于用于训练模型的数据未存储在 .ssm 文件中,因此通过共享模型文件不会泄露高度敏感的濒危物种原始位置。

您可以使用以下工具来管理和预测 .ssm 文件:

  • 设置空间统计模型文件属性 - 设置 .ssm 文件的属性,包括变量描述和单位。 支持解释模型的变量及其单位,以便其他人可以适当地使用该文件。 例如,可以指定一个解释性距离要素以表示到医院的距离(以美国英里为单位测量),以便其他人了解该模型仅用于特定类型的数据。
  • 描述空间统计模型文件 - 查看 .ssm 文件的属性,包括分析方法、数据集名称、属性和模型诊断。 这使您可以了解每个变量的含义,以便在使用该文件对新数据进行预测时可以正确匹配所有变量、数据集和单位。
  • 使用空间统计模型文件进行预测 - 使用 .ssm 文件对新数据集进行预测。 您必须将 .ssm 文件中的每个变量或数据集与具有相同类型和单位的新数据集匹配。 例如,模型文件中的解释变量可能需要温度值栅格(以摄氏度为单位测量)。

您可以使用以下工具中的输出训练模型文件参数创建 .ssm 文件:

空间统计模型文件工作流程

示例应用

以下场景描述了 .ssm 文件可能有用的分析工作流程。

场景一:复用模型减少模型训练时间

如果您使用大型数据集执行分析建模,训练过程可能非常耗时并且需要昂贵的计算机硬件。 在许多情况下,您还需要多次训练模型以微调设置。 选择可产生最佳结果的模型设置后,之后则无需再对用于预测的每个数据集重复此训练过程。 使用初始训练结果创建 .ssm 文件,则可以将其与所有未来数据集一起重复使用,而无需再次训练模型。 使用相同的训练模型还可以通过使用相同的基础预测模型来确保对所有未来数据集的预测的一致性。

场景二:将训练好的模型文件共享给他人

您可以与他人共享 .ssm 文件,以便其他人将此模型与他们的数据一起使用。 由于无法直接从模型文件访问用于创建模型的数据,因此您可以在不泄露用于训练它的敏感数据的情况下共享它。 在共享模型之前,您可以使用设置空间统计模型属性工具添加变量描述和变量单位。 这对其他人很有用,这样他们就可以知道在对文件进行预测时要使用哪些类型的数据和单位。 收到模型文件后,接收者可以使用描述空间统计模型文件工具查看属性和模型诊断,然后使用使用空间统计模型文件工具预测其数据。

场景三:流数据服务自动化分析

在处理定期更新的数据(例如野火地点的流数据服务)时,使用 .ssm 文件可以在新数据可用时实现简单的自动化。 每次更新数据时,您都可以使用更新后的数据在使用空间统计模型文件预测工具中快速重用 .ssm 文件。

.ssm 文件的内容

.ssm 文件存储有关模型的综合信息。 除了由设置空间统计模型属性工具创建的变量描述和单位外,.ssm 文件还包含模型诊断以调查模型的准确性和可靠性。

对于广义线性回归工具,.ssm 文件包括回归系数和诊断,例如 AICc、R2、调整后的 R2、联合 F 统计量和联合 Wald 统计量。 有关模型诊断的完整列表和说明,请参阅解释消息诊断部分

对于基于森林的分类和回归工具,该 .ssm 文件包括决策树、模型特征、验证诊断、最高变量重要性和解释变量范围诊断。 不包括模型袋外误差 (OOB) 错误,因为此诊断与进行新预测无关,并且会显著增加 .ssm 文件的大小。 有关详细信息,请参阅输出消息和诊断部分。

对于仅存在预测 (MaxEnt) 工具,.ssm 文件包含有关训练模型、模型特征和摘要、回归系数、分类摘要(如果任何解释变量是分类变量)以及训练数据的解释变量范围诊断的重要信息。 不包括交叉验证结果以及存在和背景点的计数,因为可能会使用这些数据对用于训练模型的敏感数据进行逆向工程,例如濒危物种的位置。 有关详细信息,请参阅地理处理消息部分。

最佳做法

创建和使用 .ssm 文件时应考虑以下事项:

  • 为使模型更透明且对共享更有意义,您可以使用设置空间统计模型属性工具来指定每个变量的描述和单位。 变量及其使用的记录对于科学准确性和可重复性很重要。
  • 尽管 .ssm 文件不直接打包训练数据(仅训练结果)并且不存储最敏感的模型诊断信息,但数据隐私和安全性仍然是一个潜在的问题。 一些复杂的模型诊断(例如混淆矩阵)可能用于对某些原始训练数据进行逆向工程。
  • 使用其他人创建的 .ssm 文件时,您应该使用描述空间统计模型文件工具调查属性。 变量描述和单位尤为重要,您可能需要手动将数据转换为模型假定的单位,然后再将其用于预测。 例如,您可能需要将温度值从华氏度转换为摄氏度,以使预测准确。

HDF5 数据模型

.ssm 文件使用层次数据格式版本 5 (HDF5) 数据模型来存储模型结果和元数据。 HDF5 具有以下优点:

  • HDF5 将大数据存储在可以高度压缩的组织好的结构中。 例如,它可以将使用 600,000 个要素和 10,000 棵树训练的基于森林的回归模型存储在一个不到 20 GB 的文件中。 效率较低的数据模型很难将如此复杂的模型结果存储在可以方便共享的传统文件中。
  • HDF5 是一种自描述数据模型,这意味着您可以将元数据直接附加到数据集,而不必将数据和元数据分离到不同的文件中。 这种同步功能使 HDF5 数据透明且可访问,而无需管理必须保存在一起的多个文件。
  • HDF5 允许高性能的数据读写。 例如,在使用空间统计工具时选择创建 .ssm 文件不会显著增加工具的运行时间。 当使用模型对新数据进行预测时,可以快速访问模型以最大限度地减少开销。

了解 HDF5 的详细信息

除了设置空间统计模型文件属性描述空间统计模型文件使用空间统计模型文件工具进行预测外,您还可以使用标准 HDF5 库检查 .ssm 文件。

以下 Python 代码示例显示了如何使用 h5py 包检查和打印 .ssm 文件的属性:


# Import necessary packages
import numpy as np
import h5py

spatialStatsModel = h5py.File(r'C:/MyData/MySSMFile.ssm', 'r')

# Get a list of keys of the variables:
ls = list(spatialStatsModel.keys())

# Get the attributes of the model:
attrs = list(spatialStatsModel.attrs)

# Print all the datasets and attributes
print("The variables in the model:")
for k in ls:
     print("{}---{}, --- {}".format(k, spatialStatsModel[k][()],
                             type(spatialStatsModel[k][()])))

print("The attributes in the model:")
for k in attrs:
     print("{}---{}, --- {}".format(k, spatialStatsModel.attrs.get(k),
                             type(spatialStatsModel.attrs.get(k))))

# Close the .ssm file
spatialStatsModel.close