Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- def ulr_gd_step_2(x, y, alpha, beta):
- if ulr_gd_step_2.exit is False:
- # calcolo il vettore degli errori nei dati
- error = alpha * x + beta - y
- # calcolo le derivate parziali del MSE
- d_alpha = 2 * (error * x).mean()
- d_beta = 2 * error.mean()
- # calcolo alpha e beta aggiornati
- new_alpha = alpha - ulr_gd_step_2.step_size * d_alpha
- new_beta = beta - ulr_gd_step_2.step_size * d_beta
- #calcolo il nuovo passo per l'iterazione successiva
- ulr_gd_step_2.step_size /= 1.5
- #controllo che sia almeno la seconda iterazione
- if ulr_gd_step_2.last_error is not None:
- #Calcolo il nuovo errore
- new_error = ulr_mse(x, y, new_alpha, new_beta)
- if (ulr_gd_step_2.last_error - new_error >= 0) and (ulr_gd_step_2.last_error - new_error) <= 0.001:
- ulr_gd_step_2.exit = True
- return new_alpha, new_beta
- ulr_gd_step_2.last_error = ulr_mse(x, y, new_alpha, new_beta)
- return new_alpha, new_beta
- ulr_gd_step_2.last_error = None
- ulr_gd_step_2.step_size = 0.001
- ulr_gd_step_2.exit = False
- alpha = 0
- beta = 0
- for i in range(20):
- alpha, beta = ulr_gd_step_2(temp, demand, alpha, beta)
- if(ulr_gd_step_2.exit == True):
- break
- ulr_mse(temp, demand, alpha, beta)
- plot_model_on_data(temp, demand, make_model(alpha, beta))
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement