05.15 邏輯迴歸算法你瞭解多少?

邏輯迴歸算法是最常用的二值分類機器學習算法之一,是一個相對簡單的算法。它可以用作性能基線,並且在許多任務中都表現得很好。因此,每一個機器學習工程師都應該對它有所瞭解。在這篇文章中,你將學習什麼是邏輯迴歸算法,它是如何工作的,優點、缺點有哪些等等。

邏輯迴歸算法你瞭解多少?

內容表:

  • 什麼是邏輯迴歸算法?

  • 它是如何工作的

  • 邏輯算法VS線性迴歸算法

優缺點:

  • 什麼情況下需要使用邏輯迴歸算法

  • 多類分類(OVA,OVO)

  • 其他分類算法

摘要

1

,什麼是邏輯迴歸

和許多其他機器學習技術一樣,它是從統計領域借用來的。儘管它的名稱是迴歸算法,但它不是用於解決迴歸問題的算法。因為在迴歸問題中,您需要的是一個連續的結果。然而,邏輯迴歸算法是二元分類的一種算法,是0到1之間的離散二進制結果。用簡單的話來說,兩者之間沒有必然聯繫。

以檢測癌症為例,該算法通過篩選圖片並輸入,判斷患者是否患有癌症(1)或不患癌症(0)。

2,它是如何工作的

邏輯迴歸算法利用因變量(通常是標籤,或我們想要預測的內容)和一個或多個自變量(通常指特徵)之間的關係,利用它的基本邏輯函數來估計概率。

然後,要進行實際預測,則需要將概率轉換為二進制值。這是邏輯函數的任務,也稱為sigmoid函數。Sigmoid函數是一條S形曲線,它可以取任何實數,並將其映射為0到1之間的值。(但取值多不會取到0或1。)然後通過閾值分類器將0到1之間的值轉換為0或1。

下圖將為您提供邏輯迴歸所需的輸出步驟。

邏輯迴歸算法你瞭解多少?

下圖是邏輯函數(Sigmoid函數)的函數圖:

邏輯迴歸算法你瞭解多少?

我們把正確分類的(最大化)隨機數據點的可能性,稱為最大似然估計。最大似然估計是統計模型中估計參數的一種通用方法。當然還有其他算法,比如優化算法。牛頓法就是這樣一種算法,它多用來求不同函數的最大值(或極小值),包括似然函數。除了牛頓法,您也可以使用梯度下降。

3

,邏輯算法VS線性迴歸算法

你可能會問自己,邏輯迴歸和線性迴歸的區別是什麼?邏輯迴歸算法給你一個離散的結果,而線性迴歸算法給出一個連續的結果。這就是不同,舉一個結果是連續的例子,比如建立一個預測房屋價值的模型。由於它的大小或位置等參數不同,它的最終值是不確定的。而離散結果往往是確定的,即你得了癌症或你沒有癌症。

4,優缺點

它被人們廣泛採用。優勢在於,它非常高效,不需要太多的計算資源。它具有高度的可解釋性,它不需要對輸入的內容進行縮放。它不需進行任何調試,就有較好的預測率。

與線性迴歸相比。當您刪除與輸出變量無關的屬性或與輸出變量相似的屬性,邏輯迴歸確實工作得更好。需要了解的是,特徵工程對邏輯迴歸算法和線性迴歸算法的性能都有著重要的影響。邏輯迴歸算法的優點是,它非常容易操作,並且可以進行針對性的訓練。

作者通常以邏輯迴歸算法模型作為基礎,並嘗試使用更復雜的算法。

由於它操作簡單,而且它相對容易、快速的落實。邏輯迴歸算法可以作為您來衡量其他更復雜的算法性能的一條基線。

它的缺點是由於它的決策面是線性的,而邏輯迴歸算法是不能求解非線性問題的。只需看看下面的例子。(它是兩個包含二進制特點的例子。)

邏輯迴歸算法你瞭解多少?

很明顯,我們不能保證在不犯錯誤的情況下畫出分隔這兩類的線。使用一個簡單的決策樹反而是更好的選擇。

邏輯迴歸算法你瞭解多少?

Logistic迴歸不是最強大的算法,它很容易被更復雜的算法所超越。另一個缺點是它高度依賴於適當的數據表示。這意味著,如果您沒有確定了所有重要的自變量,不建議您使用。因為Logistic迴歸只能預測一個絕對的結果。作為一種算法,它太容易受到數據的影響。

5,何時使用

正如我已經提到的,Logistic迴歸算法將您的輸入通過一個線性邊界劃分為兩個“區域”,每類都有一個。所以,您的數據必須是線性可分的,就像下面圖像中的數據點一樣:

邏輯迴歸算法你瞭解多少?

換句話說:當變量Y只有兩個值時,您可以考慮使用Logistic迴歸算法。需要注意的是,Logistic迴歸算法還可以進行多類分類,下一節作者將對此進行討論。

6.多類分類

有一些算法可以自己處理(預測)多個類,如Random Forest分類器和Naive Bayes分類器。但有些算法不能做到這一點,比如Logistic迴歸算法。但是使用一些技巧,您也可以用它預測多個類。

以MNIST數據集為例,討論剛才所說的“技巧”,該數據集包含從0到9不等的手寫數字圖像。作為一個分類任務,我們的算法應該告訴我們圖像上的數字。

1) one-versus-all

使用此策略,您將訓練10個二進制分類器,每個數字一個。這意味著訓練一個分類器來檢測0s,一個用來檢測1s,一個用來檢測2s等等。然後,當您想對圖像進行分類時,只需查看哪個分類器的決策得分最高就行。

2)one-versus-one

在這裡,您將為每一對數字訓練一個二進制分類器。這意味著訓練一個能區分0s和1s的分類器,一個能區分0s和2s的分類器,一個能區分1s和2s等的分類器。如果有N類,則需要對NxN(N-1)/2分類器進行培訓。在MNIST數據集中分類器個數應為45。

當你想對圖像進行分類時,你需要運行這45個分類器中的每一個,最後並選擇性能最好的那一個。這麼做的優勢是,你只需要在它所區分的兩個類的訓練集合中訓練它。相較於支持向量機(SupportVectorMachine)等算法在大型數據集上不能很好的應用。使用像Logistic迴歸算法和OVO策略這樣的二進制分類算法反而是更好的選擇。因為在一個小數據集上訓練大量分類器比在大型數據集中訓練一個分類器要快得多。

在大多數算法中,skLearning在多類分類任務中使用二進制分類器並自動使用OVA策略。有一個例外:當您嘗試使用支持向量機分類器時,它會自動運行Ovo策略。

7,其他分類算法

常見的分類算法有Naive Bayes, Decision Trees, Random Forests, Support Vector Machines, k-nearest neighbor and many others,這些也將是作者在後面討論的內容。

8,摘要

在這篇文章中,您瞭解了什麼是邏輯迴歸算法以及它是如何工作的。您現在已經對它的優點和缺點有了充分的瞭解,並且知道什麼時候可以使用它。此外,您還發現了使用邏輯迴歸算法對skLearning進行多類分類的方法,以及為什麼它是比較其他機器學習算法的一個很好的基線。


分享到:


相關文章: