[英]Error in `contrasts' Error
我已經訓練了一個模型,我試圖使用predict
函數,但它返回以下錯誤。
contrasts<-
誤差contrasts<-
(*tmp*
,value = contr.funs [1 + isOF [nn]]):
對比度僅適用於具有2級或更多級別的因素
在SO和CrossValidated中有幾個問題,從我解釋這個錯誤,我的模型中的一個因素只有一個級別。
這是一個非常簡單的模型,有一個連續變量(driveTime)和一個有3個級別的因子變量
driveTime Market.y transfer
Min. : 5.100 Dallas :10 Min. :-11.205
1st Qu.: 6.192 McAllen: 6 1st Qu.: 3.575
Median : 7.833 Tulsa : 3 Median : 7.843
Mean : 8.727 Mean : 8.883
3rd Qu.:10.725 3rd Qu.: 15.608
Max. :14.350 Max. : 30.643
當我使用預測函數來確定未見樣本的結果時
newDriveTime <- data.frame(driveTime = 8,Market.y = as.factor("Dallas"))
predict(bestMod_Rescaled, newDriveTime)
我收到以下錯誤
Error in `contrasts<-`(`*tmp*`, value = contr.funs[1 + isOF[nn]]) :
contrasts can be applied only to factors with 2 or more levels
這是我的工作流程的更多內容
tc <- tune.control(cross = 10, fix = 8/10)
tuneResult_Rescaled <- tune(svm,data = finalSubset,
transfer~ driveTime + Market.y,
ranges = list(epsilon = seq(0.1,.5,0.1),
cost = seq(8,10,.1)), tunecontrol=tc)
summary(tuneResult_Rescaled)
bestMod_Rescaled <- tuneResult_Rescaled$best.model
我認為你必須將訓練數據中的因子水平提供給測試集。 像下面這樣的東西應該工作。
newDriveTime <- data.frame(driveTime = 8,
Market.y = factor("Dallas", levels(finalSubset$Market.y)))
predict(bestMod_Rescaled, newDriveTime)
在R中,因子被保存為帶有名稱/標簽的整數。 如果您有兩個具有不同級別的因子向量,只需查看標簽,就無法確定哪些標簽是兩個向量中的相應級別。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.