[譯] 數據科學家須要掌握的十種統計技術

數據科學家須要掌握的十種統計技術

不管你在數據科學是否「性感「的問題上站定何種立場,都沒法忽略一個事實:數據,和咱們分析數據、組織數據、肯定數據上下文關係的能力正在愈來愈重要。憑藉龐大的就業數據和員工反饋,Glassdoor(一家美國的求職社區,譯者注)將數據科學家排在全美最佳的 25 個職位中的第一名。所以,雖然這個角色會依然存在,但毫無疑問,數據科學家們所作的具體任務將會不斷進化。隨着像機器學習這樣的技術的普及,還有像深度學習這樣的新興領域,得到了來自研究人員和工程師們及他們所在的公司的巨大關注,數據科學家們將繼續在創新和科技進步的浪潮中乘風破浪。前端

儘管擁有強悍的編程能力是重要的,但數據科學並不徹底是軟件工程(事實上,熟悉Python的話會更容易展開工做)。數據科學家須要的是編程,分析和關鍵性思考的三重能力。正如 Josh Wills 所言,「數據科學傢俱有比任何編程人員都更豐富的統計學知識,和比任何統計學家都強的編程能力。」據我我的瞭解,太多的軟件工程師想轉行成爲數據科學家。他們在沒有徹底理解數據科學理論的狀況下就盲目利用機器學習框架如 TensorFlow 或者 Apache Spark 去處理數據。他們對待統計學習這個基於統計學和泛函分析的機器學習理論框架,也是如此。python

爲何要學習統計學習理論? 理解多種技術背後的思想是很重要的,這樣便於知道如何以及什麼時候使用它們。爲了掌握更復雜的方法,人們必須先理解更簡單的方法。準確評估方法的性能是很是重要的,這讓咱們肯定工做是否正常進行。而且,這是個使人興奮的研究領域,在科技,工業和金融行業都有這很是重要的應用。歸根結底,統計學習是現代數據科學家培訓的基本要素。統計學習問題的例子包括有:android

  • 肯定引發前列腺癌的危險因素。
  • 根據對數週期圖對錄製的音素進行分類。
  • 根據人口統計學、飲食和臨牀測量預測某人是否會心臟病發做。
  • 自定義電子郵件垃圾郵件檢測系統。
  • 識別手寫的郵政編碼。
  • 將組織樣本分類到幾種癌症中的一種。
  • 在人口調查數據中創建薪水和人口統計變量之間的關係。

在大學的最後一個學期,我自學了數據挖掘。這門課的材料涵蓋了這三本書的內容:Intro to Statistical Learning (Hastie, Tibshirani, Witten, James),Doing Bayesian Data Analysis(Kruschke)和 Time Series Analysis and Applications(Shumway,Stoffer)。我作了大量和貝葉斯分析,馬爾可夫鏈,分層建模,監督和無監督學習相關的練習。這個經歷加深了我對數據挖掘學術領域的興趣,並使我確信要向更深處探索。最近,我在 Stanford Lagunita 自學了 Statistical Learning online course,它涵蓋了 Intro to Statistical Learning book 的所有材料。兩次接觸這些內容,我想分享這本書中的 10 種統計技術,我想任何數據科學家都應該學會這些技術,以便更有效地處理大數據集。ios

在開始介紹這十種技術以前,我想先區分一下統計學習和機器學習。以前我寫了機器學習中最流行的方法之一所以我很是自信我有能力去判斷它們的差別:git

  • 機器學習是人工智能的一個分支。
  • 統計學習是統計學的一個分支。
  • 機器學習很是強調大數據和預測精確度。
  • 統計學習強調模型以及它的可解釋性,精確性和不肯定性。
  • 可是二者的界限在變得模糊,而且還有大量的「學科交叉」。
  • 機器學習更有市場!

1 — 線性迴歸:

在統計學中,線性迴歸是一種經過擬合自變量和因變量之間的最優線性函數去預測目標變量的方法。當擬合每一個點獲得的值和實際觀測值的距離之和最小時,咱們就能夠認定最佳擬合了。在選擇形狀時,在沒有其餘的位置會產生更少的偏差的狀況下,說明這個形狀的擬合是」最好「的。兩種主要的線性迴歸是簡單線性迴歸多元線性迴歸簡單線性迴歸 經過擬合一個最優線性關係,使用單自變量去預測一個因變量。多元線性迴歸則是經過擬合一個最優線性函數,使用不止一個自變量去預測因變量。github

能夠選擇你生活中的任意兩個有關係的事物。好比,我有過去三年我每月收入和支出以及出行的數據。如今我要回答以下問題:算法

  • 我下一年的月支出將是多少?
  • 哪一個因素(月收入或者月出行次數)在決定個人月支出中更加劇要?
  • 月收入和月度出行次和月支出有怎樣的相關關係??

