2
有時,當將具有分類列的數據幀拆分爲測試和訓練集時,訓練集將不包含分類變量的所有級別。當你再訓練模型,並試圖預測測試集,預測將失敗:如何在測試和訓練集中拆分數據幀時保留所有級別的分類變量R
例如:
x <- data.frame(...) # data frame with columns with very dispersed categorical variables
set.seed(123)
smp_size <- floor(0.75 * nrow(x))
train_idx <- sample(seq_len(nrow(x)), size = smp_size)
train_set <- x[train_idx, ]
test_set <- x[-train_idx, ]
m <- lm(some_formula, data=train_set)
predict(m, newdata=test_set)
Error in model.frame.default(Terms, newdata, na.action = na.action, xlev = object$xlevels) :
factor xxxx has new levels yyy ...
有誰知道一個方便的方法來設置所有分類變量的水平訓練和測試都設置爲原始數據集中的水平?
謝謝。