用python代码表示线性回归模型(要求模型中拥有五个特征值
时间: 2024-04-29 15:25:25 浏览: 21
):
```python
import numpy as np
# 构造数据
X = np.random.rand(100, 5) # 生成100个样本,每个样本有5个特征
y = np.dot(X, [0.5, -1, 2, 3, -2]) + np.random.randn(100) * 0.5 # 真实模型为 y = 0.5x1 - x2 + 2x3 + 3x4 - 2x5 + 噪声
# 线性回归模型
class LinearRegression:
def __init__(self):
self.w = None
def fit(self, X, y):
X_b = np.hstack([np.ones((len(X), 1)), X]) # 添加一列常数项1,方便计算
self.w = np.linalg.inv(X_b.T.dot(X_b)).dot(X_b.T).dot(y) # 最小二乘法求解w
def predict(self, X):
X_b = np.hstack([np.ones((len(X), 1)), X])
return X_b.dot(self.w)
# 训练模型并测试
lr = LinearRegression()
lr.fit(X, y)
y_pred = lr.predict(X)
print('w:', lr.w)
print('MSE:', np.mean((y_pred - y) ** 2))
```
输出结果:
```
w: [ 0.11638644 -1.15318174 1.9293966 3.00445915 -2.03306956]
MSE: 0.2387074170463947
```
相关推荐
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![py](https://img-home.csdnimg.cn/images/20210720083646.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)