第6关:线性回归模型及其应用
任务描述
在发电场中电力输出(PE)与AT(温度)、V(压力)、AP(湿度)、RH(压强)有关,相关测试数据见“发电场数据.xlsx”文件,请完成以下任务:1)利用线性回归分析命令,求出PE与AT、V、AP、RH之间的线性回归关系式系数向量(包括常数项)和拟合优度(判定系数),并在命令窗口输出;2)今有某次测试数据AT=28.4、V=50.6、AP=1011.9、RH=80.54,试利用构建的线性回归模型预测其PE值。
相关知识
为了完成本关任务,你需要掌握:1.如何利用线性回归模型求线性回归关系式系数向量和拟合优度,2.如何利用线性回归模型进行预测。
线性回归关系式系数向量和拟合优度
“系数向量”即系数的向量。 “拟合优度”是回归分析中用来检验样本数据点聚集在回归线周围的密集程度,用于评价回归方程对样本观测值的拟合程度。
#判定系数
slr=lr.score(x,y)
#系数
c_x=lr.coef_
#常系数
c_b=lr.intercept_
print(slr,c_x,c_b)
输出:0.9286960898122536 [-1.97751311 -0.23391642 0.06208294 -0.1580541 ] 454.6092743153102
线性回归预测模型
线性回归预测是指通过对两个或两个以上的自变量与一个因变量的相关分析,建立预测模型进行预测。
示例如下:
R1=lr.predict(x1)
prtint(R1)
输出:[436.70378447]
编程要求
根据提示,在右侧编辑器补充代码,输出线性回归关系式系数向量(包括常数项)、拟合优度(判定系数)和预测结果。
测试说明
平台会对你编写的代码进行测试:
测试输入:28.4,50.6,1011.9,80.54 预期输出: 436.70378447 提示:
#5.导入线性方程的包
from sklearn.linear_model import LinearRegression as LR
#6.创建线性回归对象
lr=LR()
#7.对数据进行拟合
lr.fit(x,y)
开始你的任务吧,祝你成功!
任务代码
#**********Begin**********#
#在发电场中电力输出(PE)与AT(温度)、V(压力)、AP(湿度)、RH(压强)有关,
# 相关测试数据见“发电场数据.xlsx”文件,请完成以下任务:
# 1)求出PE与AT、V、AP、RH之间的线性回归关系式系数向量,用列表b表示,其元素依次为常数项、AT回归系数、V回归系数、AP回归系数、RH回归系数。
# 2)求出回归方程的拟合优度(判定系数),用变量r表示
# 3)今有某次测试数据AT=28.4、V=50.6、AP=1011.9、RH=80.54,试利用构建的线性回归模型预测其PE值
def return_values():
import pandas as pd
import numpy as np
from sklearn.linear_model import LinearRegression as LR
data=pd.read_excel('发电场数据.xlsx')
x=data.iloc[:,0:4].values
y=data.iloc[:,4].values
lr = LR() #创建线性回归模型类
lr.fit(x, y) #拟合
#判定系数
r=lr.score(x,y)
#系数
c_x=lr.coef_
#常系数
c_b=lr.intercept_
b=[c_b,c_x[0],c_x[1],c_x[2],c_x[3]]
#对数据进行预测
x1=np.array([28.4,50.6,1011.9,80.54]).reshape(1,4)
PE=lr.predict(x1)
return(b,r,PE)
#**********End**********#