2 — 分類:

分類是一種數據挖掘技術,它爲數據集合分好類,以幫助進行更準確的預測和分析。分類有時候也被稱爲決策樹方法,是有效分析大型數據集的幾種方法之一。兩種脫穎而出的主要的分類技術是邏輯迴歸判別分析編程

當因變量是對立的(二元)時,邏輯迴歸是適當的迴歸分析方法。和全部的迴歸分析相似,邏輯迴歸是一種預測分析。邏輯迴歸用於描述數據,並解釋一個因變量與一個或多個定類、定序、定距或定比自變量之間的關係。邏輯迴歸能夠校驗的問題有:bootstrap

  • 天天每增長一磅體重和每多抽一包煙,患肺癌的概率(是與否)會有怎麼樣的變化?
  • 體重、卡路里攝入量、脂肪攝入量和參與者年齡對心臟病發做有影響嗎(是與否)?

判別分析中,兩個或者更多的組或羣或整體是已知先驗的,而根據分析的特徵,1個或者更多的觀測值被劃分進入已知的某一類簇中。判別分析模擬了預測因子 X 在每一個響應類別中的分佈,而後使用貝葉斯定理將其轉換爲給定 X 值的響應類別的機率估計值。這些模型能夠是線性的,也能夠是二次的後端

  • 線性判別分析經過計算每一個觀測值的「判別分數」來對觀測值進行響應變量類的歸類。這些分數是經過尋找自變量的線性組合獲得的。它假設每一個類中的觀測值都是來自一個多元高斯分佈,而且預測變量的協方差在響應變量 Y 的 k 個級別上都是相同的。
  • 二次判別分析提供了另外一種方法。和 LDA 同樣,QDA 假設每一類 Y 的觀測值都來自高斯分佈。而不一樣於 LDA 的是,QDA 假設每一類都有它本身的協方差矩陣。換句話說,預測變量的協方差並不假設爲在響應變量 Y 的 k 個級別上都是相同的。

3 — 重採樣方法:

重採樣是指從原始數據樣本中提取重複樣本的方法。它是一種統計推斷的非參數方法。換言之,重採樣方法不涉及使用通用分佈表來計算近似的 p 的機率值。

重採樣基於實際數據生成一個惟一的抽樣分佈。它使用實驗方法而非分析方法來生成這個惟一的抽樣分佈。它基於研究員所研究的全部可能結果的無偏樣原本產生無偏估計。爲了理解重採樣的概念,你應該瞭解自舉法(也翻譯成拔靴法,譯者注)交叉驗證

  • 自舉法 應用於多種場景,如驗證預測性模型的表現,集成方法,誤差估計和模型方差。它的工做原理是在原始數據中執行有放回的數據抽樣,使用 「未選中」 的數據點做爲測試樣例。咱們能夠屢次執行而且計算均值來評估咱們模型的性能。
  • 另外一方面,交叉驗證用於驗證模型性能,並經過將訓練數據分紅 k 部分來執行。咱們將前 k-1 部分做爲訓練集,「留出」 的部分做爲測試集。用不一樣的方法重複這個步驟 k 次,最後將 k 次分值的均值用做性能評估。

一般,對於線性模型來講,普通最小二乘法是擬合數據時考慮的主要標準。下面三個方法能夠替代它而且可以提供更好的預測準確率和擬合線性模型的可解釋性。

4 — 子集選擇:

此方法肯定被咱們認爲與響應相關的 p 個預測因子的一個子集。而後咱們利用子集特徵的最小二乘來擬合模型。

  • 最優子集選擇: 這裏,咱們爲 p 個預測因子的每一個可能的組合分別擬合一個 OLS 迴歸,而後觀察每一個模型的擬合效果。該算法有兩個階段:(1)擬合包含 k 個預測因子的全部模型,其中 k 爲模型的最大長度。(2)使用交叉驗證預測損失來選擇單個模型。重要的是使用 驗證測試偏差, 並且不能簡單地使用訓練偏差評估模型的擬合狀況,由於 RSS 和 R² 隨變量的增長而單調遞增。最好的方法就是選擇測試集中最高的 R² 和最低的 RSS 來選擇模型並進行交叉驗證。
  • 前向逐步選擇研究的是一個小得多的 p 個預測因子的子集。它從不含預測因子的模型開始,逐步添加預測因子到模型中,直到全部預測因子都包含在模型中。添加預測因子的順序是根據不一樣變量對模型擬合性能提高的程度肯定的,會一直添加變量,直到再沒有預測因子能在交叉驗證偏差中提高模型。
  • 後向逐步選擇一開始就在模型內加入全部的 p 個預測因子,而後每次迭代都移除一個最無用的因子。
  • 混合法遵循前向逐步方法。可是在添加每一個新的變量以後,該方法也可能會移除那些對模型擬合無用的變量。

