基于jupyter notebook的python编程-----运用sklearn库,导入文件数据模拟多元线性回归分析的目录
上次的人工智能博客,林君学长给大家介绍 如何运用python得sklearn库进行一元线性回归的分析
然而,在现实生活中,很多事物的因素都不止一个原因,都是由多个原因导致的,也就是我,我们需要模拟更多的自变量去预测因变量的取值,这是现实中的普遍的问题,也是我们需要用计算机软件去解决的问题
因此,本次博客,林君学长将给大家介绍,如何使用sklearn对多元线性回归进行模拟分析
一、运行jupyter notebook,搭建python环境
1、打开Windows终端命令行,输入jupyter notebook,打开我们的jupyter工具,如下所示:
2、在jupyter的web网页中创建python文件,如下所示:
3、现在就可以在jupyter的代码行里面输入我们的代码啦!
二、以下列的xlsx表格文件为例,编写我们的python代码的分解步骤
文件内容如下:
表格文件中为自变量X1、X2、X3与因变量Y的线性回归关系
1、导入我们需要的基本库
from sklearn import linear_model #表示,可以调用sklearn中的linear_model模块进行线性回归。
import pandas as pd
import seaborn as sns
import matplotlib.pyplot as plt
%matplotlib inline
1)、其中seaborn库的数据可视化效果比较好看,其实seaborn也应该属于matplotlib的内部包,只是需要再次的单独安装。
如果没有的同学,可以在python的终端命令行里输入如下命令安装:
pip install seaborn
2、导入我们数据文件[多元线性回归.xlsx]
data=pd.read_excel('D:\\多元线性回归.xlsx')
#print(data.head())#打印数据的前5行
#print(data.tail())#打赢数据的后5行
上面注释到打赢输出内容为,打印我们表格文件中的数据,看我们的数据是不是完全导入进去了!
3、为我们的x,y赋值采样
1)、构建X(特征向量)和y(标签列)
X=data[['X1','X2','X3']]
y=data['Y']
y=data.Y
上述分别把标题X1\X2\X3赋值给因变量X,将因变量赋值给y,其中:X是一个特征矩阵,y是一个NumPy向量。
4、构建训练集与测试集
model = linear_model.LinearRegression()
model.fit(X,y)
5、下面就是运用sklearn库进行数据处理,求y=ax1+a1x2+a2x3+b中的系数和截距
print("X1=",model.coef_[0])
print("X2=",model.coef_[1])
print("X3=",model.coef_[2])
print("截距为=",model.intercept_)
以上的数据处理不需要我们去管,是第三方库sklearn写好了的,我们直接拿来用就ok
6、输出打印我们求出的线性回归方程
print("多元线性回归方程为:y=",model.coef_[0],"X1+",model.coef_[1],"X2+",model.coef_[2],"X3+",model.intercept_)
7、通过seaborn库画出拟合曲线图
sns.pairplot(data, x_vars=['X1','X2','X3'], y_vars='Y', height=3, aspect=0.8, kind='reg')
plt.show()
以上就是运用sklearn库来进行多元线性方程的回归分析,过程比较简单,基本就是运用第三方的库!
三、python利用sklearn库分析回归方程的全部源码
import pandas as pd
import seaborn as sns
import matplotlib.pyplot as plt
from sklearn import linear_model
%matplotlib inline
data=pd.read_excel('D:\\多元线性回归.xlsx')
#print(data.head())
#print(data.tail())
X=data[['X1','X2','X3']]
y=data['Y']
y=data.Y
model = linear_model.LinearRegression()
model.fit(X,y)
print("X1=",model.coef_[0])
print("X2=",model.coef_[1])
print("X3=",model.coef_[2])
print("截距为=",model.intercept_)
print("多元线性回归方程为:y=",model.coef_[0],"X1+",model.coef_[1],"X2+",model.coef_[2],"X3+",model.intercept_)
sns.pairplot(data, x_vars=['X1','X2','X3'], y_vars='Y', height=3, aspect=0.8, kind='reg')
plt.show()
四、[shift+enter]运行我们的代码
可以看到,以上就是我们自变量X1、X2、X3对于因变量Y的多元线性回归分析
seaborn的pairplot函数绘制X的每一维度和对应Y的散点图。通过设置height和aspect参数来调节显示的大小和比例。可以从图中看出,X1特征和Y是有比较强的线性关系的,而X2和Y线性关系弱一些,X3和Y线性关系更弱。通过加入一个参数kind=‘reg’,seaborn可以添加一条最佳拟合直线和95%的置信带。
以上就是我们本次博客的全部内容,希望通过本次博客,大家可以更好的理解如何运用第三方库sklearn求多元线性回归方程哦!
遇到问题的小伙伴记得在评论区留言,学长给你们耐心解答!
陈一月的又一天编程岁月^ _ ^