Anpassa en xgboost-modell för cykeluthyrning och gör prediktioner
I den här övningen anpassar du en gradientboostingmodell med xgboost() för att prediktera antalet uthyrda cyklar per timme baserat på väderförhållanden samt typ av dag och tidpunkt. Du tränar modellen på data från juli och predikterar på data från augusti.
Dataramarna bikesJuly, bikesJuly.treat, bikesAugust och bikesAugust.treat är förhandsinlästa. Kom ihåg att vtreat-behandlad data inte längre innehåller utfallskolumnen – den måste du hämta från ursprungsdata (kolumnen cnt).
Antalet träd att använda, ntrees från föregående övning, finns tillgängligt.
Argumenten till xgboost() (docs) liknar dem för xgb.cv().
Den här övningen är en del av kursen
Övervakad inlärning i R: Regression
Övningsinstruktioner
- Fyll i luckorna för att köra
xgboost()på julidata.- Använd
as.matrix()för att konvertera denvtreat-behandlade dataramen till en matris. - Sätt objective till
"reg:squarederror". - Använd
ntreesrundor. - Sätt
etatill0.75,max_depthtill5ochverbosetillFALSE(tyst läge).
- Använd
- Anropa
predict()påbikesAugust.treatför att prediktera antalet uthyrda cyklar i augusti.- Använd
as.matrix()för att konvertera denvtreat-behandlade testdatan till en matris. - Lägg till prediktionerna i
bikesAugustsom kolumnenpred.
- Använd
- Fyll i luckorna för att plotta faktiska uthyrningsantal mot prediktionerna (prediktioner på x-axeln).
- Ser du något potentiellt problem med prediktionerna?
Interaktiv övning med praktiskt arbete
Testa den här övningen genom att slutföra den här exempelkoden.
# 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()