1. 程式人生 > >資料科學家需要掌握的10大統計技術

資料科學家需要掌握的10大統計技術

作者:Robbie Allen
編譯:BigQuant

無論你如何看待資料科學這門學科,都不能輕易忽視資料的重要性,以及我們分析、組織和理解資料的能力。Glassdoor 網站收集了大量的僱主和員工的反饋資料,發現在美國“25個最好的工作職位清單”中排名第一的是資料科學家。儘管排名擺在那裡,但毫無疑問,資料科學家們研究的具體工作內容仍會不斷增加。隨著機器學習等技術變得越來越普遍,像深度學習這樣的新興領域獲得了來自研究人員、工程師以及各大公司更多的關注,資料科學家會繼續站在創新浪潮之巔並且推動技術的不斷髮展。

儘管擁有強大的編碼能力非常重要,但資料科學也並非全部都是關於軟體工程的(事實上,能夠熟練掌握python已經足夠很好的開展工作了)。資料科學家生活在程式設計、統計學和批判性思維的交叉點上。 正如 Josh Wills所說的那樣:“資料科學家是那種比任何程式設計師都更擅長統計並且也要比任何統計學家都更擅長程式設計的人。”我個人認為太多的軟體工程師希望轉向資料科學家,並盲目利用一些像TensorFlow或Apache Spark的機器學習框架來處理他們的資料,而沒有對其背後的統計學理論有一個深入瞭解。因此,不斷借鑑統計學及泛化函式領域的機器學習理論框架不斷伴隨著統計學的研究。

為什麼要學習統計學習?瞭解各種技術背後的想法非常重要,只有這樣我們才能掌握這些技術的使用方法,把握合適的時機。我們要明確的是我們只有先掌握較為簡單的方法,才能為之後掌握複雜方法奠定良好基礎。準確評估一種方法的效能也是十分重要的,這樣可以瞭解到工作效果的好壞。此外,統計學也是一個令人振奮的研究領域,在科學、工業和金融領域都有著重要的應用。最後,統計學習是培養現代資料科學家培訓的基本要素。統計學習問題應用的例子包括:

  • 確定前列腺癌的風險因素。
  • 根據對數週期圖分類錄音。
  • 根據人口統計,飲食和臨床測量預測一個人是否會患有心臟病。
  • 自定義垃圾郵件檢測系統。
  • 識別手寫郵政編碼中的數字。
  • 對組織樣本進行癌症分類。
  • 建立人口調查資料中工資與人口變數之間的關係。

在大學的最後一個學期,我做了一個關於資料探勘的獨立研究。該課題涵蓋的大量內容來自以下這三本書:《Intro to Statistical Learning》,《 Doing Bayesian Data Analysis》以及《Time Series Analysis and Applications》。我們在貝葉斯分析、馬爾可夫鏈、蒙特卡羅、分層建模、監督和無監督學習方面做了大量的練習。這種經歷加深了我對資料探勘學術領域的興趣,並使我堅信我會繼續專注於此領域。最近,我完成了斯坦福大學Lagunita統計學習線上課程,該課程涵蓋了我在獨立研究中讀到的《Intro to Statistical Learning》所有內容。現在我已對這部分知識十分熟悉了,我想分享這本書中的10個統計技術,我認為任何資料科學家都應該學會更高效地去處理大資料集,而這些技術正可以幫助資料科學家們達到此目的。

在介紹這10種技術之前,我想先將統計學習和機器學習進行一個簡單的區分。主要區別如下:

  • 機器學習是人工智慧的一個子領域。
  • 統計學習是統計學的一個分支。
  • 機器學習更強調大規模應用和預測的準確性。
  • 統計學習強調模型及其可解釋性,精確性和不確定性。
  • 但是這種區別變得越來越模糊,兩者在很多情況下都有交叉。
  • 機器學習在市場營銷中佔據上風!

1.線性迴歸

在統計學中,線性迴歸是一種通過擬合因變數和自變數之間最佳線性關係來預測目標變數的方法。通過確保線性表示式輸出圖形與實際觀察點之間的所有距離之和儘可能小來完成最佳擬合。形狀的“最佳”是指在給定形狀的情況下,沒有其他位置會產生更少的誤差。線性迴歸的兩種主要型別是簡單線性迴歸和多元線性迴歸。簡單線性迴歸使用單個獨立變數來通過擬合最佳線性關係來預測因變數。多重線性迴歸使用多個獨立變數通過擬合最佳線性關係來預測因變數。

