7種執行簡單的線性回歸的分析與討論!

2021-01-11 IT168

【IT168 資訊】對於無數的數據科學家來說,線性回歸是許多統計建模和預測分析項目的起點。擬合的重要性,無論是準確的還是快速的,對於大數據集的線性模型都不能被誇大。

隨著Python迅速成為實際的程式語言的一大選擇,關鍵是數據科學家必須意識到他或她可以使用的各種方法來快速將線性模型擬合到一個相當大的數據集,並評估每個特徵在過程、結果中的重要性。

所以,在多種可用選項的情況下,您如何選擇最有效的方法?

由於scikit-learn是一種免費的機器學習庫,它具有回歸、分類、聚類、模型選擇和降維等功能,所以常用的方法是從該庫調用線性模型類並擬合數據。雖然這可以為應用機器學習的其他流水線特性(例如數據規範化,模型係數正則化,將線性模型提供給另一個下遊模型)提供額外的優勢,但這通常不是確定回歸係數(和一些基本的相關統計)最快或最乾淨、簡單的方法。

下面是其他7種更快更清潔的方法,但它們並不都具備相同數量的信息或建模靈活性。下面將簡要討論每種方法。

1.方法:Scipy.polyfit()或numpy.polyfit()

這是一個相當普遍的最小二乘多項式擬合函數,它接受數據集和任何度數的多項式函數(由用戶指定),並返回一組使係數誤差平方最小化的係數。這裡給出了該功能的詳細描述。對於簡單線性回歸,可以選擇1級。如果要擬合更高級別的模型,則可以從線性特徵數據中構建多項式特徵並擬合模型。

 2.方法:Stats.linregress()

這是一個高度專業化的線性回歸函數,可以在Scipy的統計模塊中找到。它的靈活性受到相當的限制,因為它被優化為僅計算兩組測量的線性最小二乘回歸。因此,你不能用廣義線性模型或多變量回歸來擬合。但是,由於其特殊性,它是簡單線性回歸中速度最快的方法之一。除了擬合係數和截距項之外,它還返回基本統計數據,如R2係數和標準誤差。

3.方法:Optimize.curve_fit()

這與Polyfit方法相同,但本質上更一般。 scipy.optimize模塊這個強大的功能可以通過最小二乘法最小化來將任何用戶定義的函數適用於數據集。

對於簡單線性回歸,可以只寫一個線性mx + c函數並調用這個估計器。毫無疑問,這也適用於多元回歸。該方法返回一個函數參數數組,最小二乘法和相關的協方差矩陣被最小化。

 4.方法:numpy.linalg.lstsq

這是通過矩陣分解計算線性方程組的最小二乘解的基本方法。它來自numpy包的線性代數模塊。在引擎蓋下,它通過計算一個向量x來解決方程ax = b,這個向量x最小化了歐幾裡得2-norm || ba ??一個x | |2。

該方程可以是低於好的或高於確定的(即a的線性獨立行的數目可以小於,等於或大於其線性獨立列的數目)。如果a是正方形且滿秩,那麼x(但是對於捨入誤差)是方程的「精確」解。

您可以對此進行簡單或多元回歸,並找回計算出的係數和殘差。一個小竅門是,在調用這個函數之前,你必須在x數據後加上一列1來計算截距項。事實證明,這是嘗試線性回歸問題的更快方法之一。

5.方法:Statsmodels.OLS()

Statsmodels是一個很棒的小型Python軟體包,它提供了用於評估不同統計模型的類和函數,還提供了統計測試和統計數據探索。每個估算器都有一個結果統計的廣泛列表。對照現有統計軟體包對結果進行測試以確保正確性。

對於線性回歸,可以使用該包中的OLS或普通最小二乘函數,並獲得有關估計過程的完整統計信息。

要記住的一個小技巧是,您必須手動添加一個常數到x數據來計算截距,否則默認情況下它只會報告係數。以下是OLS模型的完整結果摘要的快照。正如你所看到的,它和R或Julia等功能統計語言一樣豐富。

6.方法:使用逆矩陣方法的解析解

