【机器学习】(4)-- 多元线性回归

线性回归

线性回归算法是一种用于预测一个或多个自变量(解释变量)与因变量(响应变量)之间关系的统计方法。这种方法基于线性假设,即因变量是自变量的线性组合加上一个误差项。

基本原理:线性回归的目标是找到一条最佳的直线(或超平面,在多维空间中),使得这条直线上的点到实际数据点的距离(通常是垂直距离)最小。这条最佳直线由系数(也称为权重)和截距确定,系数表示自变量对因变量的影响程度,截距是当所有自变量都为0时因变量的值。

本篇我们来学习如何实现多元线性回归,对于算法模型我们依旧从三个方面来实现它:

  1. 训练模型
  2. 测试模型
  3. 线性回归方程
  4. 测试实用性

训练模型

  1. 收集数据

收集到的多元数据:

链接:训练数据
提取码:2ei8

注:内含两个不同数据,学习完成之后可自行尝试对另一个数据实现线性回归。

  1. 读取数据

对于表格型数据,用pandas读取处理比较好:

import pandas as pd
data = pd.read_excel('案例.xlsx')
  1. 绘制散点图

观察数据分布,可能图像无法显示出来,没关系,小bug。

#绘制散点图
from matplotlib import pyplot as plt
plt.scatter(data.不良贷款,data.各项贷款余额,data.本年累计应收贷款,data.贷款项目个数)
plt.show()

在这里插入图片描述

  1. 查看相关系数

查看数据对结果的影响程度,若是影响程度很低的话可以进行特征选择,即将影响小的数据去除掉:

corr = data[['体重','年龄','血压收缩']].corr()

在这里插入图片描述

  1. 建立模型

这里我们使用sklearn中的线性回归模型:

from sklearn.linear_model import LinearRegression
#估计模型参数,建立回归模型
lr_model = LinearRegression()
data_x = data[['不良贷款','各项贷款余额','本年累计应收贷款','贷款项目个数']]
data_y = data[['本年固定资产投资额']]
lr_model.fit(data_x,data_y) #训练模型

测试模型

我们就将训练的数据本身放进模型中测试看看,他对本身训练的数据测试结果准确率如何:

test_predicted = lr_model.predict(data_x)
score = lr_model.score(data_x,data_y) #模型测试准确率
print(score)
---------------
0.6972425448090671

模型准确率达到要求之后,我们可一将线性模型的回归方程式写出来。

线性回归方程

我们可以得到具体的线性回归表达式:

#round是用来对浮点数进行四舍五入到指定的小数位数
#模型训练完成之后,调试模式下,模型标签中有intercept_,以及coef_参数
b = lr_model.intercept_  # 查看截距
a = lr_model.coef_     # 查看斜率
print("线性回归模型为:y = {:.2f}x1 + {:.2f}x2 + {:.2f}x3 + {:.2f}x4 + {:.2f}.".format(a[0][0],a[0][1],a[0][2],a[0][3],b[0]))
------------------------------
线性回归模型为:y = 3.74x + -36.36.

测试实用性

我们将相关数据设置为[0.8,65.33,7.8,4],[0.5,57.33,4.8,2]时,放进模型中,求出它们对应的本年固定资产投资额结果:

predicted = lr_model.predict([[0.8,65.33,7.8,4],[0.5,57.33,4.8,2]])
print(predicted)
------------------
[[34.44918315]
 [29.12582281]]

这样我们就完整的实现了多元线性回归。

总结

本篇介绍了如何实现多元线性回归,其中需要注意的是,对于相关系数过小的数据,我们要进行选择调整。

总的来说与一元线性回归处理方式差不多。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值