始める無料で始める

自転車レンタルのためのランダムフォレストモデルを構築する

この演習では、天気、曜日の種類(祝日・平日・週末)、そして時間帯に基づいて、1時間あたりにレンタルされる自転車の台数を予測するモデルを再び構築します。7月のデータでモデルを学習します。

ランダムフォレストモデルの学習には ranger パッケージを使います。この演習での ranger()docs)呼び出しの主な引数は次のとおりです。

  • formula
  • data
  • num.trees: フォレスト中の木の本数。
  • respect.unordered.factors : 順序なし因子変数の扱いを指定します。回帰では "order" に設定することを推奨します。
  • seed: ランダム性のあるアルゴリズムなので、再現可能な結果のためにシードを設定します。

入力変数が多いため、便宜上、目的変数と説明変数の指定を outcomevars にまとめ、paste()docs)を使ってモデルの式を表す文字列を組み立てます。

データフレーム bikesJuly はあらかじめ読み込まれています。サンプルコードは目的変数と入力変数の名前を指定しています。

この演習はコースの一部です

R による Supervised Learning:回帰

コースを見る

演習の手順

  • 空欄を埋めて、入力変数の関数として cnt を表す式 fmla を作成し、出力してください。
  • パッケージ ranger を読み込みます。
  • ranger を使って bikesJuly データにモデル bike_model_rf を当てはめます。
    • ranger() の最初の引数は式 fmla です。
    • 木の本数は 500、本数に加えて respect.unordered.factors = "order" を指定します。
    • 再現性のためにシードを seed に設定します。
    • モデルを表示してください。R-squared はいくつですか?

実践的なインタラクティブ演習

このサンプルコードを完成させて、この演習に挑戦してみましょう。

# bikesJuly is available
str(bikesJuly)

# Random seed to reproduce results
seed

# The outcome column
(outcome <- "cnt")

# The input variables
(vars <- c("hr", "holiday", "workingday", "weathersit", "temp", "atemp", "hum", "windspeed"))

# Create the formula string for bikes rented as a function of the inputs
(fmla <- paste(___, "~", paste(___, collapse = " + ")))

# Load the package ranger
___

# Fit and print the random forest model
(bike_model_rf <- ranger(___, # formula 
                         ___, # data
                         num.trees = ___, 
                         respect.unordered.factors = ___, 
                         seed = ___))
コードを編集して実行