在這裡插入圖片描述

選擇任意兩件你在日常生活中相關的事情。比如,我有我過去三年的每月支出,每月收入和每月的旅行次數的資料。那麼我就可以通過線性迴歸預測以下幾個問題:

  • 我明年的每月花費是多少?

  • 在決定我的每月支出時,哪個因素(月收入或每月旅行次數)更重要?

  • 月收入和每月旅行如何與每月支出相關聯?

2.分類

分類是一種資料探勘技術,將資料集分配至多了類別,以幫助進行更準確的預測和分析。有時也稱為決策樹,分類是分析大型資料集的幾種高效方法之一。其中有兩大分類技術最為常用:邏輯迴歸和判別分析。

邏輯迴歸分析適合用於因變數為二元類別時的迴歸分析。像所有的迴歸分析一樣,邏輯迴歸是預測分析。邏輯迴歸用於描述資料並解釋一個相關二元變數與一個或多個名義,序數,區間或比率級別等獨立變數之間的關係。邏輯迴歸可以檢查的問題型別有:

  • 每超重一磅和每天吸一包香菸對改變肺癌的概率是否有影響(是vs否)?

  • 卡路里攝入量,脂肪攝入量和參與者年齡是否對心臟病發作有影響(有vs無)?

在這裡插入圖片描述

判別分析中,兩個或多個已知的集合、簇或群體都可以作為分類的先驗知識,使用時根據被測特徵就可把新的觀測值劃分到相應類別。 判別分析在每個響應類別中分別對預測變數X的分佈進行建模,然後使用貝葉斯定理將它們轉換成給定X值可獲對應類別的概率的估計值。這些模型可以是線性的或二次的。

  • 線性判別分析為每個觀測值計算“判別分數”,以對它所處的響應變數類別進行分類。這些分數是通過尋找自變數的線性組合得到的。它假設每個類別內的觀察值均來自多變數高斯分佈,並且預測變數的方差都是相同的。

  • 二次判別分析提供了一種替代方法。 與LDA一樣,QDA假設來自每個Y類的觀察結果都來自高斯分佈。 但是,與LDA不同的是,QDA假定每個類都有其自己的協方差矩陣。 換句話說,每個類別的方差不一樣

3.重取樣方法

重取樣是從原始資料樣本中繪製重複樣本的方法。這是一種統計推斷的非引數方法。換句話說,重取樣方法不涉及使用通用分佈表來計算近似概率p的值。

重取樣根據實際資料生成獨特的取樣分佈。它使用實驗方法而不是分析方法來生成獨特的抽樣分佈。它可基於研究人員研究資料的所有可能結果的無偏樣本獲取無偏估計。為了理解重取樣的概念,你應該先理解術語Bootstrapping和交叉驗證:

在這裡插入圖片描述

  • Bootstrapping是一種技術,有助於在許多情況下驗證預測模型的效能和整合方法,估計模型的偏差和方差。它通過對原始資料進行有放回的取樣,並將“未選擇”資料點作為測試用例。我們可以做這幾次這樣的操作,並計算平均分作為我們的模型效能的估計。

  • 交叉驗證是驗證模型效能的一種技術,它通過將訓練資料分成k個部分來完成。我們將k-1部分作為訓練集,並將餘下部分作為我們的測試集。 我們以不同的方式重複k次。 最後,我們將k個分數的平均值作為我們的效能評估。

通常對於線性模型而言,普通最小二乘法是擬合數據時的主要標準。 接下來的3種方法是可以為線性模型擬合提供更好的預測精度和模型可解釋性的替代方法。

4.子集選擇

這種方法首先確定了我們認為與問題最相關的p個預測因子的一個子集。 然後我們使用子集特徵和最小二乘法來擬合模型。

