我要写一个梯度下降算法,你能给我写一个吗
时间: 2024-04-09 12:32:50 浏览: 53
梯度下降算法
当然可以帮你写一个梯度下降算法。以下是一个简单的梯度下降算法的示例代码:
```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):
# 计算预测值
y_pred = np.dot(X, theta)
# 计算误差
error = y_pred - y
# 计算梯度
gradient = np.dot(X.T, error) / num_samples
# 更新参数
theta = theta - learning_rate * gradient
return theta
# 使用示例
X = np.array([[1, 3], [1, 4], [1, 5], [1, 6]])
y = np.array([4, 5, 6, 7])
learning_rate = 0.01
num_iterations = 1000
theta = gradient_descent(X, y, learning_rate, num_iterations)
print(f"参数 theta: {theta}")
```
这个示例中,我们假设输入数据 `X` 是一个矩阵,每行是一个样本,每列是一个特征。`y` 是对应的目标值。算法通过迭代更新参数 `theta`,使得预测值与实际值之间的误差最小化。
你可以根据自己的需求调整学习率和迭代次数,并根据实际情况修改输入数据的维度和内容。
希望这个示例能帮到你!如果有任何问题,请随时提问。
阅读全文