Sobes.tech
Middle+

Ինչպե՞ս ենք լուծում գծային ռեգրեսիայի խնդիր, եթե բացահայտ ֆորմուլա չենք օգտագործում։

sobes.tech AI

Պատասխան AI-ից

Եթե բացահայտ բանաձև չեք օգտագործում գծային ռեգրեսիայի խնդիրը լուծելու համար (օրինակ, նորմալ հավասարումը), ապա սովորաբար կիրառվում են թվային օպտիմալացման մեթոդներ, ինչպիսիք են գրադիենտային իջեցումը:

Իդեան այն է, որ մոդելի պարամետրերը (շարժականները) վերանայվում են հերթականաբար՝ նվազեցնելով կորուստի ֆունկցիան (օրինակ, միջին քառակուսային սխալը): Յուրաքանչյուր քայլում հաշվարկվում է կորուստի ֆունկցիայի գրադիենտը պարամետրերի նկատմամբ, և պարամետրերը կարգավորվում են սխալը նվազեցնելու ուղղությամբ:

Python-ում օրինակ՝ գրադիենտային իջեցմամբ:

import numpy as np

# X - հատկանիշների մատրից, y - նպատակային փոփոխական
# Ավելացնում ենք միավորների սյունակ ազատ անդամի համար
X_b = np.c_[np.ones((len(X), 1)), X]

# Շարժականների սկզբնական արժեքներ
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("Լավագույն պարամետրեր՝", theta)

Այս կերպ՝ առանց բացահայտ բանաձևի, մենք օգտագործում ենք հերթական մոտեցում՝ մոտեցնելու համար օպտիմալ պարամետրերին: