gpt4 book ai didi

r - 错误 `contrasts' 错误

转载 作者:行者123 更新时间:2023-11-30 08:37:09 31 4
gpt4 key购买 nike

我已经训练了一个模型,我正在尝试使用 predict函数但它返回以下错误。

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

SO中有几个问题和 CrossValidated关于这一点,从我对这个错误的解释来看,我的模型中的一个因素只有一个级别。

这是一个非常简单的模型,具有一个连续变量(行驶时间)和一个具有 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 中,因子被保存为带有名称/标签的整数。如果有两个具有不同级别数的因子向量,仅通过查看标签,无法确定哪些标签是两个向量中对应的级别。

关于r - 错误 `contrasts' 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47244360/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com