我想通過使用「caret」包的列車功能進行交叉驗證來建立CART模型。使用列車命令通過CrossValidation建立CART模型時預測功能的問題
我的數據是4500 x 110數據框,其中所有的預測變量(除了前兩個UserId和YOB(Year of Birth),我沒有用於模型構建)除了因變量這是整數類型(雖然只有兩個值1和0)。性別是自變量之一。
當我運行rpart命令獲取CART模型(使用軟件包「rpart」)時,我對預測函數沒有任何問題。不過,我想提高通過交叉驗證的模型,所以用下面的命令用於從包「插入符號」火車功能:
tr = train(y ~ ., data = subImpTrain, method = "rpart", trControl = tr.control, tuneGrid = cp.grid)
此建立模型以下警告
Warning message:
In nominalTrainWorkflow(x = x, y = y, wts = weights, info = trainInfo, :
There were missing values in resampled performance measures.
但它確實給了我一個最終模型(best.tree)。然而,當我試圖運行使用以下命令預測功能:
best.tree.pred = predict(best.tree, newdata = subImpTest)
測試數據,這是給我下面的錯誤:
Error in eval(expr, envir, enclos) : object 'GenderMale' not found
性別變量有兩個值:雌,雄
任何人可以幫助我理解錯誤
看起來它正在尋找GenderMale列。你能比較你的訓練和測試集中的變量嗎? '相同(名稱(subImpTrain),名稱(subImpTest)'的輸出是什麼' – infominer
它們是相似的,而且更令人困惑。 – user62198