factor java_使用randomForest,Caret和factor变量预测栅格时出错
我试图用randomForest和插入符号包预测栅格图层,但在引入因子变量时失败 . 没有因素,一切正常,但一旦我带来一个因素,我得到错误:
Error in predict.randomForest(modelFit, newdata) : Type of predictors in new data do not match that of the training data.
我在下面创建了一些示例代码来完成他的过程 . 我提出了透明度的几个步骤并提供了一个工作示例 .
(To skip the set-up code, jump from here on down...)
首先是创建样本数据,拟合RF模型,以及预测涉及NO因素的栅格 . 一切正常 .
# simulate data
x1p
x2p
x1a
x2a
x1
x2
y
d
# RF Classification on data with no factors... works fine
require(randomForest)
dRF
dRF$y
levels = c("present", "absent"))
rfFit
# Create sample Rasters
require(raster)
r1
values(r1)
values(r2)
s
names(s)
# raster::predict() with no factors, works fine.
model
spplot(model)
接下来的步骤是创建一个因子变量,以添加到训练数据并创建具有预测匹配值的栅格 . 请注意,栅格是常规的旧整数,而不是 as.factor 栅格 . 一切都还行不错......
# Create factor variable
x3p
x3a
x3
dFac
dFac$x3
dFac
# RF model with factors, works fine
rfFit2
# Create new raster, but not as.factor()
r3
values(r3)
s2
names(s2)
s2
# RF, raster::predict() from fit with factor
f
model2
progress='text', factors=f, index=1:2)
spplot(model2) # works fine
完成上述步骤后,我现在有了一个RF模型,该模型使用包含因子变量的数据进行训练,并在包含类似值的整数栅格的栅格砖上进行预测 . 这是我的最终目标,但我希望能够通过 caret 包工作流程来实现 . 下面我介绍 caret::train() 没有因素,一切运作良好 .
# RF with Caret and NO factors
require(caret)
rf_ctrl
allowParallel=FALSE, verboseIter=TRUE,
savePredictions=TRUE, classProbs=TRUE)
cFit1
tuneLength=4, trControl = rf_ctrl, importance = TRUE)
model3
progress='text', factors=f, index=1:2)
spplot(model3) # works with caret and NO factors
(...to here. This is where the issues begin)
事情就是失败的地方 . 插入符号训练的Rf模型与因子变量有效,但在 raster::predict() 失败 .
# RF with Caret and FACTORS
rf_ctrl2
allowParallel=FALSE, verboseIter=TRUE,
savePredictions=TRUE, classProbs=TRUE)
cFit2
tuneLength=4, trControl = rf_ctrl2, importance = TRUE)
model4
progress='text', factors=f, index=1:2)
# FAIL: "Type of predictors in new data do not match that of the training data."
尝试与上面相同,但不是使用与因子级别具有相同值的整数栅格,而是使用 as.factor() 并指定级别将栅格转换为因子 . 这也失败了 .
#trying with raster as.factor()
r3f
values(r3f)
r3f
f
f$code
levels(r3f)
s2f
names(s2f)
s2f
model4f
progress='text', factors=f, index=1:2)
# FAIL "Type of predictors in new data do not match that of the training data."
上述步骤的错误和进展清楚地表明我的方法存在问题, caret:train() 与 raster::predict() . 我已经完成了调试(尽我所能)并解决了我注意到的问题,但没有吸烟枪 .
任何和所有的帮助将不胜感激 . 谢谢!
Added: 我继续乱搞,意识到如果 caret::train() 中的模型是用公式形式写的,它就可以工作 . 查看模型对象的结构,很容易看出为因子变量创建了对比 . 我想这也意味着 raster::predict() 认识到了对比 . 这很好,但是因为我的方法没有设置为使用基于公式的预测,这是一个无赖 . 任何额外的帮助仍然受到赞赏 .
#with Caret WITH FACTORS as model formula!
rf_ctrl3
allowParallel=FALSE, verboseIter=TRUE, savePredictions=TRUE, classProbs=TRUE)
cFit3
tuneLength=4, trControl = rf_ctrl2, importance = TRUE)
model5
spplot(model5)
factor java_使用randomForest,Caret和factor变量预测栅格时出错相关推荐
- 【Python基础】当变量有值时,为什么会出现UnboundLocalError?
先来看两段代码. # 代码段一 x = 10def bar():print(x)bar() # 输出 10 # 代码段二 x = 10def foo():print(x)x += 1foo() # 输 ...
- python 变量赋值是引用和拷贝_Python 中变量赋值传递时的引用和拷贝
曾经看到这样一个问题,一个字典中的元素是列表,将这个列表元素赋值给一个变量,然后修改这个列表中元素的值,结果发现,字典中那个列表也同样修改了.那个问题如下: dict = {'a':[1,2,3,4, ...
- C语言结构体变量在定义时初始化
C语言结构体变量在定义时就将其初始化的格式如下 struct struct_name struct_variable = { .member1 = xxx, .m ...
- 把选中变量、方法时的高亮给弄没了,怎么找回来
问题:把选中变量.方法时的高亮给弄没了,怎么找回来 解决办法: 在首选项里的java->editor->Mark Occurrences里设置,勾选上Mark occurrences of ...
- 几何结构因子(Geometrical structure factor)和原子形状因子(atomic form factor)
1.Monatamic Lattice 根据X衍射中,入射光和散射光的光程差:${\bf{r}}\cdot\left({\bf{k-k'}}\right)$,振幅取决于$e^{i\bf{K}\cdot ...
- final变量存在哪 java_使用Java中的final变量需要注意的地方。
对与java中的final变量,java编译器是进行了优化的.每个使用了final类型变量的地方都不会通过连接而进行访问.比如说Test类中使用了Data类中一个final的int数字fNumber= ...
- js变量传给java_如何把JavaScript中的变量值传给javabean?
恰好我碰到过类似的问题,引用一篇文章给你吧.希望能帮你~ JSP数据和JavaScirpt数据交互使用问题的一种解决方法 对于WEB程序来说,前端(JavaScript)和后端(JSP/Servlet ...
- tomcat 设置java_为tomcat配置java环境变量
我的tomcat 中java标签里是这么写的 java virual Machine: C:\Program Files\Java\jre1.6.0\bin\client\jvm.dll java c ...
- js获取的值传到java_使用GraalVM从javascript将变量参数传递给java函数
我试图在Corda RPC中调用一个名为 startTrackedFlowDynamic的函数,该函数接受2个参数: 在JAR中打包的startTrackedFlowDynamic(logicType ...
最新文章
- 2022-2028年中国塑料合成革的制造行业市场全景评估及发展趋势研究报告
- python 存入数据库bigint_【Python】从0开始写爬虫——把扒到的豆瓣数据存储到数据库...
- 打印合同_批量打印合同用印申请单
- 安卓自定义Listener
- Swift - 数组排序方法(附样例)
- 优盘提示插入多卷集的最后一卷解决办法(5)
- Java 信号 Semaphore 简介
- C# Post接收发送XML
- 转:过度疲劳的27个信号与预防方法
- 句句真研—每日长难句打卡Day16
- leetcode963. Minimum Area Rectangle II
- vmstat命令参数及其介绍
- A visual proof that neural nets can compute any function
- python调用大漠插件、检测么_python调用大漠插件教程05字库
- 离线语音风扇设计应用案例
- 此ca根目录证书不受信任
- PPT做起来老大难?试试这5个神器网站
- MS VC6 链接错误处理
- 口令登陆创新的一些想法
- Python包下载常用whl文件汇总:最全的Python whl集合
热门文章
- C# 获取 checkbox选中的值
- 【PTA】名人堂与代金券
- arcgis server里预览地图显示空白
- spring--mvc用戶注册用户名验重
- MySQL报错 SELECT list is not in GROUP BY clause and contains nonaggregated column...
- batchnorm2d参数 torch_pytorch中BatchNorm1d、BatchNorm2d、BatchNorm3d
- Windows XP 系统故障终极排查大全
- ScePT: 为规划的场景一致和基于策略轨迹预测
- 使用vagrant搭建三台虚拟机环境
- BugKu-CTF(杂项misc)--小美的秘密part2