Glassdoor利用龐大的就業數據和員工反饋信息,統計了美國25個最佳職位排行榜,其中,數據科學家排名第一。這個工作的重要性可見一斑。毫無疑問,數據科學家所做的事情是不斷變化和發展的。隨著機器學習的普遍應用,數據科學家們將繼續在創新和技術進步浪潮中獨領風騷。
雖然編碼能力很重要,但數據科學並不都是研究軟體工程的。他們生活在編碼、統計學和批判性思維的交叉點上。正如數據科學家喬希·威爾斯(Josh Wills)所說的:「數據科學家是程式設計師裡最好的統計學家,也是統計學家裡最好的程式設計師。」
我知道,很多軟體工程師想轉型數據科學家,他們盲目地使用機器學習框架TensorFlow或Apache Spark,而沒有透徹理解背後的統計理論。因此,統計學習從統計學和功能分析的角度出發,提出了機器學習的理論框架。
為什麼要學統計學習?
了解各種技術背後的想法,知道如何以及何時使用它們,這一點非常重要。
首先,要從理解簡單的方法開始,以便把握更複雜的方法。
其次,準確地評估一種方法的性能,了解它的工作效果,也很重要。
此外,統計學習是令人興奮的研究領域,在科學、工業和金融領域有著重要應用。
最後,統計學習是培養現代數據科學家的基本要素。
屬於統計學習領域的問題包括:
確定前列腺癌的危險因素。根據對數周期圖對錄製的音位進行分類。根據人口統計、飲食和臨床測量,預測是否有人會發生心臟病。自定義垃圾郵件檢測系統。識別手寫郵政編碼中的數字。根據組織樣本進行癌症分類。建立人口調查數據中工資與人口變量之間的關係。
我在大學最後一個學期進行了一項獨立研究,是關於數據挖掘的。內容涉及三本書:《Intro to Statistical Learning》《Doing Bayesian Data Analysis》和《Time Series Analysis and Applications》。我們做了大量的貝葉斯分析,馬爾可夫鏈蒙特卡羅,分層建模,監督和無監督學習的練習。這一經歷增加了我對數據挖掘的興趣,讓我堅定了投身這一領域的信心。
最近,我完成了史丹福大學Lagunita 統計學習在線課程,該課程涵蓋了《An Introduction to Statistical Learning: with Applications in R》一書中的所有內容。它的內容是我搞獨立研究時讀過內容的兩倍。我想分享本書中的10個統計技術,相信任何數據科學家都用得著。
在學習使用這10種技術之前,我想區分一下統計學習和機器學習。我之前寫過一篇關於機器學習的文章,廣受歡迎,所以我相信自己有足夠的專業知識,證明以下內容:
機器學習是人工智慧的一個子領域。統計學習是統計學的一個分支。機器學習更強調大規模應用和預測的準確性。統計學習強調模型及其可解釋性,精確性和不確定性。但是這種區別變得越來越模糊,並且存在很多「交叉領域」。機器學習在商業領域佔據上風!
1.線性回歸
在統計學中,線性回歸是一種通過擬合自變量與因變量之間最佳線性關係,來預測目標變量的方法。過程是給出一個點集,用函數擬合這個點集,使點集與擬合函數間的誤差最小。所謂的「最佳」線性關係是指在給定形狀的情況下,沒有其他位置會產生更少的誤差。
線性回歸的兩種主要類型是簡單線性回歸和多元線性回歸 。 簡單線性回歸使用一個獨立變量,通過擬合最佳線性關係來預測因變量。多元線性回歸使用多個獨立變量,通過擬合最佳線性關係來預測因變量。
舉例:任意選擇日常生活中相關的東西,比如,過去三年的月支出、月收入和月旅行次數。現在回答以下問題:
我明年的每月支出是多少?哪個因素(月收入或月旅行次數)在決定我的月支出中更重要?月收入和月旅行次數如何和月支出有什麼關係?
2.分類
分類是一種數據挖掘技術,它將類別分配給數據集合,幫助更準確地預測和分析。分類有時也稱為決策樹,它是用來分析大型數據集有效性的方法。兩種主要的分類技術是邏輯回歸和判別分析。
邏輯回歸是當因變量是二元時進行的適當回歸分析。像所有回歸分析一樣,邏輯回歸分析是一種預測分析。邏輯回歸用於描述數據,並解釋二元因變量與一個或多個描述事物特徵的自變量之間的關係。邏輯回歸可以檢驗的問題類型包括:
體重超重後,每增加一磅和每天吸一包菸草,患肺癌的可能性(是vs否)會發生怎樣的變化?體重、卡路裡攝入量、脂肪攝入量和參與者年齡對心臟病發作是否有影響?
在判別分析中,有兩個或兩個以上群集是已知的,新的觀測值根據特徵,歸入已知群集。判別分析對類別中X的分布進行建模,然後使用貝葉斯定理轉換為對應概率。判別分析包括以下兩種類型。
線性判別分析(LDA):計算每一項觀測結果的「判別分數」,對其所處的響應變量類別進行分類。這些分數是通過尋找自變量的線性組合得到的。它假設每類中的觀測結果來自於一個多變量高斯分布,而預測變量的協方差在響應變量Y的所有k級別都是通用的。
二次判別分析(QDA):提供了一種替代方法。和LDA一樣,QDA假設每一類中Y的觀測結果都來自於高斯分布。然而,與LDA不同,QDA假設每個類別都有自己的協方差矩陣。換句話說,預測變量在Y中的每個k級別都沒有共同的方差。
3.重採樣方法
重採樣是指從原始數據樣本中提取重複樣本的方法。這是一種非參數的統計推斷方法。換句話說,重採樣不利用通用分布計算近似的p概率值。
重採樣在實際數據的基礎上生成一個獨特的抽樣分布。它採用實驗方法,而不是分析方法,產生獨特的抽樣分布。它根據研究人員所研究的數據的所有可能結果的無偏樣本,得出無偏估計。為了理解重採樣的概念,應先了解Bootstrapping (自舉)和交叉驗證兩個術語。
Bootstrapping(自舉)可以幫助你在很多情況下驗證預測模型的性能、集成方法,估計模型的偏差和方差。它通過對原始數據進行有放回取樣,進行數據採樣,並將「 未選擇 」的數據點作為測試用例。我們可以多做幾次,計算出平均分,作為模型性能的估值。
交叉驗證是驗證模型性能的一種技術,它把訓練數據分成k個部分,以k1部分作為訓練集,其餘部分作為測試集。依次重複,重複k次。最後,將k次分數的平均值作為模型性能的估值。
通常,對於線性模型,普通最小二乘法是擬合數據的主要標準。接下來的3種方法,可以為線性模型的擬合提供更好的預測精度和模型可解釋性。
4.子集選擇
此方法選擇一個我們認為能夠解決問題的預測因子p中的子集,然後,使用子集特徵和最小二乘法,擬合一個模型。
最佳子集選擇:我們對每種可能的p預測因子組合進行OLS回歸,然後查看最終的模型擬合。
算法分為2個階段:
(1)擬合所有包含k個預測因子的模型,其中k是模型的最大長度。
(2)使用交叉驗證的預測誤差選擇單個模型。
由於 RSS 和 R^2 隨變量增加而單調遞增, 所以使用驗證或測試誤差, 且不用訓練誤差來評估模型的擬合情況是很重要的。最好的方法是選擇具有最高R^2和最低 RSS 的模型,交叉驗證。
向前逐步選擇:建一個模型,裡面不含預測因子, 然後逐個添加, 直到所有預測因子都在模型中。添加因子的順序是可變的, 根據不同變量對模型性能提升程度來確定, 添加變量,直到預測因子不能在交叉驗證誤差中改進模型。
向後逐步選擇:將所有預測因子p納入模型,迭代刪除沒有用的預測因子,一次刪一個。
混合方法:遵循向前逐步選擇的方法,但是,在添加新變量之後,還可以去除對模型擬合沒有用的變量。
5.收縮
這種方法適用於所有預測因子p的建模,然而,相對於最小二乘估計,它估計的係數會趨於零。這種收縮,也就是正則化,有減少方差,防止模型過擬合的作用。根據執行的收縮類型,一些係數可能被估計為零。因此,該方法也執行變量選擇。兩種最著名的縮小係數的方法是嶺回歸和套索回歸。
嶺回歸類似最小二乘法,不過它通過最小化一個不同的量來估計係數。像OLS一樣,嶺回歸尋求降低RSS的係數估計,但是當係數接近於零時,它們也會有收縮懲罰。這個懲罰的作用是將係數估計收縮到零。不使用數學計算,我們就可以知道,嶺回歸會將特徵縮小到最小空間。就像主成分分析,嶺回歸將數據轉換到低維空間,然後收縮係數空間內較低方差的成分,保留較高方差的成分。
嶺回歸至少有一個缺點,它包括最終模型中的所有預測因子p。收縮懲罰將使它們中的許多接近於零,但從未等於零。這對預測的準確性來說不是問題,但它可能使模型難以解釋。
套索回歸則克服了這個缺點,能夠迫使一些係數歸零,只要s足夠小。由於s= 1會產生正規的OLS回歸,而當s接近0時,係數收縮為零。因此,套索回歸也執行變量選擇。
6.降維
降維算法將p + 1個係數的問題簡化為M + 1個係數的簡單問題,其中M < p,這是通過計算變量的M個不同的線性組合或投影得到的。然後,這些M投影被用作預測最小二乘法擬合線性回歸模型的預測因子。該任務的兩種方法是主成分回歸和偏最小二乘法。
主成分回歸(PCR)是從大量變量中導出低維特徵集合的方法。數據的第一主成分方向是觀測數據變化最大的方向。換句話說,第一主成分是最接近擬合數據的線,可以適合p個不同的主成分擬合。第二主成分是與第一主成分不相關的變量的線性組合,並且在該約束下有最大方差。其思想是,主成分利用各個互相垂直方向上的數據的線性組合,捕捉數據中最大的方差。這樣,我們還可以結合相關變量的影響,從可用的數據中獲得更多的信息,而在常規的最小二乘法中,我們必須拋棄一個相關的變量。
PCR方法需要提取X的線性組合,它最能代表預測因子。這些組合(方向)以無監督方式提取,因為X對應的Y不能確定主成分的方向。也就是說, Y不監督主成分的提取,因此,最能解釋預測因子的方向,對於預測輸出來說不一定是最好的(即使經常假設)。
偏最小二乘法(PLS)是PCR的一種替代方法。 與PCR一樣,PLS是 一種 降 維 方法,它首先識別一組新的較小的特徵,這些特徵是原始特徵的線性組合,然後通過最小二乘法擬合一個線性模型,具備新的M個特徵。 然而,與PCR不同的是,PLS利用Y變量來識別新的特徵。
7.非線性模型
在統計學中,非線性回歸是回歸分析的一種形式,其中觀測數據是由一個函數建模的,該函數是模型參數的非線性組合,並取決於一個或多個自變量。數據通過逐次逼近的方法進行擬合。以下是一些處理非線性模型的重要技巧。
階躍函數的變量是實數,它可以寫成區間的指示函數的有限線性組合。非正式地說,一個階躍函數是一個分段常數函數,它只有有限的幾個部分。
分段函數是由多個子函數定義的函數,每個子函數應用於主函數域的某個區間。分段實際上是一種表達函數的方式,不是函數本身的特性,而是附加的限定條件,它可以描述函數的性質。例如,分段多項式函數是,在每個子域上,函數都是多項式函數,並且每個多項式都是不同的。
樣條曲線是由多項式定義分段的特殊函數。在計算機圖形學中,樣條曲線是指一個分段多項式參數曲線。由於其結構簡單、評估簡單、精度高,以及通過曲線擬合和交互曲線設計近似複雜形狀的能力,樣條曲線是很受歡迎的曲線。
廣義加性模型是一種廣義線性模型,其中線性預測因子線性地依賴於某些預測變量的未知平滑函數,它的作用就是推測這些平滑函數。
8.基於樹的方法
基於樹的方法可以用於回歸和分類問題,包括將預測空間劃分成多個簡單區域。由於用於分割預測空間的分割規則集可以在樹中總結,這些類型的方法稱為決策樹方法。下面的方法是幾種不同的樹,可以組合輸出一個單一的共識預測。
Bagging(套袋)是一種減少預測方差的方法,通過從原始數據集生成額外的數據,重複組合,生成訓練數據。通過增加訓練集的大小,你不能提高模型的預測力,只是減小方差,將預測精確地調整到預期結果。
Boost(提升)是一種使用幾種不同模型計算輸出的方法,然後使用加權平均方法計算結果。結合這些方法的優點和缺陷,通過改變加權公式,你可以使用不同的模型,為更大範圍的輸入數據提供良好的預測力。
隨機森林算法非常類似於Bagging(套袋)。在這裡,你可以繪製隨機的自舉樣本。然而,除了自舉樣本之外,你還可以繪製一個隨機的子集,訓練單獨的樹。由於隨機特徵選擇,與常規的Bagging(套袋)相比,每個樹更獨立,這通常會獲取更好的預測性能(由於更好的方差-偏置權衡),而且速度更快,因為每一個樹只從特徵子集中學習。
9.支持向量機
支持向量機是機器學習中有監督學習模型下的技術。通俗地說,它涉及尋找分離兩類點集的超平面(二維空間中是線,三維空間中是面,高維空間中是超平面)。本質上,這是一個約束最優化問題,在約束下間隔最大化,完美地對數據進行分類(硬邊界)。
這種「支持」這個超平面的數據點被稱為「支持向量」。在上圖中,實心藍色圓和兩個實心正方形是支持向量。對於兩類數據不是線性可分的情況,這些點被投射到一個爆炸(高維)空間,線性分離成為可能。涉及多個類的問題可以分解為多個一對一,或一對剩餘的二分類問題。
10.無監督學習
到目前為止,我們只討論了監督學習的技術,在這些技術中,數據類別是已知的,並且提供給算法的經驗是實體和它們所屬的組之間的關係。當不知道數據類別時,可以使用另一組技術。在算法學習中,它們被稱為無監督,要自己在提供的數據中找出模式。聚類是無監督學習的一個例子,在這種學習中,不同的數據集被集中到一組密切相關的項目中。以下是最廣泛使用的無監督學習算法。
主成分分析:通過識別一組具有最大方差且互不相關的特徵的線性組合,從而產生數據集的低維表示。這種線性降維技術有助於理解無監督環境中變量之間潛在的相互作用。
k-均值聚類:根據數據到集群中心的距離將數據劃分成k個不同的集群。
層次聚類:通過創建集群樹構建多層次的集群。
這是對一些基本的統計技術的簡單總結。這些技術可以幫助數據科學項目經理和主管,更好地了解他們的數據科學團隊每天都在做什麼。事實上,一些數據科學團隊純粹是通過python和R來運行算法的。他們中的大多數人甚至不需要考慮底層的數學問題。但是,能夠理解統計分析的基礎,可以讓團隊有更好的方法,對於細節有更深入的了解,便於操作和進行抽象思維。我希望這個基礎數據科學統計指南,能給你帶來不錯的理解方式!
來源:codementor作者:James Le智能觀 編譯
—完—
親愛的朋友:我們的「智能觀小艾」,本是為了方便有轉載需求的朋友服務的,結果被好多做開發的朋友添加了。其中有不少是軟體工程師想轉型的。我們很高興,有這麼多做開發的朋友關注我們。今天的這篇文章,就是分享給想轉型的你的。希望能對你有所幫助。祝安! 智能觀 一米 2018-2-10 於北京中關村
聲明:編譯文章旨在幫助讀者了解行業新思想、新觀點及新動態,為原作者觀點,不代表智能觀觀點。