编写函数linear_regression1(data, alpha)实现多元线性回归
时间: 2023-06-13 08:06:53 浏览: 53
下面是一个简单的实现多元线性回归的Python函数`linear_regression1`:
```python
import numpy as np
def linear_regression1(data, alpha):
# 获取数据
X = data[:, :-1]
y = data[:, -1]
m = len(y)
# 初始化参数
theta = np.zeros((X.shape[1]+1, 1))
X = np.concatenate((np.ones((m, 1)), X), axis=1)
# 计算代价函数
J = np.sum(np.square(X.dot(theta) - y)) / (2*m)
# 迭代训练
for i in range(1000):
gradient = X.T.dot(X.dot(theta) - y) / m
theta = theta - alpha * gradient
J = np.sum(np.square(X.dot(theta) - y)) / (2*m)
return theta
```
这个函数的输入数据`data`是一个$m\times n$的矩阵,其中$m$是样本数,$n$是特征数,最后一列是$y$值。函数的输出是一个$(n+1)\times 1$的向量$\theta$,其中$\theta_0$是截距,$\theta_1,\theta_2,...,\theta_n$是特征权重。
在函数中,我们首先将数据分成特征矩阵$X$和目标值向量$y$,然后初始化参数$\theta$为0向量,将$X$矩阵添加一列1作为截距。接着,我们计算代价函数$J$的值,然后使用梯度下降算法迭代训练$\theta$,最后返回训练得到的$\theta$向量。
需要注意的是,这个函数只是一个简化的多元线性回归实现,在实际使用中可能需要根据具体情况进行调整和优化。