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。你可以根据自己的数据集进行修改和调整。

需要注意的是,此示例仅用于演示目的。在实际应用中,可能需要对算法进行更多的改进和调优,例如添加正则化项、处理特征缩放、设置收敛条件等。

Python梯度下降算法:简单示例与代码实现

原文地址: https://www.cveoy.top/t/topic/pop 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录