1. 程式人生 > >分類演算法之邏輯迴歸詳解

分類演算法之邏輯迴歸詳解

1、邏輯迴歸(Logistic Regression, LR)

又稱為邏輯迴歸分析,是分類和預測演算法中的一種。通過歷史資料的表現對未來結果發生的概率進行預測。例如,我們可以將購買的概率設定為因變數,將使用者的特徵屬性,例如性別,年齡,註冊時間等設定為自變數。根據特徵屬性預測購買的概率。

Logistic迴歸與多重線性迴歸實際上有很多相同之處,最大的區別就在於它們的因變數不同,其他的基本都差不多。正是因為如此,這兩種迴歸可以歸於同一個家族,即廣義線性模型(generalizedlinear model)。這一家族中的模型形式基本上都差不多,不同的就是因變數不同:如果是連續的,就是多重線性迴歸;如果是二項分佈,就是Logistic迴歸;如果是Poisson分佈,就是Poisson迴歸;如果是負二項分佈,就是負二項迴歸。

Logistic迴歸的因變數可以是二分類的,也可以是多分類的,但是二分類的更為常用,也更加容易解釋。所以實際中最常用的就是二分類的Logistic迴歸,自變數既可以是連續的,也可以是分類的。

多類分類問題:對於多類分類問題,可以將其看做成二類分類問題,保留其中的一類,剩下的作為另一類。對於每一個類 i 訓練一個邏輯迴歸模型的分類器,並且預測y = i時的概率;對於一個新的輸入變數x, 分別對每一個類進行預測,取概率最大的那個類作為分類結果。

2、Logistic迴歸的主要用途

a、 尋找關鍵因素:尋找某一事件發生的關鍵因素等;
b、預測:根據模型,預測在不同的自變數情況下,發生某種情況的概率有多大;
c、判別:實際上跟預測有些類似,也是根據模型,判斷某個體屬於某種情況的概率有多大,也就是看一下該個體有多大的可能性是發生某種情況。

3、 Logistic Regression的適用性

1)可用於概率預測,也可用於分類:可能性預測的好處是結果有可比性:比如我們得到不同廣告被點選的可能性後,就可以展現點選可能性最大的N個。這樣以來,哪怕得到的可能性都很高,或者可能性都很低,我們都能取最優的topN。當用於分類問題時,僅需要設定一個閾值即可,可能性高於閾值是一類,低於閾值是另一類;

2)僅能用於線性問題:只有在feature和target是線性關係時,才能用Logistic Regression。這有兩點指導意義,一方面當預先知道模型非線性時,果斷不使用Logistic Regression; 另一方面,在使用Logistic Regression時注意選擇和target呈線性關係的feature;
這裡寫圖片描述

3)各feature之間不需要滿足條件獨立假設,但各個feature的貢獻是獨立計算的:邏輯迴歸不像樸素貝葉斯一樣需要滿足條件獨立假設(因為它沒有求後驗概率)。但每個feature的貢獻是獨立計算的,即LR是不會自動幫你combine 不同的features產生新feature的 。舉個例子,如果你需要TF*IDF這樣的feature,就必須明確的給出來,若僅僅分別給出兩維 TF 和 IDF 是不夠的,那樣只會得到類似 a*TF + b*IDF 的結果,而不會有 c*TF*IDF 的效果。

4、過擬合問題

對於線性迴歸或邏輯迴歸的損失函式構成的模型,可能會有些權重很大,有些權重很小,導致過擬合(就是過分擬合了訓練資料),使得模型的複雜度提高,泛化能力較差(對未知資料的預測能力)。
這裡寫圖片描述

4.1問題的主因:過擬合問題往往源自過多的特徵。

4.2解決方法
1)減少特徵數量(減少特徵會失去一些資訊,即使特徵選的很好)
a、可用人工選擇要保留的特徵;
b、模型選擇演算法;

2)正則化(特徵較多時比較有效)
a、保留所有特徵,但減少θ的大小;
b、正則化方法:正則化是結構風險最小化策略的實現,是在經驗風險上加一個正則化項或懲罰項。正則化項一般是模型複雜度的單調遞增函式,模型越複雜,正則化項就越大。

舉例:如下圖,直觀來看,如果我們想解決這個例子中的過擬合問題,最好能將x3、x4的影響消除,也就是讓θ3、θ4近似等於0。假設我們對θ3、θ4進行懲罰,並且令其很小。
這裡寫圖片描述