如何访问线性回归的梯度, 举一个代码例子
时间: 2024-05-08 22:22:16 浏览: 55
分享一下利用sklearn进行线性回归与梯度下降算法代码实践
在线性回归中,我们需要计算损失函数对于模型参数的梯度来更新模型参数。假设我们的线性回归模型为:
$h_\theta(x) = \theta_0 + \theta_1 x$
其中,$\theta_0$ 和 $\theta_1$ 是模型参数。我们使用均方误差作为损失函数:
$J(\theta_0, \theta_1) = \frac{1}{2m} \sum_{i=1}^{m}(h_\theta(x^{(i)}) - y^{(i)})^2$
其中,$m$ 是样本数量,$x^{(i)}$ 和 $y^{(i)}$ 是第 $i$ 个样本的特征和标签。
我们可以使用梯度下降法来优化模型参数。梯度下降法的核心是计算损失函数对于模型参数的梯度。对于线性回归模型,梯度可以用下面的公式计算:
$\frac{\partial J}{\partial \theta_0} = \frac{1}{m} \sum_{i=1}^{m}(h_\theta(x^{(i)}) - y^{(i)})$
$\frac{\partial J}{\partial \theta_1} = \frac{1}{m} \sum_{i=1}^{m}(h_\theta(x^{(i)}) - y^{(i)})x^{(i)}$
下面是一个 Python 代码示例,用于计算线性回归模型的梯度:
```python
import numpy as np
def linear_regression_gradient(theta, X, y):
m = len(y)
h = np.dot(X, theta)
grad = np.dot(X.T, h - y) / m
return grad
```
其中,`theta` 是模型参数,`X` 是样本特征矩阵,`y` 是样本标签向量。`np.dot()` 函数用于计算矩阵乘法,`X.T` 表示 `X` 的转置矩阵。
阅读全文