简单线性回归(Simple Linear Regression)和多元线性回归(Multiple Regression)学习笔记
簡單線性回歸(Simple Linear Regression)
0.前提介紹:
為什么需要統計量?
統計量:描述數據特征
0.1集中趨勢衡量
0.1.1均值(平均數,平均值) (mean):(求和除以個數,Ex也可以表示x求均值)
0.1.2中位數(median) : 將數據中的各個數值按照大小順序排列,居于中間位置的變量
0.1.2.1.給數據排序: 1,2,2,6,9
0.1.2.2.找出位置處于中間的變量: 2
當n為奇數的時候:直接取位置處于中間的變量
當n為偶數的時候,取中間兩個量的平均值
0.1.2眾數(mode) : 數據中出現次數最多的數
0.2.1.離散程度衡量
0.2.1.1方差(variance):
例如:{6, 2,9,1, 2}
(1)(6- 4)^2 + (2- 4)^2 + (9- 4)^2 +(1- 4)^2 + (2- 4)^2
=4+4+25+9+4= 46
(2) n-1=5-1=4
(3) 46/ 4 = 11.5
0.2.1.2標準差(standard deviation):方差開平方
S= sqrt(11.5) = 3.39
1.回歸問題與分類問題區別:
回歸(regression) :Y變量為連續數值型( continuous numerical variable)
如:房價,人數,降雨量
分類( Classification): Y變量為類別型(categorical variable)
如:顏色類別,電腦品牌,有無信譽
2.簡單線性回歸( Simple Linear Regression)
2.1很多做決定過過程通常是根據兩個或者多個變量之間的關系
2.3回歸分析(regression analysis)用來建立方程模擬兩個或者多個變量之間如何關聯
2.4被預測的變量叫做:因變量(dependent variable), y,即輸出(output)
2.5被用來進行預測的變量叫做:自變量(independent variable), x,即輸入(input)
3.簡單線性回歸介紹
3.1簡單線性回歸包含一個自變量(x)和一 個因變量(y)
3.2以上兩個變量的關系用一條直線來模擬
3.3如果包含兩個以上的自變量,則稱作多元回歸分析( multiple regression)
4.簡單線性回歸模型
4.1被用來描述因變量(y)和自變量(X)以及偏差(error)之間關系的方程叫做回歸模型
4.2簡單線性回歸的模型是:
β為參數,X為自變量,ε為偏差
5.單線性回歸方程:(ε滿足正態分布,切均值為0)
E(y)=β0+β1x
這個方程對應的圖像是一條直線, 稱作回歸線
其中,β0是回歸線的截距
β1是回歸線的斜率
E(y)是在一個給定x值下y的期望值(均值)
6.正向線性關系:
7.負向線性關系:
8.無關系:(斜率等于0)
?
9.估計的簡單線性回歸方程
b0為截距β0的估計值,b1是斜率β1的估計值
這個方程叫做估計線性方程( estimated regression line)
其中,bo是估計線性方程的縱截距
b是估計線性方程的斜率
y是在自變量x等于一個給定值的時候,y的估計值
10.線性回歸分析流程:(ε的期望值(均值)為0,所以E(y)無ε)
11.關于偏差ε的假定
11.1是一個隨機的變量,均值(或期望值)為0
11.2 ε的方差(variance)對于所有的自變量x是一樣的
11.3 ε的值是獨立的
11.4 ε滿足正態分布
簡單線性回歸(Simple Linear Regression)下
簡單線性回歸模型舉例:
汽車賣家做電視廣告數量與賣出的汽車數里:
1.1如何練處適合簡單線性回歸模型的最佳回歸線?
最佳回歸線標準:(實際值y為紅點,估計值y(hat)為線上的值)
使sum of squares(平方和)最小:
1.1.2最佳回歸線計算
b0為截距β0的估計值,b1是斜率β1的估計值,(y ? 和x ? 都經過這條線,帶入b1可求出b0)
分子= (1-2)(14-20)+(3-2)(24-20)+(2-2)(18-20)+(1-2)(17-20)+(3-2)(27-20)
=6+4+0+3+7
= 20
分母= (1-2) ^2 +(3-2)^2 +(2-2)2+(1-2)2+ (3-2)^2
=1+1+0+1+1
=4
b1 = 20/4 =5
b0=20-5*2=20- 10= 10
實例code:
其中x_ given= 6(實例)
==Y_ hat=5*6+ 10 = 40 ==
運行結果如下:
numeritor: 20.0
denominator: 4.0
intercept: 10.0
slope: 5.0
y_test: 40.0
多元線性回歸(Multiple Regression)上
多元回歸分析( multipleregression)
1.與簡單線性回歸區別( simple linear regression):
MR有多個自變量(x)
2.多元回歸模型
y=β0+β1 X1+β2X2+ … +βpXp+ε (多元的平面)
其中:β0(截面), β1, β2…βp是參數
ε是誤差值
3.多元回歸方程(等式左右同時取期望值,等式右邊取期望值等于所有個體的期望值之和)
E(y)=β0+β1x1+B2X2+ … +βpXp
4.估計多元回歸方程:
y_hat=b0+b1 x+b2x2+ … +bpXp
一個樣本被用來計算β0, β1, β2… βp的點估計值分別為b0, b1, b2…,bp
5.估計流程(即預測過程,與簡單線性回歸類似一樣)
Regression Model:y=β0+β1x+β2x+….βpx+ε,以下同理變化
Sample Data:現實中很多數據是難以統計完全的,所以用抽取的樣本來計算.
6.估計方法
使sum of squares(平方和)最小:(多元曲面上估算值到實際值的差之和最小)
運算與簡單線性回歸類似,涉及到線性代數和矩陣的運算
7.例子(使用python計算)
一家快遞公司送貨 , X1 :運輸里程(mile);X2 :運輸次數;Y :總運輸時間(h).
Time = b0+ b1Miles + b2Deliveries
計算結果:(下節課做詳細運算)
Time = -0.869 + 0.0611 Miles + 0.923 Deliveries
8.描述參數含義
b0: 常數項
b1: 平均每多運送一英里,運輸時間延長0.0611小時
b2:平均每多一次運輸, 運輸時間延長0.923小時
9.預測
如果一個運輸任務是跑102英里,運輸6次,預計多少小時?
Time = -0.869 +0.0611102+ 0.923 6=10.9 (小時)
10.如果自變量(x)中有分類型變量( categorical data) ,如何處理?
(regression與classfication的區別在于y是否連續)
答:x既可以使用連續性變量也可以使用分類型變量
0,1,2只是作為標簽,與其本身大小無關
11.關于誤差的分布
誤差ε是一個隨機變量,均值為0
ε的方差對于所有的自變量來說相等
所有ε的值是獨立的
ε滿足正態分布,并且通過β0+ β1 x1+β2x2+ … +βpxp反映y的期望值
多元線性回歸(Multiple Regression)下
一家快遞公司送貨 , X1 :運輸里程(mile);X2 :運輸次數;Y :總運輸時間(h).
目的,求出b0, b1,…bp:
Y_ hat=b0+b1X1+b2X2+ … +bpXp.
多元線性回歸code實例:
from numpy import genfromtxt #將csv文件的數據轉換成np的array形式 import numpy as np from sklearn import datasets,linear_model#1.導入數據 dataPath = r'C:\Users\Administrator.Bili-2019LEMOKD\Desktop\新建文件夾\Delivery.csv' DeliveryData = genfromtxt(dataPath,delimiter=',') #genfromtxt將數據轉換成矩陣形式;csv文件每個cell以逗號為分隔符,所以分隔符為"," print(DeliveryData) #會自動將文件中的數據讀取并轉換為矩陣形式,并放到文件的第一行第一列開始 X = DeliveryData[:, :-1]#取所有維度第一(0)列和第二(1)列的數作為x(取左不取右,所以不含倒數第一列) # print(X) Y = DeliveryData[:,-1] # print(Y)#2.建模 regr = linear_model.LinearRegression() regr.fit(X,Y) print('coefficient:',regr.coef_) #x的系數(b1~bp) print('intercept',regr.intercept_) #截距(面)#3.預測 xSample = np.array([[102,6]]) #array!! yPred = regr.predict(xSample) print('predicted y:',yPred)運行結果如下:
[[100. 4. 9.3]
[ 50. 3. 4.8]
[100. 4. 8.9]
[100. 2. 6.5]
[ 50. 2. 4.2]
[ 80. 2. 6.2]
[ 75. 3. 7.4]
[ 65. 4. 6. ]
[ 90. 3. 7.6]
[ 90. 2. 6.1]]
coefficient: [0.0611346 0.92342537]
intercept -0.868701466781709
predicted y: [10.90757981]
如果自變量中有分類型變量(categorical data) :
將車型Dummy Varible轉換成0和1:
同樣可以用上面的代碼執行:
from numpy import genfromtxt #將csv文件的數據轉換成np的array形式 import numpy as np from sklearn import datasets,linear_model#1.導入數據 dataPath = r'C:\Users\Administrator.Bili-2019LEMOKD\Desktop\新建文件夾\DeliveryDummy.csv' eliveryData = genfromtxt(dataPath,delimiter=',') print(DeliveryData) '''打印出結果如果莫名多出幾行(-1或nan),可能是復制數據到csv文件時有空數據,進入csv刪除那幾行即可''' X = DeliveryData[:, :-1] print('X:',X) Y = DeliveryData[:,-1] print('Y:',Y)#2.建模 regr = linear_model.LinearRegression() regr.fit(X,Y) print('coefficient:',regr.coef_) #x的系數(5個x,b1~b5) print('intercept',regr.intercept_) #截距(面)#3.預測 xSample = np.array([[102,6,0,1,0]]) #array!! yPred = regr.predict(xSample) print('predicted y:',yPred)運行結果如下:
[100. 4. 0. 1. 0. 9.3]
[ 50. 3. 1. 0. 0. 4.8]
[100. 4. 0. 1. 0. 8.9]
[100. 2. 0. 0. 1. 6.5]
[ 50. 2. 0. 0. 1. 4.2]
[ 80. 2. 0. 1. 0. 6.2]
[ 75. 3. 0. 1. 0. 7.4]
[ 65. 4. 1. 0. 0. 6. ]
[ 90. 3. 1. 0. 0. 7.6]]
X: [[100. 4. 0. 1. 0.]
[ 50. 3. 1. 0. 0.]
[100. 4. 0. 1. 0.]
[100. 2. 0. 0. 1.]
[ 50. 2. 0. 0. 1.]
[ 80. 2. 0. 1. 0.]
[ 75. 3. 0. 1. 0.]
[ 65. 4. 1. 0. 0.]
[ 90. 3. 1. 0. 0.]]
Y: [9.3 4.8 8.9 6.5 4.2 6.2 7.4 6. 7.6]
coefficient: [ 0.05553544 0.69257631 -0.17013278 0.57040007 -0.40026729]
intercept 0.1999568891188126
predicted y: [10.59042938]
總結
以上是生活随笔為你收集整理的简单线性回归(Simple Linear Regression)和多元线性回归(Multiple Regression)学习笔记的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 【Pytorch神经网络实战案例】21
- 下一篇: 插入模板_WordPress在文章列表和