私は現在、Coursera から「実践的な機械学習」コースを受講しており、予測機能で奇妙な動作に遭遇しています。尋ねられた質問は、ツリーをトレーニングしてからいくつかの予測を行うことでした。ここに回答を投稿しないように、問題に使用されるデータセットを変更しました。コードは次のとおりです。
rm(list = ls())
library(rattle)
data(mtcars)
mtcars$vs = as.factor(mtcars$vs)
set.seed(125)
model = train(am ~ ., method = 'rpart', data = mtcars)
print(model)
fancyRpartPlot(model$finalModel)
sampleData = mtcars[1,]
sampleData[1,names(sampleData)] = rep(NA, length(names(sampleData)))
sampleData[1, c('wt')] = c(4)
predict(model, sampleData[1,], verbose = TRUE)
上記のコードには、2 つの主要なセクションがあります。1 つ目はツリーを構築し、2 つ目 (ここsampleData
から開始) は、モデルを適用するデータの小さなサンプル セットを作成します。元のデータとまったく同じ構造であることを確認するには、トレーニング データセットの最初の行をコピーし、すべての列を に設定しますNA
。次に、デシジョン ツリーに必要な列 (この場合はwt
変数) だけにデータを入れます。
上記のコードを実行すると、次の結果が得られます。
Number of training samples: 32
Number of test samples: 0
rpart : 0 unknown predictions were added
numeric(0)
参考までに、ツリーの構造は次のとおりです。
fancyRpartPlot(model$finalModel)
predict
関数が私が提供したの予測値を返さない理由を誰かが理解するのを手伝ってくれますsampleData
か?