3

我正在使用 R 中引导库的 cv.glm 交叉验证过程测试逻辑回归的性能。

我的一些预测变量是因素。

当我运行它时,我收到以下错误消息:

Error in model.frame.default(Terms, newdata, na.action = na.action, xlev = object$xlevels)
factor color has new levels RED

我想我理解这个问题。可能是我在不存在某些水平的因子变量的观察子集上训练回归模型。如果这个模型后来被用于新的观察,包括预测变量的看不见的水平,那么它不知道如何表现。

由于这在我看来像是一个基本的 CV 问题,我很惊讶我没有在库文档中找到任何提及。

我将不胜感激任何指针。

4

1 回答 1

1

正如我在评论中提到的,这是直接来自ipred?errorest中的示例:

#cv of a fixed partition of the data
list.tindx <- list(1:100, 101:200, 201:300, 301:400, 401:500,
        501:600, 601:700, 701:768)

errorest(diabetes ~ ., data=PimaIndiansDiabetes, model=lda,
          estimator = "cv", predict = mypredict.lda,
          est.para = control.errorest(list.tindx = list.tindx))

因此,您可以指定要使用的自己的 cv 折叠,并确保它们充分平衡,以避免任何单个折叠中缺少因子水平。

于 2013-06-05T22:11:14.897 回答