Differences
This shows you the differences between two versions of the page.
Both sides previous revision Previous revision Next revision | Previous revision | ||
pp:2024:tema1 [2024/03/27 12:51] pdmatei |
pp:2024:tema1 [2024/04/01 14:22] (current) alexandra.udrescu01 |
||
---|---|---|---|
Line 119: | Line 119: | ||
- Sortati setul de date crescator dupa prima coloana | - Sortati setul de date crescator dupa prima coloana | ||
- | - Pentru fiecare $math[|1 / percentage|] intrari consecutive din dataset-ul sortat, adaugati o intrare in dataset-ul de evaluare, iar restul - in cel de training. | + | - Pentru fiecare $math[ 1 / percentage - 1] intrari consecutive din dataset-ul sortat, adaugati o intrare in dataset-ul de evaluare, iar restul - in cel de training. |
<note warning>Aveti grija la randul de cap de tabel. Aceasta nu este considerat o intrare si trebuie sa apara in ambele dataseturi construite. </note> | <note warning>Aveti grija la randul de cap de tabel. Aceasta nu este considerat o intrare si trebuie sa apara in ambele dataseturi construite. </note> | ||
Line 213: | Line 213: | ||
- **Gradient Descent:** Pentru un numar predefinit de pasi (''gradient_descent_steps''), se executa urmatorii sub-pasi: | - **Gradient Descent:** Pentru un numar predefinit de pasi (''gradient_descent_steps''), se executa urmatorii sub-pasi: | ||
- **Calculul estimarilor:** Folosind atributele fiecarei locuinte si ipoteza de la pasul curent (coeficientii asociati fiecarui atribut), vom inmulti matricea ''X'' de dimensiune $math[m * (n + 1)] cu vectorul de coeficienti ''W'' de dimensiune $math[(n + 1) * 1], rezultand un **vector de estimari** de dimensiune $math[m * 1]. Acest vector de estimari reprezinta practic pretul prezis de regresia noastra pentru fiecare din cele m locuinte din setul de date. Cu alte cuvinte, daca ''W'' are coeficientii $math[W_0, W_1, ..., W_n] iar o locuinta are atributele $math[1, X_1, X_2, ..., X_n], noi vom calcula pretul prezis ca fiind $math[W_0 + W_1 * X_1 + W_2 * X_2 + ... + W_n * X_n]. | - **Calculul estimarilor:** Folosind atributele fiecarei locuinte si ipoteza de la pasul curent (coeficientii asociati fiecarui atribut), vom inmulti matricea ''X'' de dimensiune $math[m * (n + 1)] cu vectorul de coeficienti ''W'' de dimensiune $math[(n + 1) * 1], rezultand un **vector de estimari** de dimensiune $math[m * 1]. Acest vector de estimari reprezinta practic pretul prezis de regresia noastra pentru fiecare din cele m locuinte din setul de date. Cu alte cuvinte, daca ''W'' are coeficientii $math[W_0, W_1, ..., W_n] iar o locuinta are atributele $math[1, X_1, X_2, ..., X_n], noi vom calcula pretul prezis ca fiind $math[W_0 + W_1 * X_1 + W_2 * X_2 + ... + W_n * X_n]. | ||
- | - **Calculul erorii:** In continuare, vrem sa facem astfel incat pretul prezis sa se apropie cat mai mult cu pretul real al locuintelor, definind astfel o functie de eroare egala cu diferenta dintre pretul real si cel prezis (preturile prezise sunt valorile din vectorul de estimari), in modul. Pretul real pentru toate locuintele se va retine ca un vector ''Y'' cu dimensiunea $math[m * 1]. Astfel eroarea va avea, de asemenea, dimensiunea $math[m * 1]. | + | - **Calculul erorii:** In continuare, vrem sa facem astfel incat pretul prezis sa se apropie cat mai mult cu pretul real al locuintelor, definind astfel o functie de eroare egala cu diferenta dintre pretul prezis si cel real (preturile prezise sunt valorile din vectorul de estimari). Pretul real pentru toate locuintele se va retine ca un vector ''Y'' cu dimensiunea $math[m * 1]. Astfel eroarea va avea, de asemenea, dimensiunea $math[m * 1]. |
- **Calculul gradientului:** Gradientul reprezinta directia (crestem sau scadem) si marimea ajustarii necesare pentru coeficientii ''W'', pentru a reduce eroarea. Se calculeaza inmultind transpusa matricei ''X'' (de dimensiune $math[(n+1) * m]) cu vectorul de eroare (de dimensiune $math[m * 1]), si apoi se imparte fiecare element la m pentru a obtine media aritmetica. Rezultatul este un vector de dimensiune $math[(n+1) * 1]. | - **Calculul gradientului:** Gradientul reprezinta directia (crestem sau scadem) si marimea ajustarii necesare pentru coeficientii ''W'', pentru a reduce eroarea. Se calculeaza inmultind transpusa matricei ''X'' (de dimensiune $math[(n+1) * m]) cu vectorul de eroare (de dimensiune $math[m * 1]), si apoi se imparte fiecare element la m pentru a obtine media aritmetica. Rezultatul este un vector de dimensiune $math[(n+1) * 1]. | ||
- **Actualizarea ipotezei (W):** Se actualizeaza ''W'' scazand produsul dintre gradient si un pas de invatare (alpha, un scalar), din valorile curente ale lui ''W''. Acest pas determina cat de repede invatam sau ajustam parametrii - influentand viteza de convergere la valorile optime. Noua valoare a lui ''W'' va fi folosita in urmatoarea iteratie a algoritmului. | - **Actualizarea ipotezei (W):** Se actualizeaza ''W'' scazand produsul dintre gradient si un pas de invatare (alpha, un scalar), din valorile curente ale lui ''W''. Acest pas determina cat de repede invatam sau ajustam parametrii - influentand viteza de convergere la valorile optime. Noua valoare a lui ''W'' va fi folosita in urmatoarea iteratie a algoritmului. | ||
- | - Acum ca avem coeficientii regresiei, pentru ca am calculat matricea ''W'' dupa ''gradient_descent_steps'' pasi, vrem sa vedem cat de buna este estimarea noastra. Acum vom lua setul de date de validare si vom calcula predictiile regresiei noastre pentru fiecare locuinta. In continuare, vom calcula eroarea ca media aritmetica intre modulul diferentei dintre pretul prezis si cel real pentru fiecare locuinta din acest set de date de validare. | + | - Acum ca avem coeficientii regresiei, pentru ca am calculat matricea ''W'' dupa ''gradient_descent_steps'' pasi, vrem sa vedem cat de buna este estimarea noastra. Acum vom lua setul de date de validare si vom calcula predictiile regresiei noastre pentru fiecare locuinta. In continuare, vom calcula eroarea ca media aritmetica intre diferentei dintre pretul prezis si cel real pentru fiecare locuinta din acest set de date de validare. |
- Vom intoarce ipoteza finala ''W'' si eroarea pe setul de validare. | - Vom intoarce ipoteza finala ''W'' si eroarea pe setul de validare. | ||