You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何将XGBoost回归的残差导出为单个栅格?

解决XGBoost回归残差计算及栅格导出问题

修复残差计算错误

"未定义sb对象"这类报错,本质是引用了未初始化的变量(比如模型对象名、数据框名拼写错误)。先确保模型训练流程正确,再按以下步骤计算残差:

  1. 从数据框分离自变量与因变量:
X <- df[, c("pop", "tirs", "agbh")]
y_true <- df$ntl
  1. 用训练好的模型生成预测值并计算残差:
y_pred <- predict(xgb_model, newdata = X)
residuals <- y_true - y_pred
# 将残差绑定回原数据框
df$residuals <- residuals

将残差导出为栅格

要生成带空间参考的残差栅格,必须保留原始栅格的像元索引或空间坐标,以下是完整流程:

前提:确保数据框包含像元索引

如果你的数据框是从栅格提取而来,提取时需保留像元ID:

# 加载原始栅格堆栈
raster_stack <- stack("pop.tif", "tirs.tif", "agbh.tif", "ntl.tif")
# 提取像元值及对应ID
df <- as.data.frame(extract(raster_stack, 1:ncell(raster_stack), cellnumbers = TRUE))
# 重命名列匹配你的数据集
colnames(df) <- c("cell_id", "pop", "tirs", "agbh", "ntl")

创建并导出残差栅格

  1. 选取任意原始栅格作为模板(保证空间参数一致):
template_raster <- raster_stack$pop
  1. 初始化残差栅格并填充值:
residual_raster <- template_raster
# 将残差赋值到对应像元位置
residual_raster[df$cell_id] <- df$residuals
  1. 导出为GeoTIFF格式:
writeRaster(residual_raster, filename = "xgb_residuals.tif", format = "GTiff", overwrite = TRUE)

完整可运行示例

library(caret)
library(xgboost)
library(raster)

# 加载数据(替换为你的数据路径)
df <- read.csv("your_dataset.csv")
# 加载原始栅格堆栈(用于生成栅格模板)
raster_stack <- stack("pop.tif", "tirs.tif", "agbh.tif", "ntl.tif")

# 用最优参数训练XGBoost回归模型
train_control <- trainControl(method = "cv", number = 5)
xgb_optimal_grid <- expand.grid(
  nrounds = 150,  # 替换为你的最优参数
  max_depth = 5,
  eta = 0.08,
  gamma = 0.1,
  colsample_bytree = 0.7,
  min_child_weight = 2,
  subsample = 0.9
)

xgb_model <- train(
  x = df[, c("pop", "tirs", "agbh")],
  y = df$ntl,
  method = "xgbTree",
  trControl = train_control,
  tuneGrid = xgb_optimal_grid,
  metric = "RMSE"
)

# 计算残差
df$y_pred <- predict(xgb_model, newdata = df[, c("pop", "tirs", "agbh")])
df$residuals <- df$ntl - df$y_pred

# 生成并导出残差栅格
template <- raster_stack$pop
residual_raster <- template
residual_raster[df$cell_id] <- df$residuals

writeRaster(residual_raster, "xgb_residuals.tif", format = "GTiff", overwrite = TRUE)

内容的提问来源于stack exchange,提问作者Nikos

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.31 21:25:21