テストセットで予測する
トレーニングセットとテストセットをランダムに分割できたので、最初の演習と同様に lm() 関数を使って、データ全体ではなくトレーニングセットにモデルを当てはめます。 線形回帰関数の formula インターフェースを使うと、ターゲット変数を指定し、データセット内の他のすべての変数を予測子としてモデルを学習できます。
mod <- lm(y ~ ., training_data)
predict() 関数を使うと、そのモデルから新しいデータに対する予測を作成できます。 新しいデータセットにはトレーニングデータと同じ列がすべて必要ですが、列の順序や値は異なっていて構いません。ここでは、トレーニングセットで再予測するのではなく、モデルの学習に使っていないテストセットで予測します。これにより、次の演習でモデルのアウトオブサンプル誤差を評価できます。
p <- predict(model, new_data)
この演習はコースの一部です
Rで学ぶ caret を使った Machine Learning
演習の手順
- すべての他の変数を共変量として用い、
priceを予測するlm()モデルをmodelという名前で当てはめてください。必ずトレーニングセットtrainを使います。 predict()を使ってテストセットtestに対して予測し、その値をベクトルpに保存してください。
実践的なインタラクティブ演習
このサンプルコードを完成させて、この演習に挑戦してみましょう。
# Fit lm model on train: model
# Predict on test: p