使用因子值进行交叉验证时出错

时间:2018-10-11 12:55:30

标签: r machine-learning cross-validation

我有此代码:

# Define training control
set.seed(123) 
train.control <- trainControl(method = "cv", number = 10)
# Train the model
model <- train(is_nocnv ~., data = mydata, method = "lm", trControl = train.control)


# Summarize the results
print(model)

执行此代码时,我得到此错误:

Error in `contrasts<-`(`*tmp*`, value = contr.funs[1 + isOF[nn]]) : 
 contrasts can be applied only to factors with 2 or more levels

字段:is_nocnv是因子,该字段的值为'YES','NO'

str(mydata)
'data.frame':   8334 obs. of  7 variables:
 $ chr         : Factor w/ 1 level "chr1": 1 1 1 1 1 1 1 1 1 1 ...
 $ start       : int  3218610 154080441 154089408 61735 2069681 2074104   3135175 3137913 3214732 5901288 ...
 $ stop        : int  154074261 154081058 247813706 2061969 2071738 3130590 3136858 3212946 5900106 5902086 ...
 $ strand      : Factor w/ 1 level "*": 1 1 1 1 1 1 1 1 1 1 ...
 $ num_probes  : int  69643 3 59364 379 2 333 2 33 1943 3 ...
 $ segment_mean: num  -0.122 -13.462 -0.1 -0.326 -25.242 ...
 $ is_nocnv    : Factor w/ 2 levels "NO","YES": 2 2 2 1 1 1 1 1 1 1 ...

这是我的数据集(csv)的一小部分

"chr","start","stop","strand","num_probes","segment_mean","is_nocnv"
chr1,3218610,154074261,*,69643,-0.122,YES
chr1,154080441,154081058,*,3,-13.462,YES
chr1,154089408,247813706,*,59364,-0.1003,YES
chr1,61735,2061969,*,379,-0.326,NO
chr1,2069681,2071738,*,2,-25.242,NO
chr1,2074104,3130590,*,333,-0.3957,NO

0 个答案:

没有答案