已知梯度下降算法得到的函数,编写一个输出线性关系的函数
时间: 2024-05-05 12:15:44 浏览: 102
由于梯度下降算法可以用于求解各种类型的函数,因此输出线性关系的函数需要根据具体的函数形式进行编写。下面以求解线性回归模型为例,给出一个输出线性关系的函数:
```python
def linear_regression(X, y, alpha=0.01, num_iterations=1000):
"""
使用梯度下降算法求解线性回归模型
参数:
X: 输入特征矩阵,形状为 (m, n),其中 m 为样本数,n 为特征数
y: 输出标签,形状为 (m, 1)
alpha: 学习率,默认为 0.01
num_iterations: 迭代次数,默认为 1000
返回:
theta: 模型参数,形状为 (n, 1)
cost_history: 每次迭代后的代价值
"""
m, n = X.shape
theta = np.zeros((n, 1))
cost_history = []
for i in range(num_iterations):
# 计算预测值
y_pred = np.dot(X, theta)
# 计算代价值
cost = np.sum((y_pred - y) ** 2) / (2 * m)
cost_history.append(cost)
# 计算梯度
grad = np.dot(X.T, y_pred - y) / m
# 更新参数
theta -= alpha * grad
return theta, cost_history
```
这个函数实现了使用梯度下降算法求解线性回归模型的过程。其中,输入特征矩阵 X 和输出标签 y 都是二维的 numpy 数组,而学习率 alpha 和迭代次数 num_iterations 则是可选的超参数。函数返回模型参数 theta 和每次迭代后的代价值 cost_history。注意到这个函数的输出线性关系是指线性回归模型的输出 y_pred 与输入特征 X 之间的线性关系。
阅读全文