我正在尝试在 python 中的一些栅格数据上构建和实现回归树算法,但似乎找不到最好的方法。我将尝试解释我正在尝试做的事情:
我想要的输出是光栅图像,其值代表湖泊深度,称为 depth.tif。我有一系列光栅图像,每个图像代表不同 Landsat 波段的反射率值,例如 [B1.tif, B2.tif, ..., B7.tif],我想将其用作预测湖泊深度的自变量。
对于我的训练数据,我有一个已知湖深约 6000 点的 shapefile。为了创建一棵树,我为每个点提取了相应的反射率值,然后将其导出到表中。然后,我在机器学习软件 weka 中使用该表创建了一个包含 600 个分支的回归树,该树将根据一组反射率值预测深度值。但是因为树太大了,我不能手动用python写。我遇到了 python-weka-wrapper 模块,所以我可以在 python 中使用 weka,但被整个光栅部分卡住了。由于我的数据有一个额外的维度(如果转换为数组,每个自变量实际上是一组 ncolumns x nrows 值,而不是像所有示例中的一行值),我不知道它是否可以我想要的是。在 weka-python-wrapper 的所有示例中,
为了澄清,我想使用训练数据(现在是一个点形状文件/表,但如果有必要的话,可以转换为与反射率栅格相同大小的栅格,除了少数几个单元格中没有数据点我知道深度数据),以构建一个回归树,该树将使用反射率栅格来预测深度。然后我想将该树应用于同一组反射率栅格,以便在任何地方获得预测深度值的栅格。
我意识到这很令人困惑,我可能在解释方面做得不够好。除了尝试在 python 中实现 weka 之外,我对其他选项持开放态度,例如 sklearn,只要它们是开源的。我的问题是,我所描述的可以做到吗?我很确定它可以,因为它与图像分类非常相似,除了目标值(深度)是连续的而不是离散的类,但到目前为止我失败了。如果是这样,最好/最直接的方法是什么和/或有没有可能有帮助的例子?
谢谢