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

2020-12-12 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廣泛使用的線性模型相比,簡單逆矩陣解析解決方案的工作速度非常快。

相關焦點

  • 8 種進行簡單線性回歸的方法分析與討論
    8 種進行簡單線性回歸的方法分析與討論 Tirthajyoti Sarkar 發表於 2018-01-05 08:18:57 本文中,作者討論了 8 種在 Python
  • Python環境下的8種簡單線性回歸算法
    選自Medium作者:Tirthajyoti Sarkar機器之心編譯參與:晏奇、劉曉坤本文中,作者討論了 8 種在 Python 環境下進行簡單線性回歸計算的算法然而,在 Python 中是否只有一種方法來執行線性回歸分析呢?如果有多種方法,那我們應該如何選擇最有效的那個呢?
  • 範例分析:一元(簡單線性)相關與回歸分析
    基礎準備前面以兩變量的簡單線性相關與回歸分析為例,分篇幅介紹了以下內容:相關與回歸分析基礎;一元
  • SPSS統計分析案例:一元線性回歸
    微信號後臺有非常之多的關於回歸分析的留言,作為最常見的統計分析方法,在工作生活中的應用需求量巨大,這兩天已經為大家選好了案例數據,先從一元線性回歸分析開始。一元線性回歸,顧名思義,僅有一個自變量的回歸模型,研究的是一個因素對結果的影響,可以用於預測,也經常被稱之為簡單線性回歸分析。
  • 8種用Python實現線性回歸的方法
    拋開涉及大量數統的模型分析和檢驗不說,你真的就能熟練應用線性回歸了麼?未必!「寶刀不老」的線性回歸時至今日,深度學習早已成為數據科學的新寵。即便往前推10年,SVM、boosting等算法也能在準確率上完爆線性回歸。
  • SPSS案例實踐:多重線性回歸分析
    當只考察一個自變量對因變量的影響時,我們稱之為簡單一元線性回歸,如果要多考察一些自變量,此時許多人習慣性將之稱為多元線性回歸
  • 乾貨丨8種用Python實現線性回歸的方法
    沒錯,作為數據科學界元老級的模型,線性回歸幾乎是所有數據科學家的入門必修課。拋開涉及大量數統的模型分析和檢驗不說,你真的就能熟練應用線性回歸了麼?未必!「寶刀不老」的線性回歸時至今日,深度學習早已成為數據科學的新寵。即便往前推10年,SVM、boosting等算法也能在準確率上完爆線性回歸。
  • 8種用Python實現線性回歸的方法,究竟哪個方法最高效?
    ,大部分人會立刻想到用sklearn的linear_model,但事實是,Python至少有8種執行線性回歸的方法,sklearn並不是最高效的。今天,讓我們來談談線性回歸。沒錯,作為數據科學界元老級的模型,線性回歸幾乎是所有數據科學家的入門必修課。拋開涉及大量數統的模型分析和檢驗不說,你真的就能熟練應用線性回歸了麼?未必!
  • 線性回歸分析思路總結!簡單易懂又全面!
    線性回歸是一種研究影響關係的方法,在實際研究裡非常常見。本文就來梳理下線性回歸分析的分析流程,閒話少說,我們開始吧!線性回歸回歸分析實質上就是研究一個或多個自變量X對一個因變量Y(定量數據)的影響關係情況。
  • 8種方法用Python實現線性回歸,為你解析最高效選擇
    本文為大家對比了8種用Python實現線性回歸的方法哪個更高效。說到如何用Python執行線性回歸,大部分人會立刻想到用sklearn的linear_model,但事實是,Python至少有8種執行線性回歸的方法,sklearn並不是最高效的。今天,讓我們來談談線性回歸。
  • 線性回歸:簡單線性回歸詳解
    【導讀】本文是一篇專門介紹線性回歸的技術文章,討論了機器學習中線性回歸的技術細節。線性回歸核心思想是獲得最能夠擬合數據的直線。
  • 線性回歸分析詳解10(完結篇):線性回歸分析預測的十大步驟
    許栩原創專欄《從入門到高手:線性回歸分析詳解》第10章,這是本專欄的最後一章,是專欄的完結篇:用線性回歸分析做預測,多元線性回歸分析預測的十大步驟。線性回歸分析專格欄總目錄請見上圖,前9章,我分別講述了回歸分析及與回分析相關的概念,一元、多元線性回歸分析的公式與計算方法,以及多重共線性、回歸方程的精度、顯著性驗證和置信區間等進行回歸分析的重要步驟及其計算方法。至此,以回歸分析進行需求預測的各項知識點及各項準備工作全部完成,我們可以正式的以回歸分析進行需求預測。
  • 機器學習:回歸分析——多元線性回歸分析
    從前面的學習中我們知道:社會經濟現象的變化往往受到多個因素的影響,因此一般要進行多元回歸分析。我們把包括兩個或兩個以上自變量的回歸稱為多元線性回歸。所以相比一元線性回歸,多元線性回歸的實際意義更大。本節我們將使用來自UIC數據集中的能效數據集(ENB2012_data.xlsx)進行演示,探索如何使用Python對數據集進行多元回歸分析。
  • Python數據分析|線性回歸
    Python數據分析學習筆記,今天分享下利用Python對業務進行數據預處理,並利用線性回歸進行數據預測。④先以我們後續需要用來做線性回歸的列「內容閱讀量」為標準,將不含該值的數據行去除:調用dropna函數,並執行info函數看數據情況。
  • 線性回歸分析淺談
    在數學分析中,最簡單的數學函數關係莫過於線性方程,用於求解這個函數關係式的方法大多採用最小平方差(least square,LS,有的也稱最小二乘法)方法。這種方法常用於校準(calibration),常見的例子如製備一系列已知不同濃度的標準品溶液並測試其響應值(如吸光度),然後用線性回歸分析求得校準曲線方程(等一等
  • ISLR習題:線性回歸 - 沒有截距的簡單線性回歸
    本文源自《統計學習導論:基於R語言應用》(ISLR) 第三章習題生成預測變量 x 和響應變量 yset.seed(1)x = rnorm(100)y = 2 * x + rnorm(100)y 對 x建立 y 對 x 的不含截距的簡單線性回歸
  • Excel數據分析篇:線性回歸
    通過數據間相關性分析的研究,進一步建立自變量(i=1,2,3,…)與因變量Y之間的回歸函數關係,即回歸分析模型,從而預測數據的發展趨勢。 2、分類按照涉及的變量的多少,分為一元回歸和多元回歸分析;按照因變量的多少,可分為簡單回歸分析和多重回歸分析;按照自變量和因變量之間的關係類型,可分為線性回歸分析和非線性回歸分析。
  • 線性回歸-如何對數據進行回歸分析
    通常,我們的模型是通過多個特徵值來預測一個目標值,那麼線性回歸模型的數學公式為:其中:線性回歸模型與數學中的解方程不同,後者的結果是精確解,而前者則是一個近似解。因此在公式中存在一個 ε 。有兩個指標:LinearRegression 類中的 score 方法就是R2 指標的實現:7,對波士頓房價進行線性分析對于波士頓房價數據集
  • 推薦 :為你介紹7種流行的線性回歸收縮與選擇方法(附代碼)
    本文討論了幾種子集和收縮方法:最佳子集回歸, 嶺回歸, LASSO, 彈性網, 最小角度回歸, 主成分回歸和偏最小二乘。本文討論了七種流行的收縮和選擇方法的數學屬性和實際的Python應用。在本文中,我們將介紹七種流行的子集選擇和線性回歸收縮方法。
  • CFA level2 量化分析 簡單線性回歸介紹 R4
    這章是簡單的線性回歸,包含兩個變量,一個自變量和一個因變量。要能夠建立簡單的線性回歸模型,並解釋其成立的假設和所存在的局限性。然後,就是要會使用模型和給定的自變量去預測因變量,還要理解ANOVA表和檢驗回歸的顯著性水平。很大一部分都是中學數學的內容,用一堆數,得到一個一元一次方程後,再給出一個新的x,帶進去計算y,不同的是加了顯著性水平等。