Author Archive

集成學習(Ensemble Learning)

一文看懂集成學習

在機器學習中,我們講了很多不同的演算法。那些演算法都是單打獨鬥的英雄。而集成學習就是將這些英雄組成團隊。實現「3 個臭皮匠頂個諸葛亮」的效果。

本文將介紹集成學習的 2 種主要思路:bagging、boosting。

 

什麼是集成學習?

集成學習歸屬於機器學習,他是一種「訓練思路」,並不是某種具體的方法或者演算法。

現實生活中,大家都知道「人多力量大」,「3 個臭皮匠頂個諸葛亮」。而集成學習的核心思路就是「人多力量大」,它並沒有創造出新的演算法,而是把已有的演算法進行結合,從而得到更好的效果。

集成學習會挑選一些簡單的基礎模型進行組裝,組裝這些基礎模型的思路主要有 2 種方法:

  1. bagging(bootstrap aggregating的縮寫,也稱作「套袋法」)
  2. boosting

 

Bagging

bagging核心思路

Bagging 的核心思路是——民主。

Bagging 的思路是所有基礎模型都一致對待,每個基礎模型手裡都只有一票。然後使用民主投票的方式得到最終的結果。

大部分情況下,經過 bagging 得到的結果方差(variance)更小

bagging的具體過程

具體過程:

  1. 從原始樣本集中抽取訓練集。每輪從原始樣本集中使用Bootstraping的方法抽取n個訓練樣本(在訓練集中,有些樣本可能被多次抽取到,而有些樣本可能一次都沒有被抽中)。共進行k輪抽取,得到k個訓練集。(k個訓練集之間是相互獨立的)
  2. 每次使用一個訓練集得到一個模型,k個訓練集共得到k個模型。(註:這裡並沒有具體的分類演算法或回歸方法,我們可以根據具體問題採用不同的分類或回歸方法,如決策樹、感知器等)
  3. 對分類問題:將上步得到的k個模型採用投票的方式得到分類結果;對回歸問題,計算上述模型的均值作為最後的結果。(所有模型的重要性相同)

舉例:

在 bagging 的方法中,最廣為熟知的就是隨機森林了:bagging + 決策樹 = 隨機森林

一文看懂決策樹(3個步驟+3種典型演算法+10個優缺點)

一文看懂隨機森林(4個步驟+4種方式評測+10個優缺點)

 

Boosting

boosting核心思路

Boosting 的核心思路是——挑選精英。

Boosting 和 bagging 最本質的差別在於他對基礎模型不是一致對待的,而是經過不停的考驗和篩選來挑選出「精英」,然後給精英更多的投票權,表現不好的基礎模型則給較少的投票權,然後綜合所有人的投票得到最終結果。

大部分情況下,經過 boosting 得到的結果偏差(bias)更小

boosting的具體過程

具體過程:

  1. 通過加法模型將基礎模型進行線性的組合。
  2. 每一輪訓練都提升那些錯誤率小的基礎模型權重,同時減小錯誤率高的模型權重。
  3. 在每一輪改變訓練數據的權值或概率分布,通過提高那些在前一輪被弱分類器分錯樣例的權值,減小前一輪分對樣例的權值,來使得分類器對誤分的數據有較好的效果。

舉例:

在 boosting 的方法中,比較主流的有 Adaboost 和 Gradient boosting 。

一文看懂 Adaboost 以及它的優缺點

 

Bagging 和 Boosting 的4 點差別

Bagging和Boosting的4點差別

樣本選擇上:

Bagging:訓練集是在原始集中有放回選取的,從原始集中選出的各輪訓練集之間是獨立的。

Boosting:每一輪的訓練集不變,只是訓練集中每個樣例在分類器中的權重發生變化。而權值是根據上一輪的分類結果進行調整。

樣例權重:

Bagging:使用均勻取樣,每個樣例的權重相等

Boosting:根據錯誤率不斷調整樣例的權值,錯誤率越大則權重越大。

預測函數:

Bagging:所有預測函數的權重相等。

Boosting:每個弱分類器都有相應的權重,對於分類誤差小的分類器會有更大的權重。

並行計算:

