線性回歸與最小二乘法

2021-02-20 生信修煉手冊
線性回歸模型是使用最廣泛的模型之一,也最經典的回歸模型,如下所示

x軸表示自變量x的值,y軸表示因變量y的值,圖中的藍色線條就代表它們之間的回歸模型,在該模型中,因為只有1個自變量x,所以稱之為一元線性回歸,公式如下

我們的目的是求解出具體的參數值,可以穿過這些點的直線可以有多條,如何選取呢?此時就需要引入一個評價標準。在最小二乘法中,這個評價標準就會誤差平方和,定義如下

其中e表示通過回歸方程計算出的擬合值與實際觀測值的差,通過維基百科上的例子來看下實際的計算過程

如上圖所示,有4個紅色的採樣點,在每個點都可以得到(x, y)的觀測值,將4個採樣點的數據,帶入回歸方程,可以得到如下結果

計算全部點的誤差平方和,結果如下

對於上述函數,包含了兩個自變量,為了求解其最小值,可以藉助偏導數來實現。通過偏導數和函數極值的關係可以知道,在函數的最小值處,偏導數肯定為0,所以可以推導出如下公式

對於上述兩個方程構成的方程組,簡單利用消元法或者代數法就可以快速求出兩個參數的值

實際上,更加通過的方法是通過矩陣運算來求解,這種方法不僅適合一元線性回歸,也適合多元線性回歸,其本質是利用矩陣來求解以下方程組

計算過程如下

>>> data = np.array([[1, 1], [1, 2], [1, 3], [1, 4]])
>>> data
array([[1, 1],
       [1, 2],
       [1, 3],
       [1, 4]])
>>> target = np.array([6, 5, 7, 10]).reshape(-1, 1)
>>> target
array([[ 6],
       [ 5],
       [ 7],
       [10]])
# 先對data矩陣求逆矩陣
# 再計算兩個矩陣的乘積
>>> np.matmul(np.matrix(data).I, target)
matrix([[3.5],
        [1.4]])

通過一個逆矩陣與矩陣乘積操作,就可以方便的求解參數。在scikit-learn中,使用最小二乘法的代碼如下

>>> data = np.array([1, 2, 3, 4]).reshape(-1, 1)
>>> data
array([[1],
       [2],
       [3],
       [4]])
>>> target = np.array([6, 5, 7, 10]).reshape(-1, 1)
>>> target
array([[ 6],
       [ 5],
       [ 7],
       [10]])
>>> reg = linear_model.LinearRegression()
>>> reg.fit(data, target)
LinearRegression()
>>> reg.intercept_
array([3.5])
>>> reg.coef_
array([[1.4]])

intercept_表示回歸方程的截距,coef_表示回歸方程的係數。

最小二乘法的求解過程簡單粗暴,但是也存在一定限制,首先,根據方程組能夠求解可以知道,樣本數目必須大於等於特徵的個數;其次,當輸入的特徵很多,大於10000時,矩陣運算非常的費時。

最小二乘法肯定可以求解出線性方程的解,但是其解只是在線性模型假設的前提下得到的最優解,如果數據不符合線性模型,此時用最小二乘法依然可以得到結果,但是顯然是一個非常差的擬合結果,為了更好的評估線性回歸擬合效果的好壞,我們還需要一個評估指標R square, 公式如下

這個值也稱之為擬合優度,從定義可以看出,其範圍在0到1之間,越靠近1,說明擬合效果越好。在scikit-learn中,提供了計算擬合優度的函數,用法如下

>>> from sklearn.metrics import mean_squared_error, r2_score
>>> predict = reg.predict(data)
>>> mean_squared_error(target, predict)
1.0500000000000003
>>> r2_score(target, predict)
0.7

對於線性回歸而言,離群值對擬合結果影響很大,在預處理階段,要注意過濾離群值點;同時,我們會根據回歸係數對變量的重要性進行排序,此時要注意各個變量的單位是不一樣的,在預處理階段需要進行歸一化。

