python实现梯度下降算法
时间: 2023-12-04 14:56:19 浏览: 76
梯度下降算法是一种常用的优化算法,用于求解损失函数最小化的问题。以下是用 Python 实现梯度下降算法的示例代码:
```python
import numpy as np
def gradient_descent(X, y, alpha, num_iters):
"""
梯度下降算法
:param X: 特征矩阵,shape=(m, n)
:param y: 标签矩阵,shape=(m, 1)
:param alpha: 学习率
:param num_iters: 迭代次数
:return: 参数 theta,shape=(n, 1)
"""
m, n = X.shape
theta = np.zeros((n, 1)) # 初始化参数
for i in range(num_iters):
h = np.dot(X, theta) # 预测值
loss = h - y # 损失值
gradient = np.dot(X.T, loss) / m # 梯度
theta = theta - alpha * gradient # 更新参数
return theta
```
其中,X 为特征矩阵,y 为标签矩阵,alpha 是学习率,num_iters 是迭代次数。在每一次迭代中,首先计算预测值 h,然后计算损失值 loss,接着计算梯度 gradient,最后更新参数 theta。最终返回参数 theta。
阅读全文