對邏輯斯蒂回歸的一些細節剖析

2022-04-23 04:09:31 字數 3488 閱讀 4897

原文:

首先宣告:本部落格的寫作思路是對機器學習的一些基本演算法做一些通俗性的靈活理解,以及對一些細節的進行簡單剖析,還有記錄本人在使用演算法時的一些小經驗小感想。本人一般不會對基本公式做大量推導,也不會寫的太正式,這些可以在很多其他部落格中找到。由於本人還是學生一枚,經驗知識粗淺,還望能和朋友們參與討論。

之前本部落格簡單談過線性回歸相關知識點,這次來談一下邏輯斯蒂回歸。雖然也叫回歸,但是邏輯斯蒂回歸是一種分類演算法。它合理地應用了線性回歸的優勢來完成分類任務,是一種應用非常廣泛的分類演算法。

第乙個理解角度:線性回歸用於分類任務的拓展

我們知道,線性回歸之所以功能強大,離不開它能將輸入資料的各個維度的特徵進行了有效的結合(通過分配不同的權重),使得所有特徵共同協同合作作出最後的決策。但是,作出的決策是對模型的乙個擬合結果,不能直接用於分類。於是,邏輯斯蒂回歸使用了乙個sigmod函式,將特徵的線性加權結果對映到0到1之間,而這剛好可以看做是資料樣本點屬於某一類的概率。如果結果越接近0或者1,說明分類結果的可信度越高。

這裡需要注意的一點是,邏輯斯蒂回歸不僅可以處理資料線性可分的情況,還可以處理資料線性不可分的情況。當線性加權的各個特徵不是簡單的線性函式而是非線性函式的時候,分割面就不是乙個超平面而是乙個曲線或者曲面。這種情況一圖以明之: 

還有乙個理解角度是:基於邏輯斯蒂分布的二項邏輯斯蒂回歸模型

這個角度的好處是可以將邏輯斯蒂回歸模型的二分類問題輕鬆擴充套件到多分類問題。二項邏輯斯蒂回歸模型是一種分類模型,由條件概率分布p(y|x)表示,形式為引數化的邏輯斯蒂分布(關於邏輯斯蒂分布以及概率分布的基礎知識請看本文附錄)。這裡,隨機變數x取值為實數,隨機變數y取值為1或0。二項邏輯斯蒂回歸模型是如下的條件概率分布: 

對於給定的輸入例項x,按照上式可以求得p(y=1|x)和p(y=0|x)。邏輯斯蒂回歸比較兩個條件概率值的大小,將例項x分到概率值較大的那一類。

現在我們要引入乙個叫做「事件的機率」這個概念。乙個事件的機率是指該事件發生的概率與該事件不發生的概率的比值。如果事件發生的概率是p,那麼該事件的機率是p/(1-p),該事件的對數機率或logit函式是:logit(p)=log( p/(1-p) ) 。對邏輯斯蒂回歸而言,由上面表示式得: 

這就是說,在邏輯斯蒂回歸模型中,輸出y=1的對數機率是輸入x的線性函式。或者說,輸出y=1的對數機率是由輸入x的線性函式表示的模型,即邏輯斯蒂回歸模型。

多項邏輯斯蒂回歸

上面說到第二種角度可以輕鬆擴充套件到多分類,叫做多項邏輯斯蒂回歸模型,我們現在來看一下。假設離散型隨機變數y的取值集合是,那麼多項邏輯斯蒂回歸模型是: 

對於引數估計方法仍然可以採用二分類時候的最大似然估計,後面再講。

在我們的工業應用上,如果需要作出分類的資料擁有很多有意義的特徵,每個特徵(我們假設這些特徵都是有效的)都對最後的分類結果又或多或少的影響,那麼最簡單最有效的辦法就是將這些特徵線性加權,一起參與到作出決策的過程中。比如**廣告的點選率,又比如從原始資料集中篩選出符合某種要求的有用的子資料集。

邏輯斯蒂回歸還有乙個優點,那就是它不是硬性地將分類結果定為0或者1,而是給出了0和1之間的概率。這就相當於對每條資料的分類結果給出了乙個打分。打分越高的資料越是我們想要的。如果我們要從乙個資料集中篩選出一批資料(比如100個),就只要選出打分排名前100的資料就可以了。我們也可以根據實際情況設定乙個閥值,大於這個閥值的歸為一類,小於這個閥值的歸為另一類。

個人感覺,只要特徵找的準,資料量足夠大,邏輯斯蒂回歸將會非常好用。另外,還要注意避免過擬合。

特徵選擇的話,由於邏輯斯蒂回歸的優點,開始的時候不用考慮各個特徵之間是否有相關性,直接把能用的特徵全部線性加權起來就好。經過初步訓練,觀察各個特徵的權值,如果權值接近為0,那麼就可以將這個特徵看做是不相關的可以去除的特徵。總結起來就是:先做加法再做減法。

