机器学习梯度下降法python实现
时间: 2023-11-15 22:07:13 浏览: 97
机器学习中的梯度下降法是一种常用的优化算法,用于求解损失函数的最小值。在Python中,可以使用NumPy和Matplotlib等库来实现梯度下降法。具体实现步骤如下:
1. 定义损失函数和梯度函数;
2. 初始化参数;
3. 设置学习率和迭代次数;
4. 循环迭代,更新参数,直到满足停止条件;
5. 可视化损失函数和参数更新轨迹。
下面是一个简单的梯度下降法实现的范例代码:
import numpy as np
import matplotlib.pyplot as plt
# 定义损失函数和梯度函数
def loss_function(x):
return (x - 2.5)**2 - 1
def gradient_function(x):
return 2 * (x - 2.5)
# 初始化参数
xi = 0
lr = 0.1
epochs = 20
# 设置学习率和迭代次数
trajectory = []
# 循环迭代,更新参数,直到满足停止条件
for i in range(epochs):
trajectory.append(xi)
xi = xi - lr * gradient_function(xi)
# 可视化损失函数和参数更新轨迹
plot_x = np.linspace(-1, 6, 141)
plot_y = loss_function(plot_x)
plt.plot(plot_x, plot_y)
plt.plot(trajectory, loss_function(np.array(trajectory)), 'r-o')
plt.show()
阅读全文