Hvordan du kan bruge lineære regressionsmodeller til at forudsige kvadratiske, rod- og polynomfunktioner

Når jeg læser artikler om maskinindlæring, har jeg ofte mistanke om, at forfattere misforstår udtrykket "lineær model." Mange forfattere foreslår, at lineære modeller kun kan anvendes, hvis data kan beskrives med en linje. Men dette er alt for restriktivt.

Lineære modeller antager, at den funktionelle form er lineær - ikke forholdet mellem dine variabler .

Jeg viser dig, hvordan du kan forbedre dine lineære regressioner med kvadratiske, rod- og eksponentielle funktioner.

Så hvad er den funktionelle form?

Den funktionelle form er den ligning, du vil estimere .

Lad os starte med et eksempel og tænke over, hvordan vi kunne beskrive lønninger for dataforskere. Antag, at en gennemsnitlig dataforsker ( i) modtager en startløn ( entry_level_salary) plus en bonus for hvert år af sin erfaring ( experience_i).

Således gives hans løn ( salary_i) af følgende funktionelle form:

salary_i = entry_level_salary + beta_1 * experience_i

Nu kan vi fortolke koefficienten beta_1som bonus for hvert års erfaring. Og med denne koefficient kan vi begynde at forudsige forudsigelser ved blot at kende niveauet for erfaring.

Da din maskinindlæringsmodel tager sig af koefficienten beta_1, er alt hvad du behøver for at indtaste R eller anden software:

model_1 <- lm(salary ~ entry_level_salary + experience)

Lineæritet i den funktionelle form kræver, at vi opsummerer hver determinant på ligningens højre side.

Forestil dig, at vi har ret med vores antagelser. Hvert punkt angiver en datavidenskabsmand med sit niveau af erfaring og løn. Endelig er den røde linje vores forudsigelser.

Mange håbefulde dataforskere kører allerede lignende forudsigelser. Men ofte er det alt, hvad de gør med lineære modeller ...

Hvordan estimerer man kvadratiske modeller?

Når vi vil estimere en kvadratisk model, kan vi ikke skrive noget som dette:

model_2 <- lm(salary ~ entry_level_salary + experience^2)
>> This will reject an error message

De fleste af disse funktioner forventer ikke, at de skal transformere dine inputvariabler. Som et resultat afviser de en fejlmeddelelse, hvis du prøver. Desuden har du ikke længere et beløb på højre side af ligningen.

Bemærk: Du skal beregne, experience^²før du tilføjer det til din model. Således løber du:

# First, compute the square values of experienceexperience_2 <- experience^2
# Then add them into your regressionmodel_2 <- lm(salary ~ entry_level_salary + experience_2)

Til gengæld får du en dejlig kvadratisk funktion:

Anslå rodfunktioner med lineære modeller

Ofte observerer vi værdier, der stiger hurtigt i starten og justerer til et bestemt niveau bagefter. Lad os ændre vores eksempel og estimere en typisk indlæringskurve.

I begyndelsen har en indlæringskurve tendens til at være meget stejl og bremses efter nogle år.

Der er en funktion, der har en sådan tendens, rootfunktionen. Så vi bruger den square roottil experienceat fange dette forhold:

# First, compute the square root values of experiencesqrt_experience <- sqrt(experience)
# Then add them into your regressionmodel_3 <- lm(knowledge ~ sqrt_experience)

Igen skal du sørge for at beregne kvadratroden, før du føjer den til din model:

Eller du vil måske bruge den logaritmiske funktion, da den beskriver en lignende tendens. Men dens 'værdier er negative mellem nul og en. Så sørg for at dette ikke er et problem for dig og dine data.

Mestring af lineære modeller

Endelig kan du endda estimere polynomiske funktioner med højere ordrer eller eksponentielle funktioner. Alt du skal gøre er at beregne alle variabler, før du tilføjer dem til din lineære model:

# First, compute polynomialsexperience_2 <- experience^2experience_3 <- experience^3
# Then add them into your regressionmodel_4 <- lm(salary ~ experience + experience_2 + experience_3)

To tilfælde, hvor du skal bruge andre modeller

Selvom lineære modeller kan anvendes i mange tilfælde, er der begrænsninger. Den mest populære kan opdeles i to kategorier:

1. Sandsynligheder:

Hvis du vil estimere sandsynligheden for en begivenhed, skal du bedre bruge Probit-, Logit- eller Tobit-modeller. Ved estimering af sandsynligheder bruger du distributioner, som lineære funktioner ikke kan registrere. Afhængigt af den fordeling, du antager, skal du vælge mellem Probit-, Logit- eller Tobit-modellen.

2. Tæl variabler

Endelig, når du estimerer en tællevariabel, skal du bruge en Poisson-model. Tællingsvariabler er variable, der kun kan være heltal, f.eks 1, 2, 3, 4.

Tæl f.eks. Antallet af børn, antallet af køb, en kunde foretager, eller antallet af ulykker i en region.

Hvad man skal tage væk fra denne artikel

Der er to ting, jeg vil have dig til at huske:

  1. Forbedre dine lineære modeller, og prøv kvadratiske, rod- eller polynomfunktioner.
  2. Transformer altid dine data, før du føjer dem til din regression.

Jeg uploadede R-koden for alle eksempler på GitHub. Du er velkommen til at downloade dem, lege med dem eller dele dem med dine venner og kolleger.

Hvis du har spørgsmål, skriv en kommentar nedenfor eller kontakt mig. Jeg sætter pris på din feedback.