Press "Enter" to skip to content

多元线性回归的数学原理和代码实现 | 更文挑战

本站内容均来自兴趣收集,如不慎侵害的您的相关权益,请留言告知,我们将尽快删除.谢谢.

“这是我参与更文挑战的第15天,活动详情查看:更文挑战”

 

多元线性回归的原理和一元线性回归的原理在本质上是一样的,不过因为多元线性回归可以考虑到多个因素对目标变量的影响,所以在商业实战中应用更为广泛。

 

多元线性回归模型可以表示为如下所示的公式。

 

 

其中x1、x2、x3……为不同的特征变量,k1、k2、k3……则为这些特征变量前的系数,k0为常数项。多元线性回归模型的搭建也是通过数学计算来获取合适的系数,使得如下所示的残差平方和最小

 

 

数学上通过最小二乘法和梯度下降法来求解系数,其核心代码和一元线性回归其实是一致的,具体如下。

 

from sklearn.linear_model import LinearRegression
regr = LinearRegression()
regr.fit(X,Y)

 

上述代码和一元线性回归代码的区别在于这里的X包含多个特征变量信息。利用多元线性回归可以构建更加丰富和实用的模型,例如,根据工龄、地域、行业等因素来预测薪水,根据房屋大小、所处位置、是否靠近地铁等因素来预测房价等。

 

客户价值预测模型

 

1.案例背景

 

以信用卡客户的客户价值为例来解释客户价值预测的具体含义

 

2.读取数据

 

通过如下代码读取相关数据。这里共选取了100多组已有的客户价值数据,其中部分数据经过简单的预处理。

 

import pandas as pd 
df = pd.read_excel('客户价值数据表.xlsx')
df.head()

 

打印输出的前5行数据如下。“客户价值”列为1年的客户价值,即在1年里能给银行带来的收益;“学历”列的数据已经做了预处理,其中2代表高中学历,3代表本科学历,4代表研究生学历;“性别”列中,0代表女,1代表男

 

 

此时后5列为自变量,“客户价值”为因变量,通过如下代码进行自变量、因变量选取.

 

X=df[['历史贷款金额','贷款次数','学历','月收入','性别']]
Y=df['客户价值']

 

3.模型搭建

 

通过如下代码搭建线性回归模型。

 

from sklearn.linear_model import LinearRegression
regr = LinearRegreesion()
regr.fit(X,Y)

 

4.线性回归方程构造

 

通过如下代码查看线性回归方程的系数和常数项。

 

print('各系数:'+str(regr.coef_))
print('常数项k0:'+str(regr.intercept_))

 

5.模型评估

 

评估搭建的多元线性回归模型,代码如下。

 

import statsmodels.api as sm
X2 = sm.add_constant(X)
est = sm.OLS(Y,X2).fit()
print(est.summary())

 

此时运行结果如下图所示。可以看到,模型的R-squared值为0.571,Adj.-squared值为0.553,整体拟合效果不是特别好,可能是因为本案例的数据量偏少,不过在此数据量条件下也算可以接受的结果。再来观察P值,可以发现大部分特征变量的P值都较小,的确与目标变量(即“客户价值”)显着相关,而“性别”这一特征变量的P值达到了0.951,即与目标变量没有显着相关性,这个结论也符合经验认知,因此,在之后的建模中可以舍去“性别”这一特征变量。

 

Be First to Comment

发表评论

您的电子邮箱地址不会被公开。 必填项已用*标注