解決過擬合的方法不過兩種,一種是減少特徵的個數;另一種是模型選擇的正則化方法。正則化的話,可以參考嶺回歸方法。

採用最大似然估計。對於二分類問題,資料屬於a類的概率為h(x),那麼資料屬於b類的概率就為1-h(x)。模型訓練就是使得訓練資料的似然函式最大,於是轉化為乙個最優化的問題。也可以將最大似然估計理解為損失函式為對數損失函式的經驗風險最小化,證明在這裡,所以邏輯斯蒂回歸的損失函式是對數損失函式。

邏輯斯蒂回歸模型歸結為以似然函式為目標函式的最優化問題,通常通過迭代演算法求解。從最優化的觀點看,這時的目標函式具有很好的性質,它是光滑的凸函式,因此多種最優化的方法都適用,保證能找到全域性最優解。在解這個最優化問題的時候,通常採用近似方法如梯度上公升法和擬牛頓法。為什麼不像線性回歸那樣直接求取解析解呢?因為這將導致計算非常複雜。其中梯度上公升法可能導致計算量太大,於是用隨機梯度上公升法代替;牛頓法或擬牛頓法一般收斂速度更快。

隨機梯度上公升法需要注意兩個點才能達到效能完全發揮出來。首先,控制步長的alpha最好不要設定為固定值,而是隨著迭代的深入而不斷變小,這樣有利於減少在最優值附近的**。這可以將alpha設定為分母隨著迭代次數不斷變大的分數來實現,但注意不要讓alpha最後變為零,這就需要alpha設定為分數和常數的和;其次,既然是隨機梯度上公升,那麼每次取乙個樣本點的時候就要隨機取,不要按照順序取,這樣才能保證合理性。最後要注意迭代次數的控制。

模型引數求解出來以後是特徵權重組成的向量。其實,邏輯斯蒂回歸模型可以看做由兩部分組成。一部分跟線性回歸一樣,就是一條直線;另一部分就是sigmod函式。需要注意的是,有了權重向量我們就可以線性加權了,我們的直線就是令線性加權的結果為0的公式表達。為什麼要人為定為0呢?當然是為了sigmod函式啊。這樣才能使正樣本的線性加權大於0,在sigmod中接近1,同樣負樣本的線性加權小於0,在sigmod中接近0。在svm中,同樣也是先學習乙個分離超平面,然後帶入分類決策函式sign中。

能和邏輯斯蒂回歸進行比較的就是牛逼閃閃的線性svm了。關於這部分請移步這裡。大概意思是:直接用線性回歸做分類因為考慮到了所有樣本點到分類決策面的距離,所以在兩類資料分布不均勻的時候將導致誤差非常大;邏輯斯蒂回歸回歸和svm克服了這個缺點,前者採用將所有資料採用sigmod函式進行了非線性對映,使得遠離分類決策面的資料作用減弱;後者則直接去掉了遠離分類決策面的資料,只考慮支援向量的影響。

邏輯斯蒂分布

設x是連續隨機變數,x服從邏輯斯蒂分布是指x具有下列分布函式和密度函式: 

邏輯斯蒂分布的密度函式f(x)和f(x)的圖形如下圖所示: 

其中,分布函式在x處的取值其實就是將密度函式在x以及之前負無窮的所有取值進行積分。

《機器學習實戰》 邏輯斯蒂回歸《一》

回歸我們知道有線性回歸,線性回歸模型能夠無限的逼近我們的結果。以 x i,yi 為例,通過線性回歸 f x w tx b 表示式,就可以得到我們對yi 的估計值。如何從線性回歸轉換到分類呢?由於線性回歸得到的是連續值,z wtx b z 的範圍 是這樣的乙個連續值無法直接轉換為類別。那怎麼辦?最簡單...

聊聊關於使用邏輯斯蒂回歸的使用方法

邏輯蒂斯函式 通過邏輯斯蒂回歸,我們常用於去 某種結果的概率。例如 某品牌商店的 客戶的流失概率。統計客戶在商店停留的時間,服務人員與客戶聯絡的次數,以及客戶在商店消費的金額。在取平均值後,得出乙個客戶流失的概率值。相應的,我們可以得出,在平聯絡次數減少一次或增加一次時,客戶的流失概率。根據結果,分...

C 的一些細節

1.c 中,將負數賦值給unsigned是完全合法的。例如,將 1賦值給unsigned char,那麼結果是255.2.c 中,double的精度和計算速度都要超過float,long double則需要承擔額外的執行代價。3.std ou t hi d endl 等價於std out hi 4....