시작하기무료로 시작하기

자전거 대여량을 위한 랜덤 포레스트 모델 만들기

이번 연습에서는 날씨, 날짜 종류(공휴일, 평일, 주말), 시간대를 입력으로 사용해 한 시간 동안 대여된 자전거 수를 예측하는 모델을 다시 만들어 보겠습니다. 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 = ___))
코드 편집 및 실행