Transformera indata inför modellering

Övervakad inlärning i R: Regression

Nina Zumel and John Mount

Win-Vector LLC

Varför transformera indatavariabler

  • Domänkunskap/syntetiska variabler
    • $Intelligence \sim \frac{mass.brain}{mass.body^{2/3}}$
Övervakad inlärning i R: Regression

Varför transformera indatavariabler

  • Domänkunskap/syntetiska variabler
    • $Intelligence \sim \frac{mass.brain}{mass.body^{2/3}}$
  • Praktiska skäl
    • Logaritmtransformation för att minska dynamiskt omfång
    • Logaritmtransformation när meningsfulla förändringar är multiplikativa
Övervakad inlärning i R: Regression

Varför transformera indatavariabler

  • Domänkunskap/syntetiska variabler
    • $Intelligence \sim \frac{mass.brain}{mass.body^{2/3}}$
  • Praktiska skäl
    • Logaritmtransformation för att minska dynamiskt omfång
    • Logaritmtransformation när meningsfulla förändringar är multiplikativa
    • $y$ ungefär linjärt i $f(x)$ snarare än i $x$
Övervakad inlärning i R: Regression

Exempel: Förutsäga ångest

Övervakad inlärning i R: Regression

Transformera variabeln hassles

Övervakad inlärning i R: Regression

Olika möjliga anpassningar

Vilket är bäst?

  • anx ~ I(hassles^2)
  • anx ~ I(hassles^3)
  • anx ~ I(hassles^2) + I(hassles^3)
  • anx ~ exp(hassles)
  • ...

I(): behandla ett uttryck bokstavligt (inte som en interaktion)

Övervakad inlärning i R: Regression

Jämför olika modeller

Linjär, kvadratisk och kubisk modell

mod_lin <- lm(anx ~ hassles, hassleframe)
summary(mod_lin)$r.squared
0.5334847
mod_quad <- lm(anx ~ I(hassles^2), hassleframe)
summary(mod_quad)$r.squared
0.6241029
mod_tritic <- lm(anx ~ I(hassles^3), hassleframe)
summary(mod_tritic)$r.squared
0.6474421
Övervakad inlärning i R: Regression

Jämför olika modeller

Använd korsvalidering för att utvärdera modellerna

Modell RMSE
Linjär ($hassles$) 7,69
Kvadratisk ($hassles^2$) 6,89
Kubisk ($hassles^3$) 6,70
Övervakad inlärning i R: Regression

Nu kör vi en övning!

Övervakad inlärning i R: Regression

Preparing Video For Download...