Bagging:各個預測函數可以並行生成

Boosting:各個預測函數只能順序生成,因為後一個模型參數需要前一輪模型的結果。

差別部分內容轉自《Bagging和Boosting 概念及區別

 

百度百科和維基百科

百度百科版本

集成學習是使用一系列學習器進行學習,並使用某種規則把各個學習結果進行整合從而獲得比單個學習器更好的學習效果的一種機器學習方法。一般情況下,集成學習中的多個學習器都是同質的”弱學習器”。

查看詳情

維基百科版本

在統計學和機器學習中,集合方法使用多種學習演算法來獲得比單獨從任何組成學習演算法獲得的更好的預測性能。與統計力學中的統計集合(通常是無限的)不同,機器學習集合僅由一組具體的有限替代模型組成,但通常允許在這些替代模型中存在更靈活的結構。

查看詳情

【實踐】5個集成學習最常用的方法

支持向量機 – Support Vector Machine | SVM

什麼是支持向量機?

支持向量機可能是最流行和最受關注的機器學習演算法之一。

超平面是分割輸入變數空間的線。在SVM中,選擇超平面以最佳地將輸入變數空間中的點與它們的類(0級或1級)分開。在二維中,您可以將其視為一條線,並假設我們的所有輸入點都可以被這條線完全分開。SVM學習演算法找到導致超平面最好地分離類的係數。

支持向量機
支持向量機

超平面與最近數據點之間的距離稱為邊距。可以將兩個類分開的最佳或最佳超平面是具有最大邊距的線。只有這些點與定義超平面和分類器的構造有關。這些點稱為支持向量。它們支持或定義超平面。實際上,優化演算法用於找到使裕度最大化的係數的值。

SVM可能是最強大的開箱即用分類器之一,值得嘗試使用您的數據集。

 

支持向量機的基礎概念可以通過一個簡單的例子來解釋。讓我們想像兩個類別:紅色和藍色,我們的數據有兩個特徵:x 和 y。我們想要一個分類器,給定一對(x,y)坐標,輸出僅限於紅色或藍色。我們將已標記的訓練數據列在下圖中:

支持向量機會接受這些數據點,並輸出一個超平面(在二維的圖中,就是一條線)以將兩類分割開來。這條線就是判定邊界:將紅色和藍色分割開。

但是,最好的超平面是什麼樣的?對於 SVM 來說,它是最大化兩個類別邊距的那種方式,換句話說:超平面(在本例中是一條線)對每個類別最近的元素距離最遠。

這裡有一個視頻(視頻地址)解釋可以告訴你最佳的超平面是如何找到的。

 

SVM的優缺點

優點

  • 可以解決高維問題,即大型特徵空間;
  • 解決小樣本下機器學習問題;
  • 能夠處理非線性特徵的相互作用;
  • 無局部極小值問題;(相對於神經網路等演算法)
  • 無需依賴整個數據;
  • 泛化能力比較強;

缺點

  • 當觀測樣本很多時,效率並不是很高;
  • 對非線性問題沒有通用解決方案,有時候很難找到一個合適的核函數;
  • 對於核函數的高維映射解釋力不強,尤其是徑向基函數;
  • 常規SVM只支持二分類;
  • 對缺失數據敏感;

 

百度百科版本

支持向量機(Support Vector Machine,SVM)是Corinna Cortes和Vapnik等於1995年首先提出的,它在解決小樣本、非線性及高維模式識別中表現出許多特有的優勢,並能夠推廣應用到函數擬合等其他機器學習問題中。

在機器學習中,支持向量機(SVM,還支持矢量網路)是與相關的學習演算法有關的監督學習模型,可以分析數據,識別模式,用於分類和回歸分析。

查看詳情

 

維基百科版本

在機器學習中,支持向量機(SVM)是具有相關學習演算法的監督學習模型,其分析用於分類和回歸分析的數據。給定一組訓練示例,每個示例標記為屬於兩個類別中的一個或另一個,SVM訓練演算法構建一個模型,將新示例分配給一個類別或另一個類別,使其成為非概率二元線性分類器。SVM模型是將示例表示為空間中的點,映射使得單獨類別的示例除以儘可能寬的明確間隙。然後將新的示例映射到同一空間,並根據它們落在哪個邊緣預測屬於一個類別。

