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.

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.

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ă:

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.:

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)

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:
- Îmbunătățiți-vă modelele liniare și încercați funcții pătratice, rădăcină sau polinomiale.
- 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.

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