對於條件良好的線性回歸問題(至少在#個數據點>#個特徵中),存在一個簡單的閉式矩陣解法來計算保證最小二乘最小化的係數。

這裡討論關於這個解決方案的詳細推導和討論。

這裡有兩個選擇:

(a)使用簡單的乘法矩陣求逆

(b)計算x數據的Moore-Penrose廣義偽矩陣,然後用y數據取一個點積。因為第二個過程涉及奇異值分解(SVD),所以它速度較慢,但對於沒有良好條件的數據集運行良好。

7.方法:sklearn.linear_model.LinearRegression()

這是大多數機器學習工程師和數據科學家使用的典型方法。當然,對於現實世界的問題,它通常被交叉驗證和正則化算法取代,如Lasso回歸或Ridge回歸。然而,這些高級功能的基本核心在於這種模式。

測量這些方法的速度和時間複雜性

作為一名數據科學家,應該始終尋找準確而快速的方法或功能來完成數據建模工作。如果方法本身很慢,那麼它會為大數據集創建一個執行瓶頸。

確定可伸縮性的一個好方法是運行模型以增加數據集大小,提取所有運行的執行時間並繪製趨勢圖。

這就是結果。由於它們的簡單性,stats.linregress和簡單的逆矩陣方法執行速度最快,甚至高達1000萬個數據點。

總結

在本文中,我們討論了執行簡單線性回歸的7種有效方法。它們中的大多數都可以擴展到更一般化的多變量和多項式回歸建模。我們沒有列出適合這些方法的R2,因為它們都非常接近1。

對於具有數百萬個人工生成的數據點的單變量回歸,回歸係數估計得非常好。

本文的目標主要是討論這些方法的相對速度/計算複雜性。我們通過在一個合成的數據集上進行測試(高達1000萬個樣本)來顯示每個計算複雜性度量。令人驚訝的是,與scikit-learn廣泛使用的線性模型相比,簡單逆矩陣解析解決方案的工作速度非常快。

相關焦點

  • Python環境下的8種簡單線性回歸算法
    選自Medium作者:Tirthajyoti Sarkar機器之心編譯參與:晏奇、劉曉坤本文中,作者討論了 8 種在 Python 環境下進行簡單線性回歸計算的算法,不過沒有討論其性能的好壞,而是對比了其相對計算複雜度的度量。
  • 簡單線性回歸模型
    高爾頓解釋說,自然界存在某種約束力將人的身高向某個平均數靠攏——或者說是回歸——也即是統計學上回歸的涵義。本期我們的主題便是通過R來解決線性回歸分析中的若干問題。2 基礎回顧回歸的概念來源於實際問題,那麼現在我們所說的線性回歸分析問題具體指的是什麼呢?
  • 8種用Python實現線性回歸的方法,究竟哪個方法最高效?
    ,但事實是,Python至少有8種執行線性回歸的方法,sklearn並不是最高效的。  今天,讓我們來談談線性回歸。沒錯,作為數據科學界元老級的模型,線性回歸幾乎是所有數據科學家的入門必修課。拋開涉及大量數統的模型分析和檢驗不說,你真的就能熟練應用線性回歸了麼?未必!  在這篇文章中,文摘菌將介紹8種用Python實現線性回歸的方法。  了解了這8種方法,就能夠根據不同需求,靈活選取最為高效的方法實現線性回歸。
  • Python數據分析|線性回歸
    Python數據分析學習筆記,今天分享下利用Python對業務進行數據預處理,並利用線性回歸進行數據預測。④先以我們後續需要用來做線性回歸的列「內容閱讀量」為標準,將不含該值的數據行去除:調用dropna函數,並執行info函數看數據情況。
  • python多重線性回歸分析
    python多重線性回歸分析多重線性回歸分析定義多重線性回歸模型:Mulitiple Linear Regression多元線性回歸模型:MultivariateLinear Regression數據準備#多重線性回歸#數據準備import pandas as pddf=pd.read_csv('e:/python/out/corr.csv',encoding='utf8')df根據預測目標,確定自變量和因變量#多重線性回歸
  • 如何用線性回歸模型做數據分析?
    編輯導語:在日常工作中,很多時候都會用到數據分析的方法,線性回歸模型看起來非常簡單,但實際上它的十分重要;本文作者分享了關於如何用線性回歸模型做數據分析的方法,我們一起來學習一下。
  • 多元線性回歸的模型解釋、假設檢驗、特徵選擇
    線性回歸是最流行和討論最多的模型之一,它無疑是深入機器學習(ML)的入門之路。這種簡單、直接的建模方法值得學習,這是進入ML的第一步。在繼續討論之前,讓我們回顧一下線性回歸可以大致分為兩類。簡單線性回歸:當只有一個輸入變量時,它是線性回歸最簡單的形式。
  • 一文輕鬆看懂線性回歸分析的交互作用!
    作者:丁點helper來源:丁點幫你前幾天的文章,我們聚焦在回歸分析,今天來看看在回歸分析中常常要研究的一類難點問題——交互作用的探究。交互(interaction),字面上不太好理解,但是從數學表達上卻很簡單。
  • 16種常用的數據分析方法-回歸分析
    3 回歸分析類型 1、一元線性回歸分析: 只有一個自變量X與因變量Y有關,X與Y都必須是連續型變量,因變量y或其殘差必須服從正態分布。
  • 【Python機器學習】系列之線性回歸篇【深度詳細】
    本次推文介紹用線性模型處理回歸問題。從簡單問題開始,先處理一個響應變量和一個解釋變量的一元問題。然後,介紹多元線性回歸問題(multiple linear regression),線性約束由多個解釋變量構成。
  • spss線性回歸 回歸方程 - CSDN
    我是一隻正在迭代的分析獅天天。最近看了B站UP主好好玩量化的視頻《回答沈逸老師,新冠疫情下越民主死越多嗎?》,用到的分析方法就是線性回歸,決定猛學習一下,再來評判視頻裡的結論。>線性回歸,首先應用於定距變量之間,本質上是分析一個因變量和一組自變量之間的相關關係,既可以解釋,也可以做預測。
  • 線性回歸假設檢驗 - CSDN
    實際上使用左面的函數定義損失函數也能得到一個線性模型,只是並不是我們常說的線性回歸模型而已。所以:損失函數是機器學習模型的核心。(即使相同的模型形式,不同的損失函數對應著不同模型的效果)。如果把模型看成是人工智慧,那麼損失函數就是它的三觀。
  • 入門| 貝葉斯線性回歸方法的解釋和優點
    本文對比了頻率線性回歸和貝葉斯線性回歸兩種方法,並對後者進行了詳細的介紹,分析了貝葉斯線性回歸的優點和直觀特徵。我認為貝葉斯學派和頻率學派之間的紛爭是「可遠觀而不可褻玩」的學術爭論之一。與其熱衷於站隊,我認為同時學習這兩種統計推斷方法並且將它們應用到恰當的場景之下會更加富有成效。
  • 的方法 線性回歸方程檢驗專題及常見問題 - CSDN
    解:運用Excel對數據進行回歸分析,得到回歸方程和決定係數R平方;三種檢驗方法雖然各有側重,但在一元線性回歸方程的檢驗中,三種檢驗的作用是相同的,因此對於一元線性回歸方程而言,只要選擇一種方法進行檢驗即可。
  • eviews 線性回歸模型 - CSDN
    分享經典書籍: A Modern Approach to Regression with R.pdf  連結: https://pan.baidu.com/s/14NJt7CrOpUUe2hYyrJn_rg  提取碼:
  • 一文教你全面掌握用Python實現線性回歸
    全文共4968字,預計學習時長15分鐘或更長本文旨在為讀者理解和應用線性回歸時提供參考。雖然線性回歸算法很簡單,但是只有少數人能真正理解其基本原則。本文首先會深入挖掘線性回歸理論,理解其內在的工作機制,然後利用Python實現該算法,為商業問題建模。理論線性回歸或許是學習統計學最簡單的方法。
  • 回歸系列(一)|怎樣正確地理解線性回歸
    作者:丁點helper 來源:丁點幫你線性回歸,可能是統計學上運用最廣泛的一類方法了,之所以說它是一類方法,是因為它包括了我們熟知的各種模型:簡單線性回歸、多重線性回歸、Logistic回歸等等。線性回歸運用這麼廣泛很大程度在於它的內在邏輯十分簡單。一般情況下,就是找Y的影響因素或者說是衡量自變量(X)對因變量(Y)的影響程度,即便不理解其中的數學計算也可以很容易地憑藉各種軟體找到我們想要的結果。
  • 原理+代碼|Python實戰多元線性回歸模型
    原理其實非常簡單,將無法直接用於建模的名義變量轉換成可放入模型的虛擬變量的核心就短短八個字:「四散拆開,非此即彼」。下面用一個只有 4 行的微型數據集輔以說明。多重線性回歸模型的主要假設之一是我們的預測變量(自變量)彼此不相關。我們希望預測變量(自變量)與反應變量(因變量)相關,而不是彼此之間具有相關性。
  • eviews線性回歸模型專題及常見問題 - CSDN
    分享經典書籍: A Modern Approach to Regression with R.pdf  連結: https://pan.baidu.com/s/14NJt7CrOpUUe2hYyrJn_rg  提取碼:
  • 7.1.2符號的任意性、線性
    7.符號系統7.1傳統語言學問題7.1.1符號的價值、能指、所指7.1.2符號的任意性與線性「能指與和所指的聯繫是任意的,或者,因為我們所說的符號是指能指與所指相聯結所產生的整體,我們可以更簡單地說:語言符號是任意的