5 — 特徵縮減:

這種方法適合包含全部 p 個預測因子的模型。然而,估計係數將根據最小二乘的估值向零收斂。這種收縮也稱之爲正則化。它旨在減小方差以防止模型的過擬合。因爲咱們使用不一樣的收斂方法,有些係數將被估計爲零。所以這種方法也能執行變量的選擇,將變量收斂爲零最想見的技術就是嶺迴歸lasso 迴歸。

  • 嶺迴歸很是相似於最小二乘法,只不過它經過最小化一個稍微不一樣的數值來估計係數。嶺迴歸和 OLS 同樣尋求減小 RSS 的係數估計。可是當係數值接近零時,它們會對這種收縮進行懲罰。這個懲罰項具備將係數估計值縮小到趨近於零的效果。不須要數學運算,就能知道嶺迴歸經過最小的列空間方差來收斂係數是頗有用的,好比主成分分析中,嶺迴歸將數據投射 d 方向空間中,而且相較於高方差成分,更多的收縮低方差的成分,這二者等同於最大主成分和最小主成分。
  • 嶺迴歸至少有一個缺點,它須要在最終模型中包含全部的 p 個預測因子,這主要是由於罰項將會令不少預測因子的係數逼近零,但又必定不會等於零。這對於預測準確度來講一般並非什麼問題,但卻令模型的結果更難以解釋。Lasso 則克服了這一缺點,而且可以在 s 足夠小的狀況下使一些預測因子的係數歸零。因爲 s = 1 將致使正規的 OLS 迴歸,當 s 逼近 0 時,係數將收斂到零。所以 Lasso 迴歸一樣是執行變量選擇的一個好方法。

6 — 降維:

降維算法將 p + 1 個係數的問題簡化爲 M + 1 個係數的問題,其中 M < p。算法執行包括計算變量的 M 個不一樣線性組合投影(projection)。而後將這 M 個投影做爲預測因子,並經過最小二乘法來擬合一個線性迴歸模型。兩個處理方法是主成分迴歸(principal component regression)偏最小二乘法(partial least squares)

  • 主成分迴歸(PCR)能夠當作一種從大型變量集合中導出低維特徵集合的方法。數據中的第一主成分(first principal component)是指觀測值沿着這個變量方向的變化最大。換言之,第一主成分是最接近擬合數據的線,總共能夠用 p 個不一樣的主成分擬合。第二主成分是和第一主成分不相關的變量的線性組合,且在該約束下有最大的方差。其主要思想是主成分能在各個互相垂直的方向使用數據的線性組合捕捉到最大的方差。使用這種方法,咱們還能結合相關變量的效應從數據中獲取更多的信息,畢竟在常規的最小二乘法中須要捨棄其中一個相關變量。
  • 上面描述的 PCR 方法須要提取 X 的線性組合,以得到預測因子的最優表徵。因爲 X 的輸出 Y 不能用於幫助決定主成分方向,這些組合(方向)使用無監督方法提取。即,Y 不能監督主成分的提取,從而沒法保證這些方向是預測器的最優表徵,也沒法保證能得到最優預測輸出(雖然一般假定如此)。偏最小二乘法(PLS)是一種監督方法,做爲 PCR 的代替方法。和 PCR 相似,PLS 也是一種降維方法,它首先提取一個新的較小的特徵集合(原始特徵的線性組合),而後經過最小二乘法將原來的模型擬合爲一個新的具備 M 個特徵的線性模型。

7 — 非線性迴歸:

在統計學中,非線性迴歸屬於一種觀測數據使用模型參數的非線性組合的函數(依賴於一個或多個獨立變量)建模的迴歸分析形式。其使用逐次逼近法擬合數據。下方是幾種處理非線性模型的重要技術:

  • 階梯函數(step function),變量爲實數,能夠寫成區間的指示函數的有限線性組合的形式。非正式的解釋是,階梯函數是一種分段常數函數,只有有限的部分。
  • 分段函數(piecewise function)經過多個子函數定義,每個子函數被定義在主函數定義域的肯定的區間上。分段其實是一種表示函數的方式,而不是函數自身的特徵,但經過額外的限定條件,它能夠用於描述函數的本質。例如,一個分段多項式函數是一個在每個子定義上爲多項式的函數,其中每個多項式均可能是不一樣的。

  • 樣條曲線(spline) 是一種用多項式分段定義的特殊函數。在計算機圖形學中,樣條曲線是一種分段多項式參數化曲線。因爲結構的簡單性、評估的簡易和高精度、經過曲線擬合和交互曲線設計以逼近複雜曲線的能力,樣條曲線很經常使用。
  • 廣義加性模型(generalized additive model) 是一種廣義線性模型,其中線性預測器線性依賴於某些預測器變量的未知平滑函數,其主要做用就是推測這些平滑函數。