除了執行線性分類之外,SVM還可以使用所謂的內核技巧有效地執行非線性分類,將其輸入隱式映射到高維特徵空間。

查看詳情

 

決策樹 – Decision tree

一文看懂決策樹

決策樹是一種邏輯簡單的機器學習演算法,它是一種樹形結構,所以叫決策樹。

本文將介紹決策樹的基本概念、決策樹學習的 3 個步驟、3 種典型的決策樹演算法、決策樹的 10 個優缺點。

 

什麼是決策樹?

決策樹是一種解決分類問題的演算法,想要了解分類問題和回歸問題,可以看這裡《監督學習的2個任務:回歸、分類》。

決策樹演算法採用樹形結構,使用層層推理來實現最終的分類。決策樹由下面幾種元素構成:

  • 根節點:包含樣本的全集
  • 內部節點:對應特徵屬性測試
  • 葉節點:代表決策的結果

決策樹的結構

預測時,在樹的內部節點處用某一屬性值進行判斷,根據判斷結果決定進入哪個分支節點,直到到達葉節點處,得到分類結果。

這是一種基於 if-then-else 規則的有監督學習演算法,決策樹的這些規則通過訓練得到,而不是人工制定的。

決策樹是最簡單的機器學習演算法,它易於實現,可解釋性強,完全符合人類的直觀思維,有著廣泛的應用。

 

舉個栗子:

上面的說法過於抽象,下面來看一個實際的例子。銀行要用機器學習演算法來確定是否給客戶發放貸款,為此需要考察客戶的年收入,是否有房產這兩個指標。領導安排你實現這個演算法,你想到了最簡單的線性模型,很快就完成了這個任務。

首先判斷客戶的年收入指標。如果大於20萬,可以貸款;否則繼續判斷。然後判斷客戶是否有房產。如果有房產,可以貸款;否則不能貸款。

這個例子的決策樹如下圖所示:

決策樹解決是否貸款的案例

 

決策樹學習的 3 個步驟

決策樹學習的 3 個步驟

特徵選擇

特徵選擇決定了使用哪些特徵來做判斷。在訓練數據集中,每個樣本的屬性可能有很多個,不同屬性的作用有大有小。因而特徵選擇的作用就是篩選出跟分類結果相關性較高的特徵,也就是分類能力較強的特徵。

在特徵選擇中通常使用的準則是:信息增益。

決策樹生成

選擇好特徵後,就從根節點觸發,對節點計算所有特徵的信息增益,選擇信息增益最大的特徵作為節點特徵,根據該特徵的不同取值建立子節點;對每個子節點使用相同的方式生成新的子節點,直到信息增益很小或者沒有特徵可以選擇為止。

決策樹剪枝

剪枝的主要目的是對抗「過擬合」,通過主動去掉部分分支來降低過擬合的風險。

 

3 種典型的決策樹演算法

3 種典型的決策樹演算法

ID3 演算法

ID3 是最早提出的決策樹演算法,他就是利用信息增益來選擇特徵的。

C4.5 演算法

他是 ID3 的改進版,他不是直接使用信息增益,而是引入「信息增益比」指標作為特徵的選擇依據。

CART(Classification and Regression Tree)

這種演算法即可以用於分類,也可以用於回歸問題。CART 演算法使用了基尼係數取代了信息熵模型。

 

決策樹的優缺點

優點

  • 決策樹易於理解和解釋,可以可視化分析,容易提取出規則;
  • 可以同時處理標稱型和數值型數據;
  • 比較適合處理有缺失屬性的樣本;
  • 能夠處理不相關的特徵;
  • 測試數據集時,運行速度比較快;
  • 在相對短的時間內能夠對大型數據源做出可行且效果良好的結果。