在這裡插入圖片描述

  • 最佳子集選擇:這裡我們為p個預測因子的每種可能組合擬合一個單獨的最小二乘迴歸,然後檢視最終的模型擬合結果。該演算法分為2個階段:(1)擬合所有包含k個預測變數的模型,其中k是模型的最大長度,(2)使用交叉驗證的預測損失選擇單個模型。使用測試或驗證誤差非常重要,而不是單純的以訓練誤差來評估模型擬合情況,因為RSS和R²會隨著變數的增加而單調遞增。最好的方法是選擇測試誤差估計值最高的R²和最低RSS的模型交叉驗證,進而選擇模型。

  • 向前逐步選擇,考慮p個預測因子的更小的子集。演算法先從一個不包含預測變數的模型開始,然後將預測因子新增到模型中,一次一個,直到所有預測因子都在模型中。新增預測因子的順序是根據不同變數對模型擬合效能提升的程度來確定的,不斷新增新的預測因子,直到交叉驗證誤差沒有大的改變。

  • 向後逐步選擇,首先模型包含所有p個預測因子,然後迭代地逐個去除最無用的預測變數。

  • 混合法遵循前向逐步方法,但是,在新增每個新變數之後,該方法還可以去除對模型擬合無貢獻的變數。

5.特徵縮減技術

這種方法適用於包含所有p個預測因子建立的模型,然而,表示預測因子重要性的係數將隨最小二乘誤差向零收縮。這種收縮稱之為正則化,具有減少方差以防止模型過擬合的作用。常用的縮減係數方法有lasso(L1正則化),嶺迴歸(L2正則化)。

在這裡插入圖片描述

  • 嶺迴歸與最小二乘法類似,都是尋求減少RSS的係數估計,當係數接近於零時,它們也會有收縮懲罰。這個懲罰的作用是將係數估計收縮到零。我們不需要數學分析就知道嶺迴歸很擅長於將特徵收縮到最小的子空間中。與主成分分析一樣,嶺迴歸將資料投影到低維空間,並在係數空間內收縮較低方差的成分而保留有較高方差的成分。

  • 嶺迴歸有一個缺點,最終模型需包含所有p個預測因子。懲罰項將使其中的許多預測因子的係數接近於零,但從未等於零。這對預測準確性雖然通常沒有什麼影響,但它可能會使模型結果更難以解釋。Lasso方法克服了這個缺點,只要s足夠小,就能夠迫使某些係數歸零。當s=1時,像正常的最小二乘法迴歸,當s接近0時,係數收縮為零。因此,Lasso迴歸也是執行變數選擇的好方法。

6.降維

降維是將p + 1個係數估計問題簡化為M + 1個係數估計的簡單問題,其中M <p。這是通過計算變數的M個不同的線性組合或投影來實現的。然後,這些M個預測被用作預測因子通過最小二乘法擬合線性迴歸模型。該任務的兩種方法是主成分迴歸和偏最小二乘法。

在這裡插入圖片描述

  • 可以將主成分迴歸描述為從大量變數中推導低維特徵集的方法。資料中的第一主成分是指觀測值沿著這個變數方向的變化最大。換句話說,第一個主成分是一條儘可能接近資料分佈的那條線。第二個主成分是與第一個主成分不相關的變數的線性組合,且在該約束下有最大方差。主要思想是主成分能在各個互相垂直的方向使用資料的線性組合得到最大的方差。通過這種方式,我們還可以結合相關變數的效應,從可用資料中獲取更多資訊,而在正則最小二乘中,我們必須捨棄其中一個相關變數。

  • 我們上面描述的PCR方法需要得到 X 的最優線性組合。由於 X 對應的輸出 Y 對主成分方向的計算沒有影響,也就是說這些組合(方向)是通過無監督方法獲得的,那麼就無法保證這些方向是預測器的最優表徵,也無法保證能獲得最優預測輸出。偏最小二乘法(PLS)作為 PCR 的代替方法,屬於有監督方法。和 PCR 類似,PLS 也是一種降維方法,它首先提取一個新的較小的特徵集合(原始特徵的線性組合),然後通過最小二乘法將原來的模型擬合為一個新的具有 M 個特徵的線性模型,通過對模型預測誤差來評價特徵集合是否是Y的最優線性組合。

7.非線性模型

在統計學中,非線性迴歸是迴歸分析的一種形式,通過模型引數的非線性組合來對觀測資料建模,並依賴於一個或多個獨立變數。資料通過逐次逼近的方法進行擬合。以下是一些處理非線性模型的重要技術:

  • 階梯函式,變數為實數,可以寫成區間的效用函式的有限線性組合的形式。通俗地講,一個階梯函式是一個只有有限部分的分段常量函式。

  • 分段函式是由多個子函式定義的函式,每個子函式被定義在主函式域的區間上。分段實際上是表達函式的一種方式,而不是函式本身的特性,但是通過額外的限定條件,它可以描述函式的性質。例如,一個分段多項式函式,它是一個在每個子定義上為多項式的多項式,但每個子定義上的多項式都可能是不同的。

