【深度學習基礎-12】多元迴歸分析基礎及進階-python程式碼實現

learning_CV發表於2019-01-14

目錄

1 多元線性迴歸基本理論

1.1 multiple regression

1.2 多元迴歸模型

1.3 多元迴歸方程

1.4 估計多元迴歸方程

1.5 估計流程(與簡單線性迴歸類似)

1.6 估計方法

1.7 例子

2 使用python實現上述過程,並預測,x1=102,x2=6時的結果

3 進階:如果自變數x中有不同種類怎麼解決?


1 多元線性迴歸基本理論

1.1 multiple regression

     多個自變數x

1.2 多元迴歸模型

1.3 多元迴歸方程

1.4 估計多元迴歸方程

1.5 估計流程(與簡單線性迴歸類似)

1.6 估計方法

 

1.7 例子

  x1 x2 y
1 100 4 9.3
2 50 3 4.8
3 100 4 8.9
4 100 2 6.5
5 50 2 4.2
6 80 2 6.2
7 75 3 7.4
8 65 4 6.0
9 90 3 7.6
10 90 2 6.1

                                                                  

假設計算出來的b0=-0.869 , b1 = 0.0611 ,  b2 = 0.923,理解,x1加1,則y變化0.0611


2 使用python實現上述過程,並預測,x1=102,x2=6時的結果

from numpy import genfromtxt
import numpy as np
from sklearn import datasets, linear_model

dataPath = r"F:/python/實驗/diliver.csv"
data =genfromtxt(dataPath,delimiter=',')

print("資料:")
print(data)

x = data[:, :-1]
y = data[:, -1]

print(x)
print(y)

regr = linear_model.LinearRegression()

regr.fit(x, y)

print("從b1開始輸出引數預測")
print(regr.coef_)
print("b0的結果,截面:")
print(regr.intercept_)

#假如x1=102,x2=6,預測新值
xp = [[102, 6]]
print(xp)
yp = regr.predict(xp)
print("預測出來的值:")
print(yp)

執行結果:

3 進階:如果自變數x中有不同種類怎麼解決?

  x1 x2 分類 y
1 100 4 1 9.3
2 50 3 0 4.8
3 100 4 1 8.9
4 100 2 2 6.5
5 50 2 2 4.2
6 80 2 1 6.2
7 75 3 1 7.4
8 65 4 2 6.0
9 90 3 2 7.6

 分型別變數不能直接將分類作為一個引數直接加入,因為1,2,0都沒有實際意義,只是用來區分種類

將上述表格的分類進行變換,將種類個數變為列數,如果屬於哪一類就為1,其它為0

  x1 x2 0 1 2 y
1 100 4 0 1 0 9.3
2 50 3 1 0 0 4.8
3 100 4 0 1 0 8.9
4 100 2 0 0 1 6.5
5 50 2 0 0 1 4.2
6 80 2 0 1 0 6.2
7 75 3 0 1 0 7.4
8 65 4 0 0 1 6.0
9 90 3 0 0 1 7.6

 

#本程式是用來多元線性迴歸分析中,自變數含有類別時如何處理
from numpy import genfromtxt
import numpy as np
from sklearn import datasets, linear_model

dataPath = r"F:/python/實驗/PreDiliver.csv"
data =genfromtxt(dataPath,delimiter=',')

print("資料:")
print(data)

x = data[:, :-1]
y = data[:, -1]

print(x)
print(y)

regr = linear_model.LinearRegression()

regr.fit(x, y)

print("從b1開始輸出引數預測:b1,b2,b3,b4,b5")
print(regr.coef_)
print("b0的結果,截面:")
print(regr.intercept_)

#假如x1=102,x2=6,第1類,預測新值
xp = [[102, 6, 0, 1, 0]]
print(xp)
yp = regr.predict(xp)
print("預測出來的值:")
print(yp)

結果:

相關文章