python - 机器学习梯度下降python实现

标签 python machine-learning linear-regression gradient-descent

问题

我已经写了这段代码,但是它给出了错误:

RuntimeWarning: overflow encountered in multiply

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

RuntimeWarning: overflow encountered in 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")

最佳答案

您的代码没问题; xy 太大了。您可以执行标准化或某种其他形式的缩放。

关于python - 机器学习梯度下降python实现,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55292917/

相关文章:

python - 恢复保存的模型时尝试使用未初始化的值

machine-learning - 是否有支持向量回归 (SVR) 库可以为我提供所使用的回归模型/方程?

python - 嵌入数值类别

r - 使用 lm() 进行线性回归 - 对结果感到惊讶

r - 是否有简单回归的快速估计(只有截距和斜率的回归线)?

python - 将 Python 结果导出到 CSV

python - Tensorflow 相同的训练精度持续

python - 散点矩阵的 Pandas 图例

python - 如何在短句的大型数据集中有效地使用 spacy?

python - 检索 y 轴截距的标准差