Python線性回歸應用舉例


在發電場中電力輸出(PE)與溫度(AT)、壓力(V)、濕度(AP)、壓強(RH)有關。
(1)利用線性回歸分析命令,求出其之間的線性回歸關系數向量(包括常數項)和擬合優度
(2)AT=28.4,V=50.6,AP=1011.9,RH=80.54 預測PE值

1、讀取數據,確定自變量x、因變量y

import pandas as pd
data = pd.read_excel('發電場數據.xlsx')
data
AT V AP RH PE
0 14.96 41.76 1024.07 73.17 463.26
1 25.18 62.96 1020.04 59.08 444.37
2 5.11 39.40 1012.16 92.14 488.56
3 20.86 57.32 1010.24 76.64 446.48
4 10.82 37.50 1009.23 96.62 473.90
... ... ... ... ... ...
9563 16.65 49.69 1014.01 91.00 460.03
9564 13.19 39.18 1023.67 66.78 469.62
9565 31.32 74.33 1012.92 36.48 429.57
9566 24.48 69.45 1013.86 62.39 435.74
9567 21.60 62.52 1017.23 67.87 453.28

9568 rows × 5 columns

#dataframe.values將Dataframe的表格型數據轉換成數組
x = data.iloc[:,0:4].values
x
array([[  14.96,   41.76, 1024.07,   73.17],
       [  25.18,   62.96, 1020.04,   59.08],
       [   5.11,   39.4 , 1012.16,   92.14],
       ...,
       [  31.32,   74.33, 1012.92,   36.48],
       [  24.48,   69.45, 1013.86,   62.39],
       [  21.6 ,   62.52, 1017.23,   67.87]])
y = data.iloc[:,4].values
y
array([463.26, 444.37, 488.56, ..., 429.57, 435.74, 453.28])

2、線性回歸分析

#導入線性回歸模塊(LR)
from sklearn.linear_model import  LinearRegression as LR
#利用LR創建線性回歸對象lr
lr = LR()
#調用lr對象中的fit()方法,對數據進行擬合訓練
lr.fit(x,y)
LinearRegression()
#調用lr對象中的score()方法,返回其擬合優度(判定系數),觀察線性關系是否顯著
Slr = lr.score(x,y) #判定系數R²
Slr
0.9286960898122536
#取lr對象中的coef_、intercept_屬性,返回x對象的回歸系數和回歸系數常數項
c_x = lr.coef_
print('回歸系數:{}'.format(c_x))
c_b = lr.intercept_
print('回歸系數常數項:{}'.format(c_b))

回歸系數:[-1.97751311 -0.23391642  0.06208294 -0.1580541 ]
回歸系數常數項:454.60927431531076

3、利用線性回歸模型進行預測

#可以利用lr對象中的predict()方法進行預測
import numpy as np
x1 = np.array([28.4,50.6,1011.9,80.54])
x1
array([  28.4 ,   50.6 , 1011.9 ,   80.54])
#升維
x1 = x1.reshape(1,4)
x1
array([[  28.4 ,   50.6 , 1011.9 ,   80.54]])
R1 = lr.predict(x1)
R1
array([436.70378447])

#當然,也可以利用線性回歸方程進行預測
r1 = x1*c_x
r1
array([[-56.16137223, -11.83617098,  62.82173081, -12.72967745]])
r1.sum()
-17.905489848159824
R2 = r1.sum()+c_b
R2
436.7037844671509


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM