机器学习:从公式推导到代码实现多元线性回归
前面我们已经讨论过一元线性回归没如果大家对这个看的比较晦涩,可以查看前置内容:机器学习:从公式推导到代码实现一元线性回归
多元线性回归
我认为多元线性回归与一元线性回归本质上是一样的,一元线性回归可以看成数据特征维度为1的多元线性回归,而多元主要体现在数据维度的多样性,比如说房价预测,决定房价的因素有很多(比如,位置,新旧,大小。。。等)。
求解过程
然后我们通过矩阵乘法的运算性质,我们可以得出这四项都是一个一维的常数,其中第二项于第三项互为转置,可以化简得(如果大家忘记了矩阵运算法则,下图以给出性质):
为了使代价函数最小,我们对其求导数,这里矩阵求导过程以省略,
$$W^*=argmin(L(W))
W^=(X^TX)^{-1}X^TY$$
代码
import numpy as np
import pandas as pd
import statsmodels.api as sm
file = r'C:\Users\data.xlsx'
data = pd.read_excel(file)
data.columns = ['y', 'x1', 'x2', 'x3', 'x4', 'x5', 'x6', 'x7', 'x8', 'x9']
x = sm.add_constant(data.iloc[:,1:]) #生成自变量
y = data['y'] #生成因变量
model = sm.OLS(y, x) #生成模型
result = model.fit() #模型拟合
result.summary() #模型描述