机器学习算法–numpy实现线性回归

  • Post author:
  • Post category:其他


简单的模型如线性回归,使用常规的科学计算库或者工具就可以求解,这里使用numpy来实现一个简单的一元线性回归

import numpy as np

X_raw = np.array([2013, 2014, 2015, 2016, 2017], dtype=np.float32)
y_raw = np.array([12000, 14000, 15000, 16500, 17500], dtype=np.float32)
# 归一化
X = (X_raw - X_raw.min()) / (X_raw.max() - X_raw.min())
y = (y_raw - y_raw.min()) / (y_raw.max() - y_raw.min())

# 手工实现梯度下降法求解线性模型中参数a和参数b的值
a, b = 0, 0
num_epoch = 10000
learning_rate = 5e-4
for e in range(num_epoch):
    # 手动计算损失函数关于自变量(模型参数)的梯度
    y_pred = a * X + b
    grad_a, grad_b = 2 * (y_pred - y).dot(X), 2 * (y_pred - y).sum()

    # 更新参数
    a, b = a - learning_rate * grad_a, b - learning_rate * grad_b

print(a, b)



版权声明:本文为fgg1234567890原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。