私はRを使用していて、意思決定ツリーを構築しようとしています。私はすでにctreeのパッケージパーティーとrpartのrpartを使っています。 しかし、モデルのクロスバリデーションを行う必要があるので、私は関数train()と使用したいメソッドを使ってキャレットパッケージを使用することができます。train()関数に値がありません。ツリーのキャレット
library(caret)
cvCtrl <- trainControl(method = "repeatedcv", repeats = 2,
classProbs = TRUE)
ctree.installed<- train(TARGET ~ OPENING_BALANCE+ MONTHS_SINCE_EXPEDITION+
RS_DESC+SAP_STATUS+ ACTIVATION_STATUS+ ROTUL_STATUS+
SIM_STATUS+ RATE_PLAN_SEGMENT_NORM,
data=trainSet,
method = "ctree",
trControl = cvCtrl)
はしかし、私の変数「OPENING_BALANCE」と「MONTHS_SINCE_EXPEDITIONは、」いくつかの欠損値を持っており、機能はそのために動作しません。私は木を造ろうとしているので、なぜこれが起きるのか分かりません。この問題は、他のパッケージを使用している場合は発生しません。
これはエラーです:私は本当にそれらの観測を破棄したくないので、
Error in na.fail.default(list(TARGET = c(3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, :
missing values in object
私が合格= na.actionを使いたくありませんでした。
何か間違っていますか?なぜこうなった?これに関する提案はありますか?
は、私はいくつかの欠損値を持つmlbench
パッケージのデータセットPimaIndiansDiabetes2
を考慮し始めるあなたの助け
' na.action = na.pass'はnaを破棄しません。それは渡します。つまり、 'NA'をサポートしない' predict'関数を使うとそれは失敗するでしょう。 'na.action = na.omit' _これらの観測を破棄する必要があります。 –
これは見つかりましたか?役に立つかもしれません:https://stats.stackexchange.com/questions/144922/r-caret-and-nas –
あなたの答えをありがとう。私が見つけた問題は、予測関数を使用すると、結果がテストセットに与えたものよりもはるかに少ない観測値を返すということです。テストセットに30000の観測値があると仮定して、10000個の入力変数に欠損値があるため、20000の予測だけを受け取ります。 –