线性回归的梯度下降法用python代码实现
时间: 2023-06-04 19:05:10 浏览: 153
Python实现梯度下降法线性回归模拟
可以的,以下是一个简单的线性回归梯度下降法的python实现:
```
import numpy as np
# 定义数据集
X = np.array([[1, 2], [2, 3], [3, 4], [4, 5]])
y = np.array([3, 4, 5, 6])
# 初始化参数
theta = np.array([0, 0])
alpha = 0.01
iterations = 1000
# 定义代价函数
def compute_cost(X, y, theta):
m = len(y)
J = 1 / (2 * m) * np.sum((np.dot(X, theta) - y) ** 2)
return J
# 定义梯度下降函数
def gradient_descent(X, y, theta, alpha, iterations):
m = len(y)
J_history = np.zeros(iterations)
for i in range(iterations):
theta = theta - alpha * (1 / m) * np.dot(X.T, (np.dot(X, theta) - y))
J_history[i] = compute_cost(X, y, theta)
return theta, J_history
theta, J_history = gradient_descent(X, y, theta, alpha, iterations)
print(theta)
```
在以上代码中,X和y是线性回归的数据集,theta是初始化的参数向量,alpha是学习率,iterations是迭代次数。compute_cost函数计算代价函数,gradient_descent函数执行梯度下降算法来更新参数theta,并记录每一次迭代的代价函数值。程序的最后一行输出了最终的参数theta。
阅读全文