??[LR]邏輯回歸LR

邏輯回歸LR - fionacai - 博客園 http://www.cnblogs.com/fionacai/p/5865480.html

一、邏輯回歸LR介紹
首先要搞清楚當你的目標邏輯回歸LR - fionacai - 博客園 http://www.cnblogs.com/fionacai/p/5865480.html

一、邏輯回歸LR介紹
首先要搞清楚當你的目標變量是分類變量時,才會考慮邏輯回歸,并且主要用于兩分類問題。舉例來說醫(yī)生希望通過腫瘤的大小x1、長度x2、種類x3等等特征來判斷病人的這個腫瘤是惡性腫瘤還是良性腫瘤,這時目標變量y就是分類變量(0良性腫瘤,1惡性腫瘤)。


邏輯回歸算法相信很多人都很熟悉,也算是我比較熟悉的算法之一了,畢業(yè)論文當時的項目就是用的這個算法。這個算法可能不想隨機森林、SVM、神經(jīng)網(wǎng)絡、GBDT等分類算法那么復雜那么高深的樣子,可是絕對不能小看這個算法,因為它有幾個優(yōu)點是那幾個算法無法達到的,一是邏輯回歸的算法已經(jīng)比較成熟,預測較為準確;二是模型求出的系數(shù)易于理解,便于解釋,不屬于黑盒模型,尤其在銀行業(yè),80%的預測是使用邏輯回歸;三是結果是概率值,可以做ranking model;四是訓練快。當然它也有缺點,分類較多的y都不是很適用。下面我先具體介紹下這個模型。
一、****邏輯回歸LR****介紹
首先要搞清楚當你的目標變量是分類變量時,才會考慮邏輯回歸,并且主要用于兩分類問題。舉例來說醫(yī)生希望通過腫瘤的大小x1、長度x2、種類x3等等特征來判斷病人的這個腫瘤是惡性腫瘤還是良性腫瘤,這時目標變量y就是分類變量(0良性腫瘤,1惡性腫瘤)。顯然我們希望像保留像線性回歸一樣可以通過一些列x與y之間的線性關系來進行預測,但是此時由于Y是分類變量,它的取值只能是0,1,或者0,1,2等等,不可能是負無窮到正無窮,這個問題怎么解決呢?此時引入了一個sigmoid函數(shù),這個函數(shù)的性質,非常好的滿足了,x的輸入可以是負無窮到正無窮,而輸出y總是[0,1],并且當x=0時,y的值為0.5,以一種概率的形式表示. x=0的時候y=0.5 這是決策邊界。當你要確定腫瘤是良性還是惡性時,其實我們是要找出能夠分開這兩類樣本的邊界,叫決策邊界。


而通過sigmoid函數(shù),可以將我們喜歡的線性表示的函數(shù)嵌入其中,當thetax得到的值大于0,則h(x)得到的概率值大于0.5時,表明屬于該分類;當thetax得到的值小于0,則h(x)小于0.5時表示不屬于該分類。這樣也就形成了我們看到的邏輯回歸,具體如下:

其中theta是向量,

二、****邏輯回歸估計(最小化損失函數(shù)loss function****)
損失函數(shù)是在機器學習中最常出現(xiàn)的概念,用于衡量均方誤差[(模型估計值-模型實際值)^2/ n]最小,即預測的準確性,因而需要損失函數(shù)最小,得到的參數(shù)才最優(yōu)。(線性回歸中的最小二乘估計也是由此而來)但因為邏輯回歸的這種損失函數(shù)非凸,不能找到全局最低點。因此,需要采用另一種方式,將其轉化為求最大似然,如下,具體的推導求解過程可參見博客http://blog.csdn.net/suipingsp/article/details/41822313 另一種較為好理解的方式是,如果Y=1,你膽敢給出一個h(x)很小的概率比如0.01,那么損失函數(shù)就會變得很大:


此時的損失函數(shù)變成了凸函數(shù),Theta的求解,就是梯度下降法求最小值,此時加入的正則化項,是解決過擬合問題。(過擬合問題:如果我們的模型有非常多的特征,模型很復雜,模型對原始數(shù)據(jù)的擬合效果很好,但是喪失一般性,對新的待預測變量預測效果很差。(聽過寒小陽老師舉過一個很好理解的例子,就是這個學生只是強硬的記住題目,并沒有掌握規(guī)律,高考不一定考的好)怎么解決呢?限制參數(shù)寺塔,損失函數(shù)加上關于theta的限制,即如果theta太多太大,則就給予懲罰。L2正則化。)