8 — 基於樹的方法:

基於樹的方法能夠用於迴歸和分類問題,包括將預測因子的空間分層或分割成幾個簡單區域。因爲用於預測器空間的分離規則集合能夠總結爲一個樹,這類方法被稱爲決策樹方法。如下的方法是幾種不一樣的樹,它們能夠組合起來輸出單個一致的預測。

  • Bagging 能減小預測的方差,即經過從原始數據中生成額外的數據(經過組合和重複生成和原始數據大小相同的多段數據)用於訓練。經過增大訓練集沒法提升模型的預測能力,只能減少方差,仔細地調整預測以獲得指望的輸出。
  • Boosting 是一種使用多個不一樣的模型計算輸出,而後使用加權平均方法對結果進行平均的方法。將這些方法的優勢和缺點結合起來,經過改變加權公式,您可使用不一樣的更細緻的調優模型,對更普遍的輸入數據產生良好的預測力。

  • 隨機森林算法(random forest algorithm) 實際上和 bagging 算法很類似,都是對訓練集提取隨機 bootstrap 樣本。不過,除了 bootstrap 樣本之外,還能夠提取特徵的隨機子集來訓練單個樹;而在 bagging 中,須要給每一個樹提供整個特徵集。因爲特徵選擇是隨機的,相比常規的 bagging 算法,每一個樹之間更加獨立,從而一般能得到更好的預測性能(得益於更好的方差—誤差權衡)。因爲每一個樹只須要學習特徵的一個子集,因此計算速度也更快。

9 — 支持向量機:

支持向量機(SVM)是一種經常使用的監督學習分類技術。通俗地說,它用於尋找對兩類點集作出最佳分離的超平面(hyperplane,在 2D 空間中是線,在 3D 空間中是面,在高維空間中是超平面。更正式的說法是,一個超平面是一個 n 維空間的 n-1 維子空間)。而支持向量機是保留最大的間隔的分離超平面,所以本質上,它是一個約束最優化問題,其中支持向量機的間隔在約束下被最大化,從而完美地對數據進行分類(硬間隔分類器)。

"支持"超平面的數據點被稱爲"支持向量"。在上圖中,填充藍色圓和兩個填充方塊就是支持向量。在兩類數據不是線性可分的例子中,數據點將被投射到一個更高維空間中,使得數據變得線性可分。包含多個類別的數據點的問題能夠分解成多個"一對一"(one-versus-one)或"一對剩餘"(one-versus-rest)的二分類問題。

10 — 無監督學習:

目前爲止,咱們都只討論過監督學習技術,其中數據分類都是已知的,且提供給算法的經驗都是實體和其分類的關係。當數據的分類是未知的時候,就須要使用另外一種技術了。它們被稱爲無監督的,由於它們須要本身去發現數據中的模式。聚類(clustring)是無監督學習的一種,其中數據將根據相關性被分爲多個集羣。下方是幾種最經常使用的無監督學習算法:

  • 主成分分析 經過識別具有最大方差和互不相關的特徵之間的線性鏈接,幫助生成數據集的低維表示。該線性降維技術有助於理解無監督學習中的隱變量交互。
  • k-Means 聚類:根據數據到集羣中心的距離將其分紅 k 個不一樣的集羣。
  • 層次聚類:經過建立集羣樹來構建集羣的多級層次結構。

這是一些基本統計技術的基本運用,它們能夠幫助數據科學項目經理和/或執行人員更好地瞭解他們的數據科學團隊的內部運行狀況。事實上,一些數據科學團隊純粹是經過 python 和 R 語言庫運行算法。他們中的大多數甚至不須要考慮基礎的數學。可是,可以理解統計分析的基礎知識能夠爲您的團隊提供更好的方法。洞察最小的部分可使操做和抽象更容易。但願本基礎數據科學統計指南能給您一個很好的理解!

**你能夠從[個人 Github 源代碼]得到全部講座的幻燈片和 RStudio 課程(github.com/khanhnamle1…

若是發現譯文存在錯誤或其餘須要改進的地方,歡迎到 掘金翻譯計劃 對譯文進行修改並 PR,也可得到相應獎勵積分。文章開頭的 本文永久連接 即爲本文在 GitHub 上的 MarkDown 連接。


掘金翻譯計劃 是一個翻譯優質互聯網技術文章的社區,文章來源爲 掘金 上的英文分享文章。內容覆蓋 AndroidiOS前端後端區塊鏈產品設計人工智能等領域,想要查看更多優質譯文請持續關注 掘金翻譯計劃官方微博知乎專欄

相關文章
相關標籤/搜索