Kom igångKom igång gratis

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

Visa kurs

Övningsinstruktioner

  • Fyll i luckorna för att köra xgboost() på julidata.
    • Använd as.matrix() för att konvertera den vtreat-behandlade dataramen till en matris.
    • Sätt objective till "reg:squarederror".
    • Använd ntrees rundor.
    • Sätt eta till 0.75, max_depth till 5 och verbose till FALSE (tyst läge).
  • Anropa predict()bikesAugust.treat för att prediktera antalet uthyrda cyklar i augusti.
    • Använd as.matrix() för att konvertera den vtreat-behandlade testdatan till en matris.
    • Lägg till prediktionerna i bikesAugust som kolumnen pred.
  • 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()
Redigera och kör kod