缺點

  • 容易發生過擬合(隨機森林可以很大程度上減少過擬合);
  • 容易忽略數據集中屬性的相互關聯;
  • 對於那些各類別樣本數量不一致的數據,在決策樹中,進行屬性劃分時,不同的判定準則會帶來不同的屬性選擇傾向;信息增益準則對可取數目較多的屬性有所偏好(典型代表ID3演算法),而增益率準則(CART)則對可取數目較少的屬性有所偏好,但CART進行屬性劃分時候不再簡單地直接利用增益率盡心劃分,而是採用一種啟發式規則)(只要是使用了信息增益,都有這個缺點,如RF)。
  • ID3演算法計算信息增益時結果偏向數值比較多的特徵。

 

百度百科版本

百度百科版本

決策樹演算法是一種逼近離散函數值的方法。它是一種典型的分類方法,首先對數據進行處理,利用歸納演算法生成可讀的規則和決策樹,然後使用決策對新數據進行分析。本質上決策樹是通過一系列規則對數據進行分類的過程。

查看詳情

維基百科版本

決策樹學習使用決策樹(作為預測模型)從關於項目(在分支中表示)的觀察到關於項目的目標值(在葉子中表示)的結論。它是統計,數據挖掘和機器學習中使用的預測建模方法之一。目標變數可以採用一組離散值的樹模型稱為分類樹 ; 在這些樹結構中,葉子代表類標籤,分支代表連詞導致這些類標籤的功能。目標變數可以採用連續值(通常是實數)的決策樹稱為回歸樹。

查看詳情

實踐類文章(1)

邏輯回歸 – Logistic regression

一文看懂邏輯回歸

本文將通俗易懂的介紹邏輯回歸的基本概念、優缺點和實際應用的案例。同時會跟線性回歸做一些比較,讓大家能夠有效的區分 2 種不同的演算法。

 

什麼是邏輯回歸?

邏輯回歸在機器學習中的位置

線性回歸的位置如上圖所示,它屬於機器學習 – 監督學習 – 分類 – 邏輯回歸。

擴展閱讀:

一文看懂機器學習!(3種學習方法+7個實操步驟+15種常見演算法)

一文看懂監督學習(基本概念+4步流程+9個典型演算法)

邏輯回歸(Logistic Regression)主要解決二分類問題,用來表示某件事情發生的可能性

什麼是邏輯回歸

比如:

  • 一封郵件是垃圾郵件的可能性(是、不是)
  • 你購買一件商品的可能性(買、不買)
  • 廣告被點擊的可能性(點、不點)

 

邏輯回歸的優缺點

優點:

  • 實現簡單,廣泛的應用於工業問題上;
  • 分類時計算量非常小,速度很快,存儲資源低;
  • 便利的觀測樣本概率分數;
  • 對邏輯回歸而言,多重共線性並不是問題,它可以結合L2正則化來解決該問題;
  • 計算代價不高,易於理解和實現;

缺點:

  • 當特徵空間很大時,邏輯回歸的性能不是很好;
  • 容易欠擬合,一般準確度不太高
  • 不能很好地處理大量多類特徵或變數;
  • 只能處理兩分類問題(在此基礎上衍生出來的softmax可以用於多分類),且必須線性可分
  • 對於非線性特徵,需要進行轉換;

 

邏輯回歸 VS 線性回歸

線性回歸和邏輯回歸是 2 種經典的演算法。經常被拿來做比較,下面整理了一些兩者的區別:

線性回歸和邏輯回歸的區別

  1. 線性回歸只能用於回歸問題,邏輯回歸雖然名字叫回歸,但是更多用於分類問題(關於回歸和分類的區別可以看看這篇文章《一文看懂監督學習(基本概念+4步流程+9個典型演算法)》)
  2. 線性回歸要求因變數是連續性數值變數,而邏輯回歸要求因變數是離散的變數
  3. 線性回歸要求自變數和因變數呈線性關係,而邏輯回歸不要求自變數和因變數呈線性關係
  4. 線性回歸可以直觀的表達自變數和因變數之間的關係,邏輯回歸則無法表達變數之間的關係

註:

自變數:主動操作的變數,可以看做「因變數」的原因

因變數:因為「自變數」的變化而變化,可以看做「自變數」的結果。也是我們想要預測的結果。

自變數、因變數的解釋

 

美團的應用案例

