iT邦幫忙

2022 iThome 鐵人賽

DAY 6
0
AI & Data

人類學習機器學習的學習筆記 with Python系列 第 6

Day6 線性迴歸Linear Regression(1)--簡單線性迴歸模型(Simple Linear Regression)

  • 分享至 

  • xImage
  •  

前言

線性迴歸(Linear Regression)是監督式學習中相對比較簡單且容易理解的方法,一種用來建立X(解釋變數/自變數/預測變數/獨立變項/特徵)與連續型Y(依變數/反應變數)之間關係的模型,其中線性(Linear) 指的是利用X之間的線性組合建構模型,簡單來說是想要找到一條最好的直線描述X與Y之間的關係。線性迴歸雖然相對簡單,但卻是許多方法的發展基礎,後面許多較複雜方法可以發現是線性迴歸模型的延伸或拓展。

"迴歸"這個名詞最一開始是由英國的遺傳學與優生學家Francis Galton所提出,或許是受到表哥達爾文的影響,Galton也熱衷於遺傳與演化的學問研究,他當時在1886年討論身高遺傳性的論文中首度發展了迴歸的統計方法。他發現:「非常高的父母所生的小孩通常會比父母矮,而非常矮的父母所生的小孩通常會比父母高。」他將這個現象稱為「向平均值迴歸(regression toward the mean)」,使得後世的人就將這個方法稱為迴歸。現今的線性迴歸也是針對資料的平均值行為https://chart.googleapis.com/chart?cht=tx&chl=%24%24E(Y%7CX)%24%24做的預測模型,這幾天的內容會先從簡單線性迴歸(simple linear regression)講起,再延伸到參數的估計方法與正規化(regularization)。

以下是幾個我們想利用線性迴歸模型尋找答案的問題:

  • 資料Y與X之間是否存在線性關係
  • 若Y與X存在關係,這個關係有多強
  • 預測出的Y準確度有多高

簡單線性迴歸(Simple Linear Regression)

