用Python写一个梯度下降算法,并线性回归显示
时间: 2023-04-07 08:05:19 浏览: 126
好的,这是一个关于机器学习的问题,我可以回答。梯度下降算法是一种常用的优化算法,可以用于训练线性回归模型。在Python中,可以使用NumPy库来实现梯度下降算法和线性回归模型的训练。以下是一个简单的代码示例:
```
import numpy as np
# 定义梯度下降算法
def gradient_descent(X, y, theta, alpha, num_iters):
m = len(y)
for i in range(num_iters):
h = X.dot(theta)
loss = h - y
gradient = X.T.dot(loss) / m
theta = theta - alpha * gradient
return theta
# 生成随机数据
np.random.seed(0)
X = 2 * np.random.rand(100, 1)
y = 4 + 3 * X + np.random.randn(100, 1)
# 添加偏置项
X_b = np.c_[np.ones((100, 1)), X]
# 初始化参数
theta = np.random.randn(2, 1)
# 使用梯度下降算法训练模型
theta = gradient_descent(X_b, y, theta, alpha=0.1, num_iters=1000)
# 打印参数
print(theta)
# 绘制数据和模型
import matplotlib.pyplot as plt
plt.scatter(X, y)
plt.plot(X, X_b.dot(theta), 'r-')
plt.show()
```
这段代码会生成一些随机数据,并使用梯度下降算法训练一个线性回归模型。最后,会打印出模型的参数,并绘制出数据和模型的图像。
阅读全文