美團會把邏輯回歸應用到業務中解決一些實際問題。這裡以預測用戶對品類的購買偏好為例,該問題可以轉換為預測用戶在未來某個時間段是否會購買某個品類,如果把會購買標記為1,不會購買標記為0,就轉換為一個二分類問題。我們用到的特徵包括用戶在美團的瀏覽,購買等歷史信息,見下表:

美團應用邏輯回歸的案例

其中提取的特徵的時間跨度為30天,標籤為2天。生成的訓練數據大約在7000萬量級(美團一個月有過行為的用戶),我們人工把相似的小品類聚合起來,最後有18個較為典型的品類集合。如果用戶在給定的時間內購買某一品類集合,就作為正例。有了訓練數據後,使用Spark版的LR演算法對每個品類訓練一個二分類模型,迭代次數設為100次的話模型訓練需要40分鐘左右,平均每個模型2分鐘,測試集上的AUC也大多在0.8以上。訓練好的模型會保存下來,用於預測在各個品類上的購買概率。預測的結果則會用於推薦等場景。

由於不同品類之間正負例分布不同,有些品類正負例分布很不均衡,我們還嘗試了不同的採樣方法,最終目標是提高下單率等線上指標。經過一些參數調優,品類偏好特徵為推薦和排序帶來了超過1%的下單率提升。

此外,由於LR模型的簡單高效,易於實現,可以為後續模型優化提供一個不錯的baseline,我們在排序等服務中也使用了LR模型。

 

百度百科+維基百科

百度百科版本

邏輯回歸是一種廣義的線性回歸分析模型,常用於數據挖掘,疾病自動診斷,經濟預測等領域。例如,探討引發疾病的危險因素,並根據危險因素預測疾病發生的概率等。

以胃癌病情分析為例,選擇兩組人群,一組是胃癌組,一組是非胃癌組,兩組人群必定具有不同的體征與生活方式等。因此因變數就為是否胃癌,值為「是」或「否」,自變數就可以包括很多了,如年齡、性別、飲食習慣、幽門螺桿菌感染等。自變數既可以是連續的,也可以是分類的。然後通過logistic回歸分析,可以得到自變數的權重,從而可以大致了解到底哪些因素是胃癌的危險因素。同時根據該權值可以根據危險因素預測一個人患癌症的可能性。

查看詳情

 

維基百科版本

在統計學中,邏輯模型是一種廣泛使用的統計模型,在其基本形式中,使用邏輯函數來模擬二進位 因變數 ; 存在更複雜的擴展。在回歸分析中,邏輯回歸是估計邏輯模型的參數; 它是二項式回歸的一種形式。

在數學上,二元邏輯模型具有一個具有兩個可能值的因變數,例如通過/失敗,贏/輸,活/死或健康/生病; 這些由指示符變數表示,其中兩個值標記為「0」和「1」。在邏輯模型中,對數比值(在對數的的可能性),用於標記為「1」的值是一個線性組合的一個或多個自變數(「預測」); 自變數可以是二進位變數(兩個類,由指示符變數編碼)或連續變數(任何實際值)。

查看詳情

樸素貝葉斯 – Naive Bayes classifier | NBC

什麼是樸素貝葉斯?

樸素貝葉斯是一種簡單但令人驚訝的強大的預測建模演算法。

該模型由兩種類型的概率組成,可以直接根據您的訓練數據計算:

  1. 每個班級的概率
  2. 給出每個x值的每個類的條件概率。

一旦計算,概率模型可用於使用貝葉斯定理對新數據進行預測。當您的數據是實值時,通常假設高斯分布(鐘形曲線),以便您可以輕鬆估計這些概率。

樸素貝葉斯定理

樸素貝葉斯被稱為樸素,因為它假設每個輸入變數是獨立的。這是一個強有力的假設,對於實際數據是不現實的,然而,該技術對於大範圍的複雜問題非常有效。

 

樸素貝葉斯的優缺點