簡單線性迴歸模型是指只利用一個解釋變數X預測反應變數Y的線性迴歸模型,其中Y為連續型的變數,X可以是連續或類別的變數,而模型中Y沒有辦法以X解釋的部分就會落在https://chart.googleapis.com/chart?cht=tx&chl=%5Cepsilon_i誤差項(error term),以下是模型架構:

  • 資料:(https://chart.googleapis.com/chart?cht=tx&chl=x_1, https://chart.googleapis.com/chart?cht=tx&chl=y_1), (https://chart.googleapis.com/chart?cht=tx&chl=x_2, https://chart.googleapis.com/chart?cht=tx&chl=y_2), ..., (https://chart.googleapis.com/chart?cht=tx&chl=x_n, https://chart.googleapis.com/chart?cht=tx&chl=y_n)

  • 模型:https://chart.googleapis.com/chart?cht=tx&chl=Y_i%3D%5Cbeta_0%2B%5Cbeta_1X_i%2B%5Cepsilon_i , where https://chart.googleapis.com/chart?cht=tx&chl=%5Cepsilon_ihttps://chart.googleapis.com/chart?cht=tx&chl=%20%5Coverset%7B%5Cmathrm%7Biid%7D%7D%7B%5Csim%7D%20N(0%2C%5Csigma%5E2)%5C , https://chart.googleapis.com/chart?cht=tx&chl=%24%24i%20%3D%20%5Cbegin%7BBmatrix%7D%201%2C%202%2C%20...%2C%20%20n%20%5Cend%7BBmatrix%7D%20%24%24

  • 參數:https://chart.googleapis.com/chart?cht=tx&chl=%5Cbeta_0(截距), https://chart.googleapis.com/chart?cht=tx&chl=%5Cbeta_1(斜率) , https://chart.googleapis.com/chart?cht=tx&chl=%5Csigma%5E2

  • 模型假設:

    1. 解釋變數X與反應變數Y之間的關係為直線的(linear)
    2. 樣本之間互相獨立(independent)
    3. Y在X的任一個數值下都服從常態分佈,且變異數https://chart.googleapis.com/chart?cht=tx&chl=%5Csigma%5E2為一個常數
  • 示意圖:
    白點為我們收集到的資料(https://chart.googleapis.com/chart?cht=tx&chl=x_i%2C%20y_i),參數上方有hat的符號表示為估計值,有了上述模型下的三數估計值就可以畫出一條直線,其中紅色直線是以簡單線性迴歸模型找出最能夠描述資料的直線。藍色虛線為殘差(residual),是模型估計值與資料的差距,殘差也可以想成誤差的估計值。殘差在迴歸模型中可以用來估計參數,也可以利用殘差分析(residual analysis)檢查上述幾項模型假設。
    https://ithelp.ithome.com.tw/upload/images/20220830/20151276M9Db52PRPs.png

簡單線性迴歸參數估計:

在上述的模型架構下我們最感興趣的參數為迴歸係數https://chart.googleapis.com/chart?cht=tx&chl=%5Cbeta_0https://chart.googleapis.com/chart?cht=tx&chl=%5Cbeta_1 ,而線性迴歸模型的核心概念是要找到一條最適合的直線,因此在估計模型參數時最常利用到的方法為最小平方估計法(Least Square Estimation, LSE),使每個資料點與直線的垂直距離平方和最小,換句話說就是使殘差的平方和(Residual Sum of Squares, RSS)最小。

  • 殘差(residual): https://chart.googleapis.com/chart?cht=tx&chl=e_i%20%3D%20y_i%20-%20%5Chat%7By%7D_i
  • 殘差平方和(RSS): https://chart.googleapis.com/chart?cht=tx&chl=RSS%20%3D%20e_1%5E2%20%2B%20e_2%5E2%20%2B%20...%20%2B%20e_n%5E2https://chart.googleapis.com/chart?cht=tx&chl=%3D(y_1%20-%20%5Chat%7B%5Cbeta%7D_0%20-%20%5Chat%7B%5Cbeta%7D_1%20x_1)%5E2%20%2B%20(y_2%20-%20%5Chat%7B%5Cbeta%7D_0%20-%20%5Chat%7B%5Cbeta%7D_1%20x_2)%5E2%20%2B%20...%20%2B%20(y_n%20-%20%5Chat%7B%5Cbeta%7D_0%20-%20%5Chat%7B%5Cbeta%7D_1%20x_n)%5E2

接著以微積分的技巧針對上述RSS式子求解可以得到參數的估計解:

  • https://chart.googleapis.com/chart?cht=tx&chl=%5Chat%7B%5Cbeta%7D_1%20%3D%20%5Cfrac%7B%5Csum_%7Bi%3D1%7D%5En%20(x_i%20-%20%5Cbar%7Bx%7D)(y_i%20-%20%5Cbar%7By%7D)%7D%7B%5Csum_%7Bi%3D1%7D%5En%20(x_i%20-%20%5Cbar%7Bx%7D)%20%5E2%7D
  • https://chart.googleapis.com/chart?cht=tx&chl=%5Chat%7B%5Cbeta%7D_0%20%3D%20%5Cbar%7By%7D%20-%20%5Chat%7B%5Cbeta%7D_1%20%5Cbar%7Bx%7D

其他常見的方法還有最大概似估計法(Maximum Likelihood Estimation, MLE)以及梯度下降法(Gradient Descent)。最大概似估計法是利用模型中對於殘差項的分佈假設進行求解的方法,在殘差項被我們假設為常態分佈時,所得到的結果會與最小平方法一致。梯度下降法是一種利用迭代求解的方法,在機器學習中常常會定義Lost function以梯度下降法的迭代來"訓練"出最適合的模型參數,在線性迴歸模型中也可以利用這樣的概念求解參數,其中的殘差平方和就可以當成Lost function接著利用梯度下降法找出參數。最小平方法或最大概似估計法可能沒有辦法在每種模型甚至高維度時,找到參數的解析解(closed-form),因此梯度下降法在某些情境下是更受歡迎的方法。


小結

線性迴歸模型是監督式學習的迴歸中,是最常見也最為被廣泛使用的方法,而今天介紹的簡單線性迴歸模型是建立一個解釋變數X如何影響反應變數Y的模型,也就是藉由這個模型了解當X變化時,Y會隨著X如何變化。接下來幾天的內容將會讓大家了解更多線性迴歸模型的運作機制與議題。


上一篇
Day5 利用Python處理資料(4) -- 資料插補(Imputation)
下一篇
Day7 線性迴歸Linear Regression(2)--多元線性迴歸模型(Multiple Linear Regression)與幾何解釋
系列文
人類學習機器學習的學習筆記 with Python30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言