Python梯度下降算法:简单示例与代码实现
Python梯度下降算法:简单示例与代码实现
梯度下降算法是一种常用的迭代优化算法,用于寻找函数的最小值。在机器学习中,梯度下降算法常用于更新模型的参数,以最小化损失函数。
以下是使用Python实现的简单梯度下降算法示例:
import numpy as np
def gradient_descent(X, y, learning_rate, num_iterations):
num_samples, num_features = X.shape
theta = np.zeros(num_features) # 初始化参数向量
for iteration in range(num_iterations):
predictions = np.dot(X, theta) # 预测值
errors = predictions - y # 预测误差
gradient = (1/num_samples) * np.dot(X.T, errors) # 梯度计算
theta = theta - learning_rate * gradient # 参数更新
return theta
# 示例数据
X = np.array([[1, 3], [2, 4], [3, 7], [4, 9]])
y = np.array([1, 2, 3, 4])
learning_rate = 0.01
num_iterations = 1000
# 调用梯度下降算法
theta = gradient_descent(X, y, learning_rate, num_iterations)
print('学习到的参数:', theta)
在这个示例中:
- 我们定义了一个函数
gradient_descent,它接受输入特征矩阵X,目标值向量y,学习率learning_rate和迭代次数num_iterations作为参数。 - 算法使用随机初始化的参数向量
theta,然后进行迭代更新,直到达到指定的迭代次数。 - 在每次迭代中,它计算预测值、预测误差和梯度,并更新参数向量。
在这个例子中,我们使用了一个简单的数据集作为输入特征矩阵 X 和目标值向量 y。你可以根据自己的数据集进行修改和调整。
需要注意的是,此示例仅用于演示目的。在实际应用中,可能需要对算法进行更多的改进和调优,例如添加正则化项、处理特征缩放、设置收敛条件等。
原文地址: https://www.cveoy.top/t/topic/pop 著作权归作者所有。请勿转载和采集!