我正在努力使用插入符号包来执行分类树几天.问题是我的因素变量.我生成了树,但是当我尝试使用最佳模型对测试样本进行预测时,它失败了,因为列车函数为我的因子变量创建了虚拟对象,然后预测函数无法在测试集中找到这些新创建的虚拟对象.我该如何处理这个问题?
我的代码如下:
install.packages("caret", dependencies = c("Depends", "Suggests"))
library(caret)
db=data.frame(read.csv ("db.csv", head=TRUE, sep=";", na.strings ="?"))
fix(db)
db$defaillance=factor(db$defaillance)
db$def=ifelse(db$defaillance==0,"No","Yes")
db$def=factor(db$def)
db$defaillance=NULL
db$canal=factor(db$canal)
db$sect_isodev=factor(db$sect_isodev)
db$sect_risq=factor(db$sect_risq)
#delete zero variance predictors
nzv <- nearZeroVar(db[,-78])
db_new <- db[,-nzv]
inTrain <- createDataPartition(y = db_new$def, p = .75, list = FALSE)
training <- db_new[inTrain,]
testing <- db_new[-inTrain,]
str(training)
str(testing)
dim(training)
dim(testing)
Run Code Online (Sandbox Code Playgroud)
用于训练/测试的str()函数示例如下:
$ FDR : num 1305 211 162 131 143 ...
$ FCYC : num 0.269 0.18 0.154 0.119 0.139 ...
$ BFDR : num 803 164 …Run Code Online (Sandbox Code Playgroud) 这是我的问题:
"AppliedPredictiveModeling"包中"spatialSign"功能的用途是什么?我在一本关于"空间符号"方法的书中读到了识别异常值的方法.该函数将变量的值投影到圆圈中,如果有异常值,则它们应该出现在圆圈内.R是否与此包中使用的"空间符号"相同?
如果是这样,我提交此代码的时候怎么样:
plotSubset <- data.frame(scale(zquant1[, c("AGE", "FL")]))
xyplot(AGE ~ FL,
data = plotSubset,
auto.key = list(columns = 10))
transformed <- spatialSign(plotSubset)
transformed <- as.data.frame(transformed)
xyplot(AGE ~ FL,
data = transformed,
auto.key = list(columns = 2))
Run Code Online (Sandbox Code Playgroud)
可能看起来我在第一张图片中有一个异常值,但空间符号方法(第二张图像)不能识别它?
(第1张图片)http://www.imagesup.net/?di=5142245473711 (第2张图片)http://www.imagesup.net/?di=5142245489110