優點:

  • 樸素貝葉斯模型發源於古典數學理論,有著堅實的數學基礎,以及穩定的分類效率。
  • 對大數量訓練和查詢時具有較高的速度。即使使用超大規模的訓練集,針對每個項目通常也只會有相對較少的特徵數,並且對項目的訓練和分類也僅僅是特徵概率的數學運算而已;
  • 對小規模的數據表現很好,能個處理多分類任務,適合增量式訓練(即可以實時的對新增的樣本進行訓練);
  • 對缺失數據不太敏感,演算法也比較簡單,常用於文本分類;
  • 樸素貝葉斯對結果解釋容易理解。

 

缺點:

  • 需要計算先驗概率;
  • 分類決策存在錯誤率;
  • 對輸入數據的表達形式很敏感;
  • 由於使用了樣本屬性獨立性的假設,所以如果樣本屬性有關聯時其效果不好。

 

 

百度百科版本

樸素貝葉斯法是基於貝葉斯定理與特徵條件獨立假設的分類方法 。最為廣泛的兩種分類模型是決策樹模型(Decision Tree Model)和樸素貝葉斯模型(Naive Bayesian Model,NBM)。

和決策樹模型相比,樸素貝葉斯分類器(Naive Bayes Classifier,或 NBC)發源於古典數學理論,有著堅實的數學基礎,以及穩定的分類效率。同時,NBC模型所需估計的參數很少,對缺失數據不太敏感,演算法也比較簡單。理論上,NBC模型與其他分類方法相比具有最小的誤差率。但是實際上並非總是如此,這是因為NBC模型假設屬性之間相互獨立,這個假設在實際應用中往往是不成立的,這給NBC模型的正確分類帶來了一定影響。

查看詳情

 

維基百科版本

在機器學習中,樸素貝葉斯分類器是一系列簡單的「 概率分類器 」,它基於貝葉斯定理應用特徵之間的強(天真)獨立假設。

自20世紀50年代以來,樸素貝葉斯就被廣泛研究過。它在20世紀60年代早期以不同的名稱引入文本檢索社區,並且仍然是文本分類的流行(基線)方法,即將文檔判斷為屬於一個類別或另一個類別的問題(例如垃圾郵件或合法,體育或政治等)以詞頻為特徵。通過適當的預處理,它在這個領域具有更高級的方法,包括支持向量機,具有競爭力。它也適用於自動醫療診斷。

樸素貝葉斯分類器具有高度可擴展性,在學習問題中需要多個變數(特徵/預測器)數量的線性參數。最大似然的訓練可以通過評估來完成閉合形式的表達,這需要線性時間,而不是由昂貴的迭代逼近作為用於許多其它類型的分類器。

在統計學和計算機科學文獻中,樸素的貝葉斯模型以各種名稱而聞名,包括簡單的貝葉斯和獨立貝葉斯。所有這些名稱都引用了貝葉斯定理在分類器決策規則中的使用,但樸素貝葉斯(必然)不是貝葉斯方法。

查看詳情

 

線性回歸 – linear regression

一文看懂線性回歸

線性回歸是很基礎的機器學習演算法,本文將通俗易懂的介紹線性回歸的基本概念,優缺點,8 種方法的速度評測,還有和邏輯回歸的比較。

 

什麼是線性回歸?

線性回歸的位置

線性回歸的位置如上圖所示,它屬於機器學習 – 監督學習 – 回歸 – 線性回歸。

擴展閱讀:

一文看懂機器學習!(3種學習方法+7個實操步驟+15種常見演算法)

一文看懂監督學習(基本概念+4步流程+9個典型演算法)

 

什麼是回歸?

回歸的目的是為了預測,比如預測明天的天氣溫度,預測股票的走勢…

回歸之所以能預測是因為他通過歷史數據,摸透了「套路」,然後通過這個套路來預測未來的結果。

回歸的底層邏輯

 

什麼是線性?

「越…,越…」符合這種說法的就可能是線性個關係:

「房子」越大,「租金」就越高

「漢堡」買的越多,花的「錢」就越多

杯子里的「水」越多,「重量」就越大

……

但是並非所有「越…,越…」都是線性的,比如「充電越久,電量越高」,他就類似下面的非線性曲線:

充電時間和電量是非線性關係

線性關係不僅僅只能存在 2 個變數(二維平面)。3 個變數時(三維空間),線性關係就是一個平面,4 個變數時(四維空間),線性關係就是一個體。以此類推…

