從原理到應(yīng)用:簡(jiǎn)述Logistic回歸算法
Logistic 回歸是二分類任務(wù)中最常用的機(jī)器學(xué)習(xí)算法之一。它的設(shè)計(jì)思路簡(jiǎn)單,易于實(shí)現(xiàn),可以用作性能基準(zhǔn),且在很多任務(wù)中都表現(xiàn)很好。
因此,每個(gè)接觸機(jī)器學(xué)習(xí)的人都應(yīng)該熟悉其原理。Logistic 回歸的基礎(chǔ)原理在神經(jīng)網(wǎng)絡(luò)中也可以用到。在這篇文章中,你將明白什么是 Logistic 回歸、它是如何工作的、有哪些優(yōu)缺點(diǎn)等等。
什么是 Logistic 回歸?
和很多其他機(jī)器學(xué)習(xí)算法一樣,邏輯回歸也是從統(tǒng)計(jì)學(xué)中借鑒來的,盡管名字里有回歸倆字兒,但它不是一個(gè)需要預(yù)測(cè)連續(xù)結(jié)果的回歸算法。
與之相反,Logistic 回歸是二分類任務(wù)的首選方法。它輸出一個(gè) 0 到 1 之間的離散二值結(jié)果。簡(jiǎn)單來說,它的結(jié)果不是 1 就是 0。
癌癥檢測(cè)算法可看做是 Logistic 回歸問題的一個(gè)簡(jiǎn)單例子,這種算法輸入病理圖片并且應(yīng)該辨別患者是患有癌癥(1)或沒有癌癥(0)。
它是如何工作的?
Logistic 回歸通過使用其固有的 logistic 函數(shù)估計(jì)概率,來衡量因變量(我們想要預(yù)測(cè)的標(biāo)簽)與一個(gè)或多個(gè)自變量(特征)之間的關(guān)系。
然后這些概率必須二值化才能真地進(jìn)行預(yù)測(cè)。這就是 logistic 函數(shù)的任務(wù),也稱為 sigmoid 函數(shù)。Sigmoid 函數(shù)是一個(gè) S 形曲線,它可以將任意實(shí)數(shù)值映射到介于 0 和 1 之間的值,但并不會(huì)取到 0/1。然后使用閾值分類器將 0 和 1 之間的值轉(zhuǎn)換為 0 或 1。
下面的圖片說明了 logistic 回歸得出預(yù)測(cè)所需的所有步驟。
下面是 logistic 函數(shù)(sigmoid 函數(shù))的圖形表示:
我們希望隨機(jī)數(shù)據(jù)點(diǎn)被正確分類的概率最大化,這就是最大似然估計(jì)。最大似然估計(jì)是統(tǒng)計(jì)模型中估計(jì)參數(shù)的通用方法。
你可以使用不同的方法(如優(yōu)化算法)來最大化概率。牛頓法也是其中一種,可用于查找許多不同函數(shù)的最大值(或最小值),包括似然函數(shù)。也可以用梯度下降法代替牛頓法。
Logistic 回歸 vs 線性回歸
你可能會(huì)好奇:logistic 回歸和線性回歸之間的區(qū)別是什么。邏輯回歸得到一個(gè)離散的結(jié)果,但線性回歸得到一個(gè)連續(xù)的結(jié)果。預(yù)測(cè)房?jī)r(jià)的模型算是返回連續(xù)結(jié)果的一個(gè)好例子。該值根據(jù)房子大小或位置等參數(shù)的變化而變化。離散的結(jié)果總是一件事(你有癌癥)或另一個(gè)(你沒有癌癥)。
優(yōu)缺點(diǎn)
Logistic 回歸是一種被人們廣泛使用的算法,因?yàn)樗浅8咝?,不需要太大的?jì)算量,又通俗易懂,不需要縮放輸入特征,不需要任何調(diào)整,且很容易調(diào)整,并且輸出校準(zhǔn)好的預(yù)測(cè)概率。
與線性回歸一樣,當(dāng)你去掉與輸出變量無關(guān)的屬性以及相似度高的屬性時(shí),logistic 回歸效果確實(shí)會(huì)更好。因此特征處理在 Logistic 和線性回歸的性能方面起著重要的作用。
Logistic 回歸的另一個(gè)優(yōu)點(diǎn)是它非常容易實(shí)現(xiàn),且訓(xùn)練起來很高效。在研究中,我通常以 Logistic 回歸模型作為基準(zhǔn),再嘗試使用更復(fù)雜的算法。
由于其簡(jiǎn)單且可快速實(shí)現(xiàn)的原因,Logistic 回歸也是一個(gè)很好的基準(zhǔn),你可以用它來衡量其他更復(fù)雜的算法的性能。
它的一個(gè)缺點(diǎn)就是我們不能用 logistic 回歸來解決非線性問題,因?yàn)樗臎Q策面是線性的。我們來看看下面的例子,兩個(gè)類各有倆實(shí)例。
顯然,我們不可能在不出錯(cuò)的情況下劃出一條直線來區(qū)分這兩個(gè)類。使用簡(jiǎn)單的決策樹是個(gè)更好的選擇。
Logistic 回歸并非最強(qiáng)大的算法之一,它可以很容易地被更為復(fù)雜的算法所超越。另一個(gè)缺點(diǎn)是它高度依賴正確的數(shù)據(jù)表示。
這意味著邏輯回歸在你已經(jīng)確定了所有重要的自變量之前還不會(huì)成為一個(gè)有用的工具。由于其結(jié)果是離散的,Logistic 回歸只能預(yù)測(cè)分類結(jié)果。它同時(shí)也以其容易過擬合而聞名。
何時(shí)適用
就像我已經(jīng)提到的那樣,Logistic 回歸通過線性邊界將你的輸入分成兩個(gè)「區(qū)域」,每個(gè)類別劃分一個(gè)區(qū)域。因此,你的數(shù)據(jù)應(yīng)當(dāng)是線性可分的,如下圖所示的數(shù)據(jù)點(diǎn):
換句話說:當(dāng) Y 變量只有兩個(gè)值時(shí)(例如,當(dāng)你面臨分類問題時(shí)),您應(yīng)該考慮使用邏輯回歸。注意,你也可以將 Logistic 回歸用于多類別分類,下一節(jié)中將會(huì)討論。
多分類任務(wù)
現(xiàn)在有很多多分類算法,如隨機(jī)森林分類器或樸素貝葉斯分類器。有些算法雖然看起來不能用于多分類,如 Logistic 回歸,但通過一些技巧,也可以用于多分類任務(wù)。
我們從包含手寫體 0 到 9 的數(shù)字圖像的 MNIST 數(shù)據(jù)集入手,討論這些最常見的「技巧」。這是一個(gè)多分類任務(wù),我們的算法應(yīng)該告訴我們圖像對(duì)應(yīng)哪個(gè)數(shù)字。
1. 一對(duì)多(OVA)
按照這個(gè)策略,你可以訓(xùn)練 10 個(gè)二分類器,每個(gè)數(shù)字一個(gè)。這意味著訓(xùn)練一個(gè)分類器來檢測(cè) 0,一個(gè)檢測(cè) 1,一個(gè)檢測(cè) 2,以此類推。當(dāng)你想要對(duì)圖像進(jìn)行分類時(shí),只需看看哪個(gè)分類器的預(yù)測(cè)分?jǐn)?shù)最高
2. 一對(duì)一(OVO)
按照這個(gè)策略,要為每一對(duì)數(shù)字訓(xùn)練一個(gè)二分類器。這意味著要訓(xùn)練一個(gè)可以區(qū)分 0s 和 1s 的分類器,一個(gè)可以區(qū)分 0s 和 2s 的分類器,一個(gè)可以區(qū)分 1s 和 2s 的分類器,等等。如果有 N 個(gè)類別,則需要訓(xùn)練 N×N(N-1)/ 2 個(gè)分類器,對(duì)于 MNIST 數(shù)據(jù)集,需要 45 個(gè)分類器。
當(dāng)你要分類圖像時(shí),就分別運(yùn)行這 45 個(gè)分類器,并選擇性能最好的分類器。這個(gè)策略與其他策略相比有一個(gè)很大的優(yōu)勢(shì),就是你只需要在它要分類的兩個(gè)類別的訓(xùn)練集上進(jìn)行訓(xùn)練。
像支持向量機(jī)分類器這樣的算法在大型數(shù)據(jù)集上擴(kuò)展性不好,所以在這種情況下使用 Logistic 回歸這樣的二分類算法的 OvO 策略會(huì)更好,因?yàn)樵谛?shù)據(jù)集上訓(xùn)練大量分類器比在大數(shù)據(jù)集上訓(xùn)練一個(gè)分類器要快。
在大多數(shù)算法中,sklearn 可以識(shí)別何時(shí)使用二分類器進(jìn)行多分類任務(wù),并自動(dòng)使用 OvA 策略。特殊情況:當(dāng)你嘗試使用支持向量機(jī)分類器時(shí),它會(huì)自動(dòng)運(yùn)行 OvO 策略。
其它分類算法
其他常見的分類算法有樸素貝葉斯、決策樹、隨機(jī)森林、支持向量機(jī)、k-近鄰等等。我們將在其他文章中討論它們,但別被這些機(jī)器學(xué)習(xí)算法的數(shù)量嚇到。請(qǐng)注意,最好能夠真正了解 4 或 5 種算法,并將精力集中在特征處理上,這也是未來工作的主題。
總結(jié)
在這篇文章中,你已了解什么是 Logistic 回歸,以及它是如何工作的。你現(xiàn)在對(duì)其優(yōu)缺點(diǎn)也了有深刻的了解,并且知道何時(shí)用它。
此外,你還探索了使用 Logistic 回歸與 sklearn 進(jìn)行多分類的方法,以及為什么前者是比其他機(jī)器學(xué)習(xí)算法更好的基準(zhǔn)算法。
原文鏈接:https://towardsdatascience.com/the-logistic-regression-algorithm-75fe48e21cfa
【本文是51CTO專欄機(jī)構(gòu)“機(jī)器之心”的原創(chuàng)譯文,微信公眾號(hào)“機(jī)器之心( id: almosthuman2014)”】