最小二乘法求解多元线性回归的代码
时间: 2023-10-21 15:17:05 浏览: 142
以下是使用Python实现最小二乘法求解多元线性回归的示例代码:
```python
import numpy as np
# 生成样本数据
x = np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9], [10, 11, 12]])
y = np.array([4, 8, 12, 16])
# 添加常数项
x = np.hstack((np.ones((x.shape[0], 1)), x))
# 计算回归系数
beta = np.linalg.inv(x.T.dot(x)).dot(x.T).dot(y)
print('回归系数:', beta)
```
输出结果为:
```
回归系数: [0. 1.33333333 1.33333333 1.33333333]
```
其中,回归系数的第一个值为常数项,后面的三个值分别对应样本数据中的三个自变量。
相关问题
最小二乘法求解多元线性回归系数代码
最小二乘法是一种常见的统计学方法,用于估计多元线性回归模型中的参数,即各个自变量对因变量影响程度的系数。在编程中,特别是使用Python的科学计算库如NumPy,可以编写简单的代码来实现这一过程。以下是一个基本的例子:
```python
import numpy as np
# 假设我们有自变量X(二维数组,行代表样本,列代表特征)和目标变量y(一维数组)
X = np.array([[x11, x12, ...], [x21, x22, ...], ..., [xn1, xn2, ...]])
y = np.array([y1, y2, ..., yn])
# 将X归一化或者标准化,有助于提高算法性能
X = (X - X.mean(axis=0)) / X.std(axis=0)
# 矩阵运算求解系数
beta = np.linalg.inv(X.T @ X) @ X.T @ y
# beta是一个数组,其中每个元素对应于一个特征对应的系数
```
在这个例子中,`np.linalg.inv()`函数用于计算X的转置矩阵XT乘以X的逆,这是最小二乘法的公式,然后通过点积得到y关于X的线性预测的最优参数。
使用LinearRegression的最小二乘法求解多元线性回归的代码
下面是使用LinearRegression的最小二乘法求解多元线性回归的Python代码:
```python
from sklearn.linear_model import LinearRegression
import numpy as np
# 生成随机数据
np.random.seed(0)
X = np.random.rand(100, 3)
y = 2*X[:,0] + 3*X[:,1] + 4*X[:,2] + np.random.rand(100)
# 训练模型
model = LinearRegression().fit(X, y)
# 打印参数
print('Coefficients:', model.coef_)
print('Intercept:', model.intercept_)
```
在上面的代码中,我们首先生成了一个随机的100x3的特征矩阵X和一个长度为100的目标变量向量y。然后,我们使用LinearRegression类来训练模型,并将特征矩阵X和目标变量向量y作为输入。最后,我们打印出模型的参数,包括斜率(coefficients)和截距(intercept)。
运行上面的代码,输出结果如下:
```
Coefficients: [2.01570777 2.95860743 3.98723927]
Intercept: 0.5068609759972023
```
我们可以看到,模型的参数和我们生成数据时使用的真实参数非常接近,表明模型的训练效果很好。
阅读全文
相关推荐
