線性關係可以是多個變數

 

什麼是線性回歸?

線性回歸本來是是統計學裡的概念,現在經常被用在機器學習中。

如果 2 個或者多個變數之間存在「線性關係」,那麼我們就可以通過歷史數據,摸清變數之間的「套路」,建立一個有效的模型,來預測未來的變數結果。

通俗解釋線性回歸

 

線性回歸的優缺點

線性回歸的優缺點

優點:

  1. 建模速度快,不需要很複雜的計算,在數據量大的情況下依然運行速度很快。
  2. 可以根據係數給出每個變數的理解和解釋

缺點:不能很好地擬合非線性數據。所以需要先判斷變數之間是否是線性關係。

為什麼在深度學習大殺四方的今天還使用線性回歸呢?

一方面,線性回歸所能夠模擬的關係其實遠不止線性關係。線性回歸中的「線性」指的是係數的線性,而通過對特徵的非線性變換,以及廣義線性模型的推廣,輸出和特徵之間的函數關係可以是高度非線性的。另一方面,也是更為重要的一點,線性模型的易解釋性使得它在物理學、經濟學、商學等領域中佔據了難以取代的地位。

 

8 種Python線性回歸的方法的速度評測

  1. Scipy.polyfit( ) or numpy.polyfit( )
  2. Stats.linregress( )
  3. Optimize.curve_fit( )
  4. numpy.linalg.lstsq
  5. Statsmodels.OLS ( )
  6. 簡單的乘法求矩陣的逆
  7. 首先計算x的Moore-Penrose廣義偽逆矩陣,然後與y取點積
  8. sklearn.linear_model.LinearRegression( )

8 種線性回歸方法速度評測結果

結果:令人驚訝的是,與廣泛被使用的scikit-learnlinear_model相比,簡單矩陣的逆求解的方案反而更加快速。

詳細評測可以查看原文《Data science with Python: 8 ways to do linear regression and measure their speed

 

線性回歸 VS 邏輯回歸

線性回歸和邏輯回歸是 2 種經典的演算法。經常被拿來做比較,下面整理了一些兩者的區別:

線性回歸和邏輯回歸的區別

  1. 線性回歸只能用於回歸問題,邏輯回歸雖然名字叫回歸,但是更多用於分類問題(關於回歸和分類的區別可以看看這篇文章《一文看懂監督學習(基本概念+4步流程+9個典型演算法)》)
  2. 線性回歸要求因變數是連續性數值變數,而邏輯回歸要求因變數是離散的變數
  3. 線性回歸要求自變數和因變數呈線性關係,而邏輯回歸不要求自變數和因變數呈線性關係
  4. 線性回歸可以直觀的表達自變數和因變數之間的關係,邏輯回歸則無法表達變數之間的關係

註:

自變數:主動操作的變數,可以看做「因變數」的原因

因變數:因為「自變數」的變化而變化,可以看做「自變數」的結果。也是我們想要預測的結果。

 

百度百科+維基百科

百度百科版本

線性回歸是利用數理統計中回歸分析,來確定兩種或兩種以上變數間相互依賴的定量關係的一種統計分析方法,運用十分廣泛。其表達形式為y = w’x+e,e為誤差服從均值為0的正態分布。

回歸分析中,只包括一個自變數和一個因變數,且二者的關係可用一條直線近似表示,這種回歸分析稱為一元線性回歸分析。如果回歸分析中包括兩個或兩個以上的自變數,且因變數和自變數之間是線性關係,則稱為多元線性回歸分析。

查看詳情

維基百科版本

在統計學中,線性回歸是一種線性方法,用於建模標量響應(或因變數)與一個或多個解釋變數(或獨立變數)之間的關係。一個解釋變數的情況稱為簡單線性回歸。對於多個解釋變數,該過程稱為多元線性回歸。該術語不同於多元線性回歸,其中預測了多個相關因變數,而不是單個標量變數。

