多元线性回归代码实现
时间: 2023-07-02 17:15:22 浏览: 198
以下是一个示例的 Python 多元线性回归代码实现:
```python
import numpy as np
from sklearn.linear_model import LinearRegression
# 定义自变量 X 和因变量 y
X = np.array([[1, 2, 3, 4, 5], [6, 7, 8, 9, 10], [11, 12, 13, 14, 15]]).T
y = np.array([2.1, 3.9, 6.1, 8.0, 10.1])
# 拟合多元线性回归模型
model = LinearRegression().fit(X, y)
# 输出模型系数
print('多元线性回归模型系数:', model.coef_)
print('截距项:', model.intercept_)
```
在上面的代码中,我们首先定义了自变量 X 和因变量 y,并将自变量 X 转置为行向量的形式,以便使用 scikit-learn 的 `LinearRegression` 类进行拟合。然后,我们使用 `fit` 方法拟合多元线性回归模型,并将模型存储在变量 `model` 中。最后,我们输出了模型系数和截距项。需要注意的是,scikit-learn 的 `LinearRegression` 类会自动添加常数项,无需手动添加。
相关问题
R语言多元线性回归代码实现
以下是 R 语言多元线性回归的基本代码实现:
```
# 导入数据
data <- read.csv("data.csv")
# 拟合模型
model <- lm(Y ~ X1 + X2 + X3, data = data)
# 查看模型概要信息
summary(model)
# 预测新值
new_data <- data.frame(X1 = c(1,2,3), X2 = c(4,5,6), X3 = c(7,8,9))
predicted_values <- predict(model, newdata = new_data)
```
其中,`Y` 是因变量,`X1, X2, X3` 是自变量。通过 `lm` 函数拟合模型并输出概要信息,然后可以使用 `predict` 函数来预测新的值。
最小二乘法实现多元线性回归代码
以下是使用最小二乘法实现多元线性回归的示例代码:
```
import numpy as np
# 生成训练数据
X = np.array([[145, 2.1, 18], [156, 2.2, 20], [160, 2.4, 22], [170, 2.6, 24], [180, 2.8, 26]])
y = np.array([68, 71, 73, 76, 77])
# 计算回归系数
X_b = np.c_[np.ones((5,1)), X] # 添加常数列 x0 = 1
theta_hat = np.linalg.inv(X_b.T.dot(X_b)).dot(X_b.T).dot(y)
# 预测新数据
X_new = np.array([[162, 2.3, 21], [172, 2.7, 25]])
X_new_b = np.c_[np.ones((2,1)), X_new]
y_predict = X_new_b.dot(theta_hat)
# 打印结果
print("theta_hat:", theta_hat)
print("y_predict:", y_predict)
```
说明:
- 训练数据为 5 个样本,每个样本有 3 个特征;
- 样本特征分别为身高、体重指数、年龄,目标为预测体重;
- 使用最小二乘法计算回归系数;
- 预测两个新样本的体重。
阅读全文