Почему scipy.optimize.check_grad возвращает массив? - PullRequest
0 голосов
/ 19 сентября 2019

У меня есть модель, предсказывающая цены на жилье с использованием регрессии.

Для точного решения я определил две функции для вычисления среднего квадрата ошибки (mse) и градиента функции ошибки (град).Оба они определены ниже:

def mse(theta,X,Y):
    Y_pred=np.dot(X,theta)
    dY=Y_pred-Y
    return 0.5*np.mean(dY**2)
def grad(theta,X,Y):
    Y_pred=np.dot(X,theta)
    dY=(Y_pred-Y)
    return (np.dot(X.T,dY)/len(X)).T

Входными данными для вышеупомянутого являются: X -> 7 характеристик набора данных.Размеры будут 20640,7;Y -> цена на жилье будет предсказываться.Размеры 20640,1;theta -> Случайная переменная, сгенерированная с использованием следующего кода

theta = np.random.normal(size=(7))

Теперь, когда я использую scipy.optimize.check_grad (mse, grad, theta, X, Y), она возвращает массив размера 7 вместопросто дать мне ожидаемый результат порядка 10 ^ -7.

Почему это так, и как я могу улучшить свой код?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...