該公式將一直被迭代執(zhí)行,直至達到收斂(
)在每一步迭代中都減小,如果某一步減少的值少于某個很小的值
()(小于0.001), 則其判定收斂)或某個停止條件為止(比如迭代次數(shù)達到某個指定值或算法達到某個可以允許的誤差范圍)。 轉換為向量的處理方法同樣可參見上文博客:http://blog.csdn.net/suipingsp/article/details/41822313
三、****LR****應用經(jīng)驗
如果連續(xù)變量,注意做SCALING,縮放單位即標準化。LR對樣本分布敏感,所以要注意樣本的平衡性(y=1不能太少)樣本量足的情況下采用下采樣,不足的情況用上采樣。
LR對于特征處理非常重要,常用處理手段包括,通過組合特征引入個性化因素(FM,FFM);注意特征的頻度;聚類、HASH。但LR不怕特征大,GBDT比較怕。對于連續(xù)變量的離散化,可以用CART查看離散的結果,生成新的特征,再用LR。
LR和FM對于稀疏高維特征處理是無壓力的,GBDT對于連續(xù)值自己會找到合適的切分點,xgboost也可以處理category類型的feature,無需one-hot,平展開的高維稀疏特征對它沒好處。
算法調優(yōu)方面,選擇合適的正則化,正則化系數(shù),收斂閾值e,迭代輪數(shù),調整loss function給定不同權重;bagging或其他方式的模型融合;最優(yōu)算法選擇(‘newton-cg’,’lbfgs’, ‘liblinear’);bagging或其他模型融合。Sklearn中的LR實際上是liblinear的封裝。
LR和SVM對于線性切分都有著比較好的表現(xiàn),對于非線性切分,必須在原始數(shù)據(jù)上做一些非線性變換。LR必須做feature mapping,比如把X做個平方項,X1*X2等;SVM則需要利用核函數(shù)
模型的評價主要用ROC曲線。ROC(接受者操作特征)曲線實際上是對概率輸出設置了一個門檻D,當P(C|x)>D時,事件C為真, 而ROC曲線反映了,在一系列可能門檻值下,真正率( TPR)和假正率(FPR)的值,一個好的模型必須在一個高的真正率( TPR)和一個低的假正率(FPR)中取得一個折衷水平,ROC曲線下的面積越大越好,最大為1. 
變量是分類變量時,才會考慮邏輯回歸,并且主要用于兩分類問題。舉例來說醫(yī)生希望通過腫瘤的大小x1、長度x2、種類x3等等特征來判斷病人的這個腫瘤是惡性腫瘤還是良性腫瘤,這時目標變量y就是分類變量(0良性腫瘤,1惡性腫瘤)。


邏輯回歸算法相信很多人都很熟悉,也算是我比較熟悉的算法之一了,畢業(yè)論文當時的項目就是用的這個算法。這個算法可能不想隨機森林、SVM、神經(jīng)網(wǎng)絡、GBDT等分類算法那么復雜那么高深的樣子,可是絕對不能小看這個算法,因為它有幾個優(yōu)點是那幾個算法無法達到的,一是邏輯回歸的算法已經(jīng)比較成熟,預測較為準確;二是模型求出的系數(shù)易于理解,便于解釋,不屬于黑盒模型,尤其在銀行業(yè),80%的預測是使用邏輯回歸;三是結果是概率值,可以做ranking model;四是訓練快。當然它也有缺點,分類較多的y都不是很適用。下面我先具體介紹下這個模型。
一、****邏輯回歸LR****介紹
首先要搞清楚當你的目標變量是分類變量時,才會考慮邏輯回歸,并且主要用于兩分類問題。舉例來說醫(yī)生希望通過腫瘤的大小x1、長度x2、種類x3等等特征來判斷病人的這個腫瘤是惡性腫瘤還是良性腫瘤,這時目標變量y就是分類變量(0良性腫瘤,1惡性腫瘤)。顯然我們希望像保留像線性回歸一樣可以通過一些列x與y之間的線性關系來進行預測,但是此時由于Y是分類變量,它的取值只能是0,1,或者0,1,2等等,不可能是負無窮到正無窮,這個問題怎么解決呢?此時引入了一個sigmoid函數(shù),這個函數(shù)的性質,非常好的滿足了,x的輸入可以是負無窮到正無窮,而輸出y總是[0,1],并且當x=0時,y的值為0.5,以一種概率的形式表示. x=0的時候y=0.5 這是決策邊界。當你要確定腫瘤是良性還是惡性時,其實我們是要找出能夠分開這兩類樣本的邊界,叫決策邊界。


