Задача в многопараметрическом коде линейной регрессии - PullRequest
0 голосов
/ 05 июня 2019

Я написал код многопараметрической линейной регрессии с нуля, но когда я пытаюсь запустить код, окончательное значение тэты не корректно (некоторые записи имеют порядок 10^20). Может кто-нибудь помочь мне?

Это набор данных прогноза Бостонского дома. Я пытаюсь предсказать цену дома. Я написал код линейной регрессии в соответствии с алгоритмом, предложенным профессором Эндрю Нгом в его курсе машинного обучения. Я попытался реализовать этот алгоритм в Python. Но мои тэта-значения все еще неверны.

Вот ссылка

Вот мой код:

import pandas as pd
import numpy as np

X_train = pd.read_csv("train.csv")
X_test = pd.read_csv("test.csv")
X_train.head()

X_train.shape

y_train = X_train['medv']
X_train = X_train.drop(columns = ['medv'], axis = 1)

theta = np.zeros(14)

alpha = 0.01
m = len(theta)

X_train.head()
X_train = X_train.drop(columns = ['ID'], axis = 1)
X_test = X_test.drop(columns = ['ID'], axis = 1)

X_train = np.column_stack((np.ones(len(X_train)),X_train))

X_train.shape

for j in range(1000):
    for i in range(m):
        h = np.dot(X_train, theta)
        d_J = np.dot((h - y_train), X_train[:, i])
        theta[i] = theta[i] - (alpha)*(1/m)*d_J

Тета-значения:

array([[ 5.41571429e+00],
       [ 7.35302513e+00],
       [ 5.96202743e+01],
       [-6.13110873e+02],
       [ 1.00881890e+02],
       [ 9.36757919e+02],
       [ 8.19165542e+03],
       [-7.07535737e+05],
       [ 3.54080584e+07],
       [-1.02568786e+08],
       [ 1.22841775e+11],
       [-2.25615368e+14],
       [ 3.50107077e+17],
       [-3.56510417e+20]])

1 Ответ

0 голосов
/ 07 июня 2019

было бы неплохо, если бы мы могли получить ссылку на ваш набор данных

...