写一个随机梯度下降的Python代码
时间: 2024-09-29 12:02:49 浏览: 28
随机梯度下降(Stochastic Gradient Descent, SGD)是一种常用的优化算法,用于求解机器学习模型中的最小化函数。这里是一个简单的随机梯度下降代码示例,假设我们要优化一个简单的线性回归模型:
```python
import numpy as np
def sigmoid(x):
return 1 / (1 + np.exp(-x))
# 假设我们有一个数据集 X (特征) 和 y (目标)
X = np.array([[0], [1], [2], [3]])
y = np.array([0.5, 0.9, 1.4, 1.8])
# 初始化权重
weights = np.zeros((1, X.shape[1]))
# 设置学习率和迭代次数
learning_rate = 0.01
epochs = 1000
for epoch in range(epochs):
for i in range(len(X)):
# 随机选择一个样本
sample_index = np.random.randint(0, len(X))
x_sample = X[sample_index]
y_sample = y[sample_index]
# 计算预测值和误差
prediction = sigmoid(np.dot(weights, x_sample))
error = y_sample - prediction
# 更新权重
weights += learning_rate * error * x_sample
# 输出最终的权重
print("Final weights after training:", weights)
阅读全文