而通過sigmoid函數(shù),可以將我們喜歡的線性表示的函數(shù)嵌入其中,當thetax得到的值大于0,則h(x)得到的概率值大于0.5時,表明屬于該分類;當thetax得到的值小于0,則h(x)小于0.5時表示不屬于該分類。這樣也就形成了我們看到的邏輯回歸,具體如下:

其中theta是向量,

二、****邏輯回歸估計(最小化損失函數(shù)loss function****)
損失函數(shù)是在機器學習中最常出現(xiàn)的概念,用于衡量均方誤差[(模型估計值-模型實際值)^2/ n]最小,即預測的準確性,因而需要損失函數(shù)最小,得到的參數(shù)才最優(yōu)。(線性回歸中的最小二乘估計也是由此而來)但因為邏輯回歸的這種損失函數(shù)非凸,不能找到全局最低點。因此,需要采用另一種方式,將其轉化為求最大似然,如下,具體的推導求解過程可參見博客http://blog.csdn.net/suipingsp/article/details/41822313 另一種較為好理解的方式是,如果Y=1,你膽敢給出一個h(x)很小的概率比如0.01,那么損失函數(shù)就會變得很大:
[圖片上傳中。。。(5)]

此時的損失函數(shù)變成了凸函數(shù),Theta的求解,就是梯度下降法求最小值,此時加入的正則化項,是解決過擬合問題。(過擬合問題:如果我們的模型有非常多的特征,模型很復雜,模型對原始數(shù)據(jù)的擬合效果很好,但是喪失一般性,對新的待預測變量預測效果很差。(聽過寒小陽老師舉過一個很好理解的例子,就是這個學生只是強硬的記住題目,并沒有掌握規(guī)律,高考不一定考的好)怎么解決呢?限制參數(shù)寺塔,損失函數(shù)加上關于theta的限制,即如果theta太多太大,則就給予懲罰。L2正則化。)


該公式將一直被迭代執(zhí)行,直至達到收斂(
)在每一步迭代中都減小,如果某一步減少的值少于某個很小的值
()(小于0.001), 則其判定收斂)或某個停止條件為止(比如迭代次數(shù)達到某個指定值或算法達到某個可以允許的誤差范圍)。 轉換為向量的處理方法同樣可參見上文博客:http://blog.csdn.net/suipingsp/article/details/41822313
三、****LR****應用經(jīng)驗
如果連續(xù)變量,注意做SCALING,縮放單位即標準化。LR對樣本分布敏感,所以要注意樣本的平衡性(y=1不能太少)樣本量足的情況下采用下采樣,不足的情況用上采樣。
LR對于特征處理非常重要,常用處理手段包括,通過組合特征引入個性化因素(FM,FFM);注意特征的頻度;聚類、HASH。但LR不怕特征大,GBDT比較怕。對于連續(xù)變量的離散化,可以用CART查看離散的結果,生成新的特征,再用LR。
LR和FM對于稀疏高維特征處理是無壓力的,GBDT對于連續(xù)值自己會找到合適的切分點,xgboost也可以處理category類型的feature,無需one-hot,平展開的高維稀疏特征對它沒好處。
算法調優(yōu)方面,選擇合適的正則化,正則化系數(shù),收斂閾值e,迭代輪數(shù),調整loss function給定不同權重;bagging或其他方式的模型融合;最優(yōu)算法選擇(‘newton-cg’,’lbfgs’, ‘liblinear’);bagging或其他模型融合。Sklearn中的LR實際上是liblinear的封裝。
LR和SVM對于線性切分都有著比較好的表現(xiàn),對于非線性切分,必須在原始數(shù)據(jù)上做一些非線性變換。LR必須做feature mapping,比如把X做個平方項,X1*X2等;SVM則需要利用核函數(shù)
模型的評價主要用ROC曲線。ROC(接受者操作特征)曲線實際上是對概率輸出設置了一個門檻D,當P(C|x)>D時,事件C為真, 而ROC曲線反映了,在一系列可能門檻值下,真正率( TPR)和假正率(FPR)的值,一個好的模型必須在一個高的真正率( TPR)和一個低的假正率(FPR)中取得一個折衷水平,ROC曲線下的面積越大越好,最大為1. 

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
【社區(qū)內容提示】社區(qū)部分內容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內容

友情鏈接更多精彩內容