在線性回歸中,使用線性預測函數對關係進行建模,其中未知模型參數是根據數據估計的。這種模型稱為線性模型。最常見的是,給定解釋變數(或預測變數)的值的響應的條件均值被假定為這些值的仿射函數 ; 不太常見的是,使用條件中值或一些其他分位數。與所有形式的回歸分析一樣,線性回歸側重於條件概率分布給出預測變數值的響應,而不是所有這些變數的聯合概率分布,這是多變數分析的領域。

查看詳情

 

用Python的Scikit-Learn庫實現線性回歸

機器學習演算法_線性回歸

通俗理解線性回歸(一)

TPU(Tensor Processing Unit)

百度百科版本

TPU(Tensor Processing Unit)即張量處理單元,是一款為機器學習而定製的晶元,經過了專門深度機器學習方面的訓練,它有更高效能(每瓦計算能力)。

查看詳情

 

維基百科版本

TPU是AI加速器 應用特定的集成電路由顯影(ASIC)谷歌用於特異性神經網路 機器學習。

查看詳情

 

擴展鏈接

ASIC(Application Specific Integrated Circuit)

百度百科版版本

目前,在集成電路界ASIC被認為是一種為專門目的而設計的集成電路。是指應特定用戶要求和特定電子系統的需要而設計、製造的集成電路。ASIC的特點是面向特定用戶的需求,ASIC在批量生產時與通用集成電路相比具有體積更小、功耗更低、可靠性提高、性能提高、保密性增強、成本降低等優點。

查看詳情

 

維基百科版本

應用專用集成電路(ASIC)是集成電路的定製用於特定用途,而不是旨在用於一般用途(IC)。例如,設計用於在數字錄音機或高效 比特幣挖掘機中運行的晶元是ASIC。專用標準產品(ASSP)介於ASIC和7400系列或4000系列等行業標準集成電路之間。

隨著功能尺寸的縮小和設計工具多年來的不斷改進,ASIC中最大的複雜性(以及功能)已經從5,000個邏輯門增加到超過1億個。現代的ASIC通常包括整個微處理器,存儲器塊,包括ROM,RAM,EEPROM,快閃記憶體等大型構造塊。這種ASIC通常被稱為SoC(片上系統)。數字ASIC的設計者通常使用硬體描述語言(HDL)(例如Verilog或VHDL)來描述ASIC的功能。

現場可編程門陣列(FPGA)是現代技術,用於從標準部件構建麵包板或原型; 可編程邏輯模塊和可編程互連允許在許多不同的應用中使用相同的FPGA。對於較小的設計或較低的產量,FPGA可能比ASIC設計更具成本效益,即使在生產中也是如此。ASIC 的非經常性工程(NRE)成本可能達到數百萬美元。因此,設備製造商通常更喜歡用於原型設計的 FPGA 和具有低產量的設備以及用於非常大的生產量的 ASIC,其中NRE成本可以在許多設備上攤銷。

查看詳情

 

FPGA(Field-Programmable Gate Array)

百度百科版本

FPGA(Field-Programmable Gate Array),即現場可編程門陣列,它是在PAL、GAL、CPLD等可編程器件的基礎上進一步發展的產物。它是作為專用集成電路(ASIC)領域中的一種半定製電路而出現的,既解決了定製電路的不足,又克服了原有可編程器件門電路數有限的缺點。

查看詳情

 

維基百科版本

現場可編程門陣列是集成電路設計成由客戶或製造後設計者被配置-因此,術語「 現場可編程 」。FPGA配置通常使用硬體描述語言(HDL)來指定,類似於用於專用集成電路(ASIC)的語言。電路圖以前用於指定配置,但由於電子設計自動化工具的出現,這種情況越來越少見。

Xilinx的Spartan FPGA包含一系列可編程 邏輯塊,以及允許塊「連接在一起」的可重新配置互連層次,就像許多可以在不同配置中相互連接的邏輯門一樣。邏輯塊可以配置為執行複雜的組合功能,或僅僅是簡單的邏輯門,如AND和XOR。在大多數FPGA中,邏輯塊還包括存儲器元件,其可以是簡單的觸發器或更完整的存儲器塊。許多FPGA可以重新編程以實現不同的邏輯功能,允許在計算機軟體中執行靈活的可重新配置計算。

查看詳情