在這裡插入圖片描述

  • 樣條曲線是由多項式分段定義的特殊函式。在計算機圖形學中,樣條是指分段多項式引數曲線。因為它們的結構簡單,評估簡易並且準確,以及通過曲線擬合和互動式曲線設計逼近複雜形狀的能力,樣條曲線很常用。

  • 廣義加性模型是一種廣義線性模型,其中線性預測器依賴於某些預測變數的未知光滑函式,主要作用側重於對這些光滑函式的推理。

8.基於樹的方法

基於樹的方法可以用於迴歸和分類問題。它會將預測器空間分層或分割成若干簡單區域。由於用於分割預測變數空間的分裂規則集可以總結為一個樹,因此這些型別的方法被統稱為決策樹方法。下面的方法生成多棵樹樹,然後將這些樹組合在一起以生成統一的預測。

  • Bagging是一種減少預測方差的方法,通過重複組合生成原始資料相同的多段資料,以從原始資料集中生成額外的訓練資料。通過增加訓練集的大小,你不能提高模型預測力,但只需減小方差,可將預測調整到預期結果。

  • Boosting是一種使用多種不同模型計算產出的方法,然後使用加權平均方法對結果取平均值。結合各方法的優勢來改變這些方法所佔的權重,你可通過微調引數,為更廣泛的輸入資料提供更佳的預測能力。

在這裡插入圖片描述

  • 隨機森林演算法實際上非常類似於Bagging演算法。同樣是對訓練集提取隨機Bootstrap樣本。但是,除了Bootstrap樣本外,你還可以提取隨機子集的特徵來訓練單個樹; 在Bagging中,需要為每一棵樹提供全部的特徵。由於特徵選擇是隨機的,與常規Bagging演算法相比,你可以使每棵樹間更加獨立,這通常會獲得更好的預測效能(由於更好的方差—偏差權衡),而且速度更快,因為每一棵樹只需從特徵子集中學習。

9.支援向量機

在這裡插入圖片描述

支援向量機是一種分類技術,被列入機器學習中的監督學習模型。通俗地說,它涉及尋找兩類點集的最優超平面(在2D空間中是線,在3D空間中是平面,在更高維中是超平面,超平面是n維空間的n-1維子空間)。這個超平面使得兩類點集的間隔最大,本質上是約束最優化問題,在一定約束下使得間隔最大化,從而實現資料的完美分類。

這種“支援”這個超平面的資料點被稱為“支援向量”。在上圖中,填充的藍色圓圈和兩個實心方塊就是支援向量。對於兩類資料不能線性分離的情況,這些點將投影到一個爆炸(較高維)的空間,在這裡可能會發生線性分離。涉及多個類的問題可以分解為多個一對一或者一對一剩餘的二分類問題。

10.無監督學習

到目前為止,我們只討論了監督學習技術,其中資料分類已知。當資料組(類別)未知時,可以使用另一組技術。它們被稱為無監督學習,它們需要自己去發現數據中的模式。聚類是無監督學習的一個例子,資料會根據相關性被分為多簇。以下是幾種最常用的無監督學習演算法:

在這裡插入圖片描述

  • 主成分分析通過識別具有最大方差和相互不相關的一組線性組合來幫助生成資料集的低維表示。這種線性維度技術有助於理解變數在無監督環境下的隱變數互動。

  • k均值聚類:根據資料到聚類中心的距離將其分為k個不同的簇。

  • 層次聚類:通過建立叢集樹來構建叢集的多級分層結構。

以上一些統計技術的基本簡介,可以幫助資料科學專案經理和執行人員更好地理解他們的資料科學團隊在執行的事情。事實上,一些資料科學團隊純粹通過python和R語言執行演算法。他們中的大多數甚至不必考慮潛在的一些數學問題。然而,能夠理解統計分析的基本知識可以為你的團隊帶來更多的益處。希望這篇基礎的資料科學統計指南能給大家帶來一些新的收穫!


原文連結:《資料科學家需要掌握的10大統計技術

本文由BigQuant《量化研究每週精選》原創推出,版權歸BigQuant所有,轉載請註明出處。

BigQuant——人工智慧量化投資平臺