de Björn Hartmann

Când citesc articole despre învățarea automată, de multe ori bănuiesc că autorii înțeleg greșit termenul de „model liniar”. Mulți autori sugerează că modelele liniare pot fi aplicate numai dacă datele pot fi descrise cu o linie. Dar acest lucru este mult prea restrictiv.

Modele liniare presupunem că forma funcțională este liniară – nu relația dintre variabilele dvs..

Vă voi arăta cum vă puteți îmbunătăți regresiile liniare cu funcții pătratice, rădăcină și exponențiale.

Cum puteti utiliza modele de regresie liniara pentru a prezice

Deci, care este forma funcțională?

Forma funcțională este ecuație pe care doriți să o estimați.

Să începem cu un exemplu și să ne gândim cum am putea descrie salariile oamenilor de știință de date. Să presupunem că un cercetător de date mediu (i) primește un salariu de bază (entry_level_salary) plus un bonus pentru fiecare an al experienței sale (experience_i).

Astfel, salariul său (salary_i) este dat de următoarea formă funcțională:

salary_i = entry_level_salary + beta_1 * experience_i

Acum, putem interpreta coeficientul beta_1 ca bonus pentru fiecare an de experiență. Și cu acest coeficient putem începe să facem predicții doar prin cunoașterea nivelului de experiență.

Deoarece modelul dvs. de învățare automată are grijă de coeficient beta_1 , tot ce trebuie să introduceți în R sau în orice alt software este:

model_1 <- lm(salary ~ entry_level_salary + experience)

Liniaritatea în forma funcțională necesită să rezumăm fiecare determinant pe partea dreaptă a ecuației.

Imaginați-vă că avem dreptate cu presupunerile noastre. Fiecare punct indică un om de știință cu nivelul său de experiență și salariu. În cele din urmă, linia roșie este predicțiile noastre.

1611053345 961 Cum puteti utiliza modele de regresie liniara pentru a prezice

Mulți oameni de știință care aspiră la date au deja predicții similare. Dar adesea asta este tot ce fac cu modelele liniare …

Cum se estimează modele pătratice?

Când vrem să estimăm un model pătratic, nu putem introduce ceva de genul acesta:

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

Cele mai multe dintre aceste funcții nu se așteaptă să fie nevoite să transforme variabilele de intrare. Drept urmare, resping un mesaj de eroare dacă încercați. Mai mult, nu mai aveți o sumă în partea dreaptă a ecuației.

Notă: Trebuie să calculezi experience^² înainte de a-l adăuga în modelul dvs. Astfel, veți rula:

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

În schimb, veți obține o funcție pătratică frumoasă:

1611053345 96 Cum puteti utiliza modele de regresie liniara pentru a prezice

Estimează funcțiile rădăcină cu modele liniare

Adesea observăm valori care cresc rapid la început și se aliniază la un anumit nivel după aceea. Să ne modificăm exemplul și să estimăm o curbă tipică de învățare.

La început, o curbă de învățare tinde să fie foarte abruptă și încetinește după câțiva ani.

Există o funcție care prezintă o astfel de tendință, root funcţie. Deci folosim square root de experience pentru a surprinde această relație:

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

Din nou, asigurați-vă că calculați rădăcina pătrată înainte de ao adăuga la modelul dvs.:

1611053346 387 Cum puteti utiliza modele de regresie liniara pentru a prezice

Sau poate doriți să utilizați funcția logaritmică, deoarece descrie o tendință similară. Dar valorile sale sunt negative între zero și unu. Deci, asigurați-vă că acest lucru nu este o problemă pentru dvs. și datele dvs.

Stăpânirea modelelor liniare

În cele din urmă, puteți chiar estima funcții polinomiale cu ordine mai mari sau funcții exponențiale. Tot ce trebuie să faceți este să calculați toate variabilele înainte de a le adăuga în modelul dvs. liniar:

# First, compute polynomialsexperience_2 <- experience^2experience_3 <- experience^3
# Then add them into your regressionmodel_4 <- lm(salary ~ experience + experience_2 + experience_3)
1611053346 378 Cum puteti utiliza modele de regresie liniara pentru a prezice

Două cazuri în care ar trebui să utilizați alte modele

Deși modelele liniare pot fi aplicate în multe cazuri, există limitări. Cele mai populare pot fi împărțite în două categorii:

1. Probabilități:

Dacă doriți să estimați probabilitatea unui eveniment, mai bine utilizați modelele Probit, Logit sau Tobit. Când estimați probabilitățile, utilizați distribuții pe care funcțiile liniare nu le pot captura. În funcție de distribuția pe care o asumați, ar trebui să alegeți între modelul Probit, Logit sau Tobit.

2. Numărați variabilele

În cele din urmă, atunci când estimați o variabilă de numărare, doriți să utilizați un model Poisson. Variabilele de numărare sunt variabile care pot fi numai numere întregi, cum ar fi 1, 2, 3, 4.

De exemplu, numărați numărul de copii, numărul de achiziții pe care le face un client sau numărul de accidente dintr-o regiune.

Ce să scoți din acest articol

Vreau să vă amintiți două lucruri:

  1. Îmbunătățiți-vă modelele liniare și încercați funcții pătratice, rădăcină sau polinomiale.
  2. Transformă-ți întotdeauna datele inainte de le adaugi la regresia ta.

Am încărcat codul R pentru toate exemplele de pe GitHub. Simțiți-vă liber să le descărcați, să vă jucați cu ei sau să le împărtășiți prietenilor și colegilor.

1611053346 710 Cum puteti utiliza modele de regresie liniara pentru a prezice

Dacă aveți întrebări, scrieți un comentariu mai jos sau Contacteaza-ma. Apreciez feedback-ul dvs.