xgboost로 자전거 대여 모델 적합 및 예측
이번 연습에서는 xgboost()를 사용해 기상, 요일/시간대 등의 정보를 바탕으로 시간당 대여된 자전거 수를 예측하는 gradient boosting 모델을 적합해 보겠습니다. 7월 데이터를 학습에 사용하고, 8월 데이터에 대해 예측합니다.
데이터 프레임 bikesJuly, bikesJuly.treat, bikesAugust, bikesAugust.treat가 미리 로드되어 있어요. vtreat 처리된 데이터에는 더 이상 결과 열이 없으므로, 원본 데이터에서 결과(cnt 열)를 가져와야 함을 기억하세요.
편의를 위해 이전 연습에서 사용한 트리 개수 ntrees가 제공됩니다.
xgboost()(docs)의 인자는 xgb.cv()와 유사합니다.
이 연습은 강의의 일부입니다
R로 하는 Supervised Learning: 회귀
연습 안내
- 빈칸을 채워 7월 데이터에 대해
xgboost()를 실행하세요.as.matrix()로 vtreat 처리된 데이터 프레임을 행렬로 변환하세요.- objective는
"reg:squarederror"여야 합니다. - 반복 수는
ntrees를 사용하세요. eta는0.75,max_depth는5,verbose는FALSE(silent)로 설정하세요.
- 이제
bikesAugust.treat에 대해predict()를 호출해 8월의 자전거 대여 수를 예측하세요.as.matrix()로vtreat처리된 테스트 데이터를 행렬로 변환하세요.- 예측값을
bikesAugust의pred열로 추가하세요.
- 실제 자전거 대여 수와 예측값을 비교해 플롯을 그리도록 빈칸을 채우세요(예측값은 x축).
- 예측에서 문제가 될 수 있는 점이 보이나요?
실습형 인터랙티브 연습
이 예제를 이 샘플 코드를 완성하여 풀어보세요.
# Run xgboost
bike_model_xgb <- xgboost(data = ___, # training data as matrix
label = ___, # column of outcomes
nrounds = ___, # number of trees to build
objective = ___, # objective
eta = ___,
max_depth = ___,
verbose = FALSE # silent
)
# Make predictions
bikesAugust$pred <- ___(___, ___(___))
# Plot predictions (on x axis) vs actual bike rental count
ggplot(bikesAugust, aes(x = ___, y = ___)) +
geom_point() +
geom_abline()