Внедрение Python для машинного обучения Gradient Descent - PullRequest
2 голосов
/ 22 марта 2019

Задача

Я написал этот код, но это дает ошибки:

RuntimeWarning: переполнение при умножении

t2_temp = sum(x*(y_temp - y))

RuntimeWarning: переполнение в double_scalars

t1_temp =  sum(y_temp - y)

Должен ли я использовать функцию масштабирования или в моем коде что-то не так?

код

import pandas as pd
import numpy as np
import matplotlib.pyplot as plt

def gradient_descent(x,y,t1,t2,repeat,alpha):
    n = x.size
    for i in range(repeat):
        y_temp = x*t2 + t1
        t1_temp =  sum(y_temp - y)
        t2_temp = sum(x*(y_temp - y))
        t1 = t1 - alpha * (t1_temp/n)
        t2 = t2 - alpha * (t2_temp/n)

    return [t1,t2]


d = pd.read_csv("train.csv")

x = d['GrLivArea']
y = d['SalePrice']

x = (np.array(x.values))
y = (np.array(y.values))


alpha = 0.047
repeat = 3000

theta = [1.23154644,1.654132398]

tt = gradient_descent(x,y,theta[0],theta[1],repeat,alpha)

print("FINISH")

1 Ответ

1 голос
/ 22 марта 2019

Ваш код в порядке; x и y слишком велики. Вы можете выполнить стандартизацию или другую форму масштабирования.

...