我想使用随机森林构建物种分布模型:
我的训练数据包括971个物种存在记录(71)/缺失(900)和系统采样点(4 * 4m,随机起点)的三个环境变量。
培训数据:
str(train)
'data.frame': 971 obs. of 4 variables:
$ presence: num 0 0 0 0 0 0 0 0 0 0 ...
$ v1 : num 0.18 0.18 0.24 0.24 0.75 0.7 0.27 0 0.29 0.77 ...
$ v2 : num 10 110 19 99 97 71 64 45 54 74 ...
$ v3 : Factor w/ 3 levels "cat1","cat2",..: 1 1 1 1 2 2 2 3 1 2 ...
模型:
model <- randomForest(as.factor(presence) ~ v1 + v2 + v3, data = train)
我的测试数据(测试)由1019个相同变量的记录组成,包括它们在B位置的坐标。此外,我已经在B点映射了物种的出现。所以我在该数据上应用了模型:
prediction <- predict(model, newdata = test, type="prob")
我设置type="prob"
因为我想预测物种的发生概率。
我生成并希望针对观察到的事件进行测试的数据如下所示:
str(prediction_data)
'data.frame': 1019 obs. of 16 variables:
$ x : num 180574 180575 180576 180576 180576 ...
$ y : num 226954 226953 226951 226953 226955 ...
$ v1 : num 0.1131 0.5996 0.7187 0.5885 0.0611 ...
$ v2 : num 10 110 19 99 97 71 64 45 54 74 ...
$ v3 : int 1 1 1 1 1 1 1 1 2 1 ...
$ occurrence_prob : num 0.3252 0.1826 0.0909 0.1014 0.4195 ...
现在我怀疑的是,考虑不平衡的训练数据是否有意义,并试图通过使用参数来提高预测的灵敏度。在模型构建函数中sampsize=(c(71,71)) or classwt = c(0.5, 0.5)
,最后我还想设置一个概率阈值,通过分析接收者操作曲线来对物种存在进行分类?!
这会改善模型的灵敏度,是多余的还是会让事情变得更糟?
我真的很感激任何想法,建议,意见,提示。不幸的是,我不认识任何人,我可以亲自讨论我的疑惑。谢谢!