日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

【机器学习】逻辑回归小结

發(fā)布時間:2023/12/20 编程问答 62 豆豆
生活随笔 收集整理的這篇文章主要介紹了 【机器学习】逻辑回归小结 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

之前對于LR的介紹已經(jīng)不少了,有從LR的極大似然概率模型開始推導(dǎo)的,從極大似然開始推導(dǎo)可以得到我們常用的損失函數(shù)形式,接下來就可以利用梯度下降方法。也從最大熵模型推導(dǎo)了滿足二項分布的LR模型Hypothesis函數(shù)來源,以及滿足多項式分布的Softmax回歸模型。

接下來對LR模型做一個總結(jié)。(參照面經(jīng)等,以后可能會有補充……)


如何凸顯你是一個對邏輯回歸已經(jīng)非常了解的人呢。那就是用一句話概括它!邏輯回歸假設(shè)數(shù)據(jù)服從伯努利分布,通過極大化似然函數(shù)的方法,運用梯度下降來求解參數(shù),來達到將數(shù)據(jù)二分類的目的。

這里面其實包含了5個點

  • 邏輯回歸的假設(shè),
  • 邏輯回歸的損失函數(shù),
  • 邏輯回歸的求解方法,
  • 邏輯回歸的目的,
  • 邏輯回歸如何分類。
  • 這些問題是考核你對邏輯回歸的基本了解。

    邏輯回歸的基本假設(shè)

    任何的模型都是有自己的假設(shè),在這個假設(shè)下模型才是適用的。邏輯回歸的第一個基本假設(shè)是假設(shè)數(shù)據(jù)服從伯努利分布伯努利分布有一個簡單的例子是拋硬幣,拋中為正面的概率是,拋中為負面的概率是.在邏輯回歸這個模型里面是假設(shè)??為樣本為正的概率,為樣本為負的概率。那么整個模型可以描述為:

    邏輯回歸的第二個假設(shè)是假設(shè)樣本為正的概率(實際上這個不算是假設(shè),只是因為在這里我們沒有給出證明,在前面的文章中有講到,可以通過最大熵模型求解得到。)是:

    所以邏輯回歸Hypothesis函數(shù)的最終形式 :

    邏輯回歸的損失函數(shù)

    邏輯回歸的損失函數(shù)是它的極大似然函數(shù):

    邏輯回歸的求解方法

    由于該極大似然函數(shù)無法直接求解,我們一般通過對該函數(shù)進行梯度下降來不斷逼急最優(yōu)解。在這個地方其實會有個加分項,考察你對其他優(yōu)化方法的了解。因為就梯度下降本身來看的話就有隨機梯度下降,批梯度下降,Mini-batch 梯度下降三種方式,面試官可能會問這三種方式的優(yōu)劣以及如何選擇最合適的梯度下降方式。

    • 簡單來說 批梯度下降會獲得全局最優(yōu)解,缺點是在更新每個參數(shù)的時候需要遍歷所有的數(shù)據(jù),計算量會很大,并且會有很多的冗余計算,導(dǎo)致的結(jié)果是當(dāng)數(shù)據(jù)量大的時候,每個參數(shù)的更新都會很慢。
    • 隨機梯度下降是以高方差頻繁更新,優(yōu)點是使得sgd會跳到新的和潛在更好的局部最優(yōu)解,缺點是使得收斂到局部最優(yōu)解的過程更加的復(fù)雜。
    • 小批量梯度下降結(jié)合了sgd和batch gd的優(yōu)點,每次更新的時候使用n個樣本。減少了參數(shù)更新的次數(shù),可以達到更加穩(wěn)定收斂結(jié)果,一般在深度學(xué)習(xí)當(dāng)中我們采用這種方法。

    其實這里還有一個隱藏的更加深的加分項,看你了不了解諸如Adam,動量法等優(yōu)化方法。因為上述方法其實還有兩個致命的問題。

    • 第一個是如何對模型選擇合適的學(xué)習(xí)率。自始至終保持同樣的學(xué)習(xí)率其實不太合適。因為一開始參數(shù)剛剛開始學(xué)習(xí)的時候,此時的參數(shù)和最優(yōu)解隔的比較遠,需要保持一個較大的學(xué)習(xí)率盡快逼近最優(yōu)解。但是學(xué)習(xí)到后面的時候,參數(shù)和最優(yōu)解已經(jīng)隔的比較近了,你還保持最初的學(xué)習(xí)率,容易越過最優(yōu)點,在最優(yōu)點附近來回振蕩,通俗一點說,就很容易學(xué)過頭了,跑偏了。
    • 第二個是如何對參數(shù)選擇合適的學(xué)習(xí)率。在實踐中,對每個參數(shù)都保持的同樣的學(xué)習(xí)率也是很不合理的。有些參數(shù)更新頻繁,那么學(xué)習(xí)率可以適當(dāng)小一點。有些參數(shù)更新緩慢,那么學(xué)習(xí)率就應(yīng)該大一點。這里我們不展開,有空我會專門出一個專題介紹。

    邏輯回歸的目的

    • 該函數(shù)的目的便是將數(shù)據(jù)二分類,提高準(zhǔn)確率。

    邏輯回歸如何分類

    • 邏輯回歸作為一個回歸(也就是y值是連續(xù)的),如何應(yīng)用到分類上去呢。y值確實是一個連續(xù)的變量。邏輯回歸的做法是劃定一個閾值,y值大于這個閾值的是一類,y值小于這個閾值的是另外一類。閾值具體如何調(diào)整根據(jù)實際情況選擇。一般會選擇0.5做為閾值來劃分。

    對邏輯回歸的進一步提問

    邏輯回歸雖然從形式上非常的簡單,但是其內(nèi)涵是非常的豐富。有很多問題是可以進行思考的

    邏輯回歸的損失函數(shù)為什么要使用極大似然函數(shù)(推導(dǎo)后即交叉熵損失)作為損失函數(shù)?

    損失函數(shù)一般有六種,平方損失函數(shù),對數(shù)損失函數(shù),指數(shù)損失函數(shù),Hinge-Loss,0-1損失函數(shù),絕對值損失函數(shù)。將極大似然函數(shù)取對數(shù)以后等同于對數(shù)損失函數(shù)。在邏輯回歸這個模型下,對數(shù)損失函數(shù)的訓(xùn)練求解參數(shù)的速度是比較快的。至于原因大家可以求出這個式子的梯度更新:

    這個式子的更新速度只和相關(guān)。和sigmoid函數(shù)本身的梯度是無關(guān)的。這樣更新的速度是可以自始至終都比較的穩(wěn)定。

    為什么不選平方損失函數(shù)的呢?其一是因為如果你使用平方損失函數(shù),你會發(fā)現(xiàn)梯度更新的速度和sigmod函數(shù)本身的梯度是很相關(guān)的。sigmod函數(shù)在它在定義域內(nèi)的梯度都不大于0.25。這樣訓(xùn)練會非常的慢。

    邏輯回歸在訓(xùn)練的過程當(dāng)中,如果有很多的特征高度相關(guān)或者說有一個特征重復(fù)了100遍,會造成怎樣的影響?

    先說結(jié)論,如果在損失函數(shù)最終收斂的情況下,其實就算有很多特征高度相關(guān)也不會影響分類器的效果。

    但是對特征本身來說的話,假設(shè)只有一個特征,在不考慮采樣的情況下,你現(xiàn)在將它重復(fù)100遍。訓(xùn)練以后完以后,數(shù)據(jù)還是這么多,但是這個特征本身重復(fù)了100遍,實質(zhì)上將原來的特征分成了100份,每一個特征都是原來特征權(quán)重值的百分之一。

    如果在隨機采樣的情況下,其實訓(xùn)練收斂完以后,還是可以認為這100個特征和原來那一個特征扮演的效果一樣,只是可能中間很多特征的值正負相消了。

    為什么我們還是會在訓(xùn)練的過程當(dāng)中將高度相關(guān)的特征去掉?

    • 去掉高度相關(guān)的特征會讓模型的可解釋性更好
    • 可以大大提高訓(xùn)練的速度。如果模型當(dāng)中有很多特征高度相關(guān)的話,就算損失函數(shù)本身收斂了,但實際上參數(shù)是沒有收斂的,這樣會拉低訓(xùn)練的速度。其次是特征多了,本身就會增大訓(xùn)練的時間。
    • 在模型中如果存在過多的高相關(guān)性特征,容易造成矩陣病態(tài),使得收斂極為緩慢。(矩陣病態(tài)、Normal Equation)
    在優(yōu)化過程中如何避免局部最優(yōu)解
  • 以多組不同的參數(shù)值進行初始化,訓(xùn)練之后,取其中誤差最小的解。
  • 使用隨機梯度下降方法,高方差的梯度下降方法有利于跳出局部最優(yōu)解(即使陷入局部最優(yōu)解,但隨機樣本計算出的梯度也有可能不為0)。
  • 特征系數(shù)的絕對值可以認為是特征的重要性嗎

    邏輯回歸的特征系數(shù)的絕對值越大,對分類效果的影響越顯著,然而并不能簡單認為特征系數(shù)更大的特征更重要。原因有以下亮點:

  • 改變變量的尺度就會改變系數(shù)絕對值。
  • 如果特征是線性相關(guān)的,則系數(shù)可以從一個特征轉(zhuǎn)移到另一個特征。此外,數(shù)據(jù)集特征越多,特征間越可能線性相關(guān),用系數(shù)解釋特征的重要性就越不可靠。
  • 邏輯回歸實現(xiàn)多分類(之前有講過,不做累述了)

    • One Vs One
    • One Vs All
    • Softmax

    為什么用的是交叉熵損失函數(shù)(對數(shù)損失函數(shù))

    • 一方面這是由于樣本分布滿足伯努利分布,可以直接從最大熵模型導(dǎo)出Hypothesis函數(shù)(二分類sigmoid,多分類softmax)后用極大似然即可導(dǎo)出目標(biāo)函數(shù)為交叉熵損失函數(shù)。
    • 另一方面不考慮模型背后的概率意義,選用交叉熵損失函數(shù)相比于平方損失函數(shù),可以使得模型在求解最優(yōu)解的過程中相對平穩(wěn),而不至于造成梯度消失等情況。具體參見之前的一篇文章二次損失函數(shù)的不足及交叉熵損失softmax詳解

    邏輯回歸數(shù)據(jù)歸一化

    • 數(shù)據(jù)歸一化之后可以使得梯度下降更為快速,同時避免取值較小特征的參數(shù)影響更大的問題,可以提升模型的精度。
    • 實際上在各種模型中,只要是應(yīng)用梯度下降等優(yōu)化方法求解或者需要度量距離又或者關(guān)心變量的取值的模型都需要進行數(shù)據(jù)歸一化,像Adaboost、SVM、LR、Knn、KMeans之類。而像決策樹、RF這樣的模型(概率模型)就不需要進行數(shù)據(jù)歸一化,因為它們不關(guān)心變量的值,而是關(guān)心變量的分布和變量之間的條件概率。

    邏輯回歸與線性回歸的聯(lián)系與區(qū)別

  • 從模型本身來看。兩者都屬于廣義線性模型,具體的說都是從指數(shù)族分布導(dǎo)出的線性模型。
  • 從處理問題來看。回歸模型就是預(yù)測一個連續(xù)變量(如降水量,價格等)。在分類問題中,預(yù)測屬于某類的概率,可以看成回歸問題。這可以說是使用回歸算法的分類方法。由于LR將輸出固定在[0,1]之間,故LR通常被用來解決分類問題。
  • 從分布假設(shè)來看。線性回歸假設(shè)樣本分布服從高斯分布,而參數(shù)分布可以根據(jù)正則項來改變(不帶正則項為均勻分布,L1正則項為拉普拉斯分布,L2正則項為高斯分布)。邏輯回歸假設(shè)變量服從伯努利分布。線性回歸與邏輯回歸的分布假設(shè)區(qū)別可以從似然函數(shù)的形式中體現(xiàn)出來。
  • 從輸出來看。線性回歸的輸出在整個實數(shù)域,所以線性回歸對于變量(輸出,訓(xùn)練時)是在整個實數(shù)域敏感的。而邏輯回歸將輸出通過sigmoid函數(shù)限定在[0,1]區(qū)間內(nèi),這樣做有兩個好處:
  • 在分類問題中,對于輸出所屬類別有一個更直觀的概念(近似于概率表示)。
  • 較小的敏感域使得LR對于異常點(Outlier)有更好的魯棒性,十分確定的正樣本與負樣本不應(yīng)該過分影響決策平面的劃分。假如使用線性回歸對{0,1}二分類問題做預(yù)測,則一個真值為1的樣本,其預(yù)測值為50,那么將會對其產(chǎn)生很大的懲罰,這也和實際情況不符合,更大的預(yù)測值說明為1的可能性越大,而不應(yīng)該懲罰的越嚴重。
  • 從參數(shù)估計方法來看。兩種模型都可以使用極大似然估計的方法去估計參數(shù)。但由于假設(shè)分布的不同,在根本上對模型有一些的影響。例如線性回歸假設(shè)樣本的分布為高斯分布,則用極大似然估計導(dǎo)出的損失函數(shù)為最小均方誤差損失;邏輯回歸假設(shè)樣本分布服從伯努利分布,則導(dǎo)出的損失函數(shù)為交叉熵損失函數(shù)。交叉熵損失函數(shù)可以使得模型在訓(xùn)練時較為穩(wěn)定,最小均方誤差損失易造成梯度消失(這是后話了)。
  • 邏輯回歸特征的離散化與交叉

    篇幅問題,單獨拎出來整理了一篇

    邏輯回歸的優(yōu)缺點總結(jié)

    ?在這里我們總結(jié)了邏輯回歸應(yīng)用到工業(yè)界當(dāng)中一些優(yōu)點:

    • 形式簡單,模型的可解釋性非常好。從特征的權(quán)重可以看到不同的特征對最后結(jié)果的影響,某個特征的權(quán)重值比較高,那么這個特征最后對結(jié)果的影響會比較大。
    • 模型效果不錯。在工程上是可以接受的(作為baseline),如果特征工程做的好,效果不會太差,并且特征工程可以大家并行開發(fā),大大加快開發(fā)的速度。
    • 訓(xùn)練速度較快,易于并行實現(xiàn)。分類的時候,計算量僅僅只和特征的數(shù)目相關(guān)。并且邏輯回歸的分布式優(yōu)化sgd發(fā)展比較成熟,訓(xùn)練的速度可以通過堆機器進一步提高,這樣我們可以在短時間內(nèi)迭代好幾個版本的模型。
    • 資源占用小,尤其是內(nèi)存。因為只需要存儲各個維度的特征值,。
    • 方便輸出結(jié)果調(diào)整。邏輯回歸可以很方便的得到最后的分類結(jié)果,因為輸出的是每個樣本的概率分數(shù),我們可以很容易的對這些概率分數(shù)進行cutoff,也就是劃分閾值(大于某個閾值的是一類,小于某個閾值的是一類)。

    但是邏輯回歸本身也有許多的缺點:

    • 準(zhǔn)確率并不是很高。因為形式非常的簡單(非常類似線性模型),很難去擬合數(shù)據(jù)的真實分布。
    • 很難處理數(shù)據(jù)不平衡的問題。舉個例子:如果我們對于一個正負樣本非常不平衡的問題比如正負樣本比 10000:1.我們把所有樣本都預(yù)測為正也能使損失函數(shù)的值比較小。但是作為一個分類器,它對正負樣本的區(qū)分能力不會很好。
    • 處理非線性數(shù)據(jù)較麻煩。邏輯回歸在不引入其他方法的情況下,只能處理線性可分的數(shù)據(jù),或者進一步說,處理二分類的問題 。
    • 邏輯回歸本身無法篩選特征。有時候,我們會用gbdt來篩選特征,然后再上邏輯回歸。

    ?

    參考文章

    邏輯回歸的常見面試點總結(jié)

    總結(jié)

    以上是生活随笔為你收集整理的【机器学习】逻辑回归小结的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。