原創不易,歡迎收藏,點讚,轉發!生信知識浩瀚如海,在生信學習的道路上,讓我們一起並肩作戰!

本公眾號深耕耘生信領域多年,具有豐富的數據分析經驗,致力於提供真正有價值的數據分析服務,擅長個性化分析,歡迎有需要的老師和同學前來諮詢。轉發本文至朋友圈,後臺私信截圖即可加入生信交流群,和小夥伴一起學習交流。

掃描下方二維碼,關注我們,解鎖更多精彩內容!

相關焦點

  • 最小二乘法與線性回歸
    回歸分析按照涉及的變量的多少,分為一元回歸和多元回歸分析;按照自變量和因變量之間的關係類型,可分為線性回歸分析和非線性回歸分析。        線性回歸是一種最為我們熟悉的方式,故接下來我們就來詳細了解線性回歸。1.
  • 最小二乘法(1)——線性問題
    最小二乘法  常規的方法無法回答小明的問題,幸好高斯老爺子發現了最小二乘法。最小二乘法(又稱最小平方法)是一種通過最小化誤差的平方和,尋找數據最佳函數匹配的優化策略。,那麼最小二乘法的線性代數視角又是什麼呢?
  • 最小二乘法
    微積分應用課題一 最小二乘法  從前面的學習中, 我們知道最小二乘法可以用來處理一組數據, 可以從一組測定的數據中尋求變量之間的依賴關係, 這種函數關係稱為經驗公式. 本課題將介紹最小二乘法的精確定義及如何尋求 與 之間近似成線性關係時的經驗公式.
  • 什麼是最小二乘法
    今天,測量攻城獅將通過平面度檢測實例,用最簡單、最直接的思路介紹最小二乘法。 一、最小二乘法概念(基本概念還是要介紹一下的)最小二乘法(The leastsquare method),又稱最小平方法,是一個數學的公式,在數學上稱為曲線擬合,這裡所講最小二乘法,專指線性回歸方程。
  • 通透 | 最小二乘法的本質是什麼?
    歐氏空間是平坦的、線性的、各向同性的。(用愛因斯坦的話來說就是空間曲率為0)為什麼最小二乘法好使?因為我們處於空間曲率近似為0的空間,多數的物理量和物理定理都滿足歐氏空間的特性。實際上,高斯對於最小二乘法的認識,很有欽定的意味:假定最小二乘法最優,那麼如何如何。至於為什麼它最優,抱歉,高斯本人也不知道。
  • 線性回歸採用最小二乘作為loss的解釋
    1   線性回歸問題的通俗解釋   小編對於線性回歸的通俗解釋就是,根據已知的一元或多元特徵和特徵對應的結果,挖掘出一組參數分別和特徵值相乘,通過構造的多項式來對未知結果的數據集進行預測的方程叫做線性回歸。
  • 高考數學:統計二輪微專題——用最小二乘法求線性回歸方程
    最小二乘法主要用來求解兩個具有線性相關關係的變量的回歸方程,該方法適用於求解與線性回歸方程相關的問題,如求解回歸直線方程,並應用其分析預報變量的取值等.破解此類問題的關鍵點如下:①析數據,分析相關數據,
  • 第48篇 最小二乘法
    1806年,法國科學家勒讓德獨立創立最小二乘法,但因不為世人所知而默默無聞。勒讓德曾與高斯為誰最早創立最小二乘法原理發生爭執。1809年,高斯使用的最小二乘法的方法發表於《天體運動論》中。1829年,高斯提供了最小二乘法的優化效果強於其他方法的證明,因此最小二乘法也被稱為高斯-馬爾可夫定理。
  • Python實現最小二乘法
    上一篇文章講了最小二乘算法的原理。這篇文章通過一個簡單的例子來看如何通過Python實現最小乘法的線性回歸模型的參數估計。王松桂老師《線性統計模型——線性回歸與方差分析》一書中例3.1.3。那麼,我們要怎樣對這組數據進行線性回歸分析呢?一般分三步:(1)畫散點圖,找模型;(2)進行回歸模型的參數估計;(3)檢驗前面分析得到的經驗模型是否合適。畫散點圖創建一個DataTemp的文件夾,在其中分別創建"data"、"demo"文件夾用於存放數據文件、Python程序文件。
  • 最小二乘法詳細介紹
    高斯使用的最小二乘法的方法發表於1809年他的著作《天體運動論》中,而法國科學家勒讓德於1806年獨立發現「最小二乘法」,但因不為世人所知而默默無聞。1829年,高斯提供了最小二乘法的優化效果強於其他方法的證明,見高斯-馬爾可夫定理。
  • 手把手教你最小二乘法
    今天這期推送的主題是介紹最小二乘法以及如何利用最小二乘法對已有數據進行擬合。之所以會想到這個主題,是因為前段時間在準備美賽時看到很多最小二乘法的應用,但多數關於其原理的帖子要麼晦澀難懂要麼不夠清楚,就像下面這樣,於是乎萌生出這個想法。        (全文共2479字,我也不知道什麼時候能看完。
  • 線性回歸模型
    回歸問題就是擬合輸入變量x與數值型的目標變量y之間的關係,而線性回歸就是假定了x和y之間的線性關係,公式如下:          如下圖所示,我們可以通過繪製繪製(x,y)的散點圖的方式來查看x和y之間是否有線性關係,線性回歸模型的目標是尋找一條穿過這些散點的直線,讓所有的點離直線的距離最短。
  • 深入研究線性回歸
    當我說到「線性回歸」時,大多數人開始想到的是最小二乘法(OLS)。如果你不熟悉這個術語,下面的方程可能會有幫助:學過最小二乘法嗎?如果學過,那麼你就走在正確的道路上了。但是線性回歸不僅僅是最小二乘法。首先,讓我們更仔細地看看最小二乘法。
  • 最小二乘法的計算原理
    高斯使用的方法就是最小二乘法,該方法發表於1809年他的著作《天體運動論》中。最小二乘法(又稱最小平方法)是一種數學優化技術。它通過最小化誤差的平方和尋找數據的最佳函數匹配。利用最小二乘法可以簡便地求得未知的數據,並使得這些求得的數據與實際數據之間誤差的平方和為最小。其中,
  • 最小二乘法的前世今生,及其與平均值的關係
    總結一下,為了找出最能代表5次月考成績的真值y,我們使用了到y值的「距離平方的和」最小的原理。用今天我們熟悉的稱呼叫做「最小二乘法(least square method)」,這裡的二乘就是平方的意思。
  • 簡單線性回歸模型
    2 基礎回顧回歸的概念來源於實際問題,那麼現在我們所說的線性回歸分析問題具體指的是什麼呢?通常在線性回歸中估計未知參數方法是最小二乘法(OLS),而為了保證估計值能夠很好的解釋模型,我們又有如下前提條件:這些條件又被稱為高斯—馬爾可夫條件,它們保證了在經典線性回歸中最小二乘估計的優越性。
  • 最小二乘法的數學公式
    之前在德輝學堂介紹過最小二乘法,但是有很多好學的小夥伴總是追問,最小二乘法的數學公式究竟是怎麼樣的?      本期的這一篇文章,我們將介紹一個簡潔的最小二乘法數學公式,慢慢剖析它,爭取讓好學的小夥伴們能認識它,然後再結合Excel利用它來做一些計算。
  • 一元線性回歸的求解
    1 最小二乘法及代數求解最小二乘法中的「二乘」代表平方,最小二乘也就是最小平方。
  • 如何用線性回歸模型做數據分析?
    線性回歸模型分為一元線性回歸與多元線性回歸:區別在於自變量的個數。 二、線性係數的計算:最小二乘法 我們知道了模型的公式,那麼模型的係數是如何得來呢
  • 線上直播 | 偏最小二乘法是個什麼鬼?
    偏最小二乘法剛看到這個名稱學長也是...