Я пытаюсь реализовать свою собственную модель полиномиальной регрессии с нуля, вот что я написал до сих пор:
import numpy as np
class Polynomial:
def __init__(self, eta=0.2, degree=1, epochs=100):
self.eta = eta
self.degree = degree
self.coef = np.ones(shape = (self.degree,))
self.epochs = epochs
def fit_coef(self, X_train, y_train):
temp_coef = np.ones(shape=(self.degree, ))
size = len(X_train)
for _ in range(3):
for x, y in zip(X_train, y_train):
arr = np.array([x**i for i in range(self.degree)])
for i in range(self.degree):
err = np.sum(np.transpose(arr)*self.coef)*2/size
err -= y
err *= x**i
err *= self.eta
temp_coef[i] -= err
print(temp_coef[i])
self.coef = temp_coef
После попытки приспособить мою модель к любому примерному набору данных, я столкнулся спроблема, коэффициенты моей модели становятся значениями NaN, я заметил, что они очень быстро растут до больших значений.Я не могу объяснить это, так что исправьте это.Большинство онлайн-уроков, статей о полиномиальной регрессии фокусируются на использовании sklearn или других пакетов, поэтому я не нашел решения.Вы можете помочь мне разобраться с этой проблемой?