Middle+
Kuidas lahendame lineaarse regressiooni probleemi, kui me ei kasuta selget valemit?
sobes.tech AI
Vastus AI-lt
Kui te ei kasuta otsest valemit lineaarse regressiooni probleemi lahendamiseks (näiteks normaalvõrrandit), siis tavaliselt rakendatakse arvulisi optimeerimismeetodeid, näiteks gradientlangust.
Idee on modeliparameetreid (kaalud) iteratiivselt uuendada, minimeerides kaotusefunktsiooni (näiteks keskmist ruutviga). Iga sammu jooksul arvutatakse kaotusefunktsiooni gradient parameetrite suhtes ning parameetrid korrigeeritakse vea vähendamise suunas.
Näide Pythonis gradientlanguse kasutamisega:
import numpy as np
# X - tunnuste maatriks, y - sihtmuutuja
# Lisame vabadusse rea ühesid
X_b = np.c_[np.ones((len(X), 1)), X]
# Algväärtustame kaalud
theta = np.random.randn(X_b.shape[1], 1)
learning_rate = 0.01
n_iterations = 1000
m = len(X_b)
for iteration in range(n_iterations):
gradients = 2/m * X_b.T.dot(X_b.dot(theta) - y)
theta = theta - learning_rate * gradients
print("Optimaalsed parameetrid:", theta)
Sellisel viisil, ilma otsese valemita, kasutame iteratiivset lähenemist optimaalseimate parameetrite lähedal.