當前位置:名人名言大全網 - 勵志說說 - 數據挖掘知識點串燒 邏輯回歸

數據挖掘知識點串燒 邏輯回歸

作者 | DD-Kylin

來源 | 木東居士

0x00 前言

我們知道,回歸模型可以解決因變量為連續變量的問題,但是,如果因變量為分類變量的話,用回歸的方法就行不通了。這個時候我們就得選擇用其他的分類方法了,如決策樹、隨機森林、SVM等。而本篇文章要說的邏輯回歸也是壹種很好的分類方法。我們需要明確的壹點是,邏輯回歸雖然是“回歸”,但是它本質上是壹種二分類算法,用來處理二分類問題的。

0x01 走近邏輯回歸

問題1:妳能說說什麽是邏輯回歸嗎?

回答:邏輯回歸是壹種二分類算法,壹般用來解決二分類問題,但是它也可以用來解決多分類問題,當使用它來解決多分類問題的時候,由於邏輯回歸的特點,我們壹般將多分類問題轉化為二分類問題。這裏多分類問題的轉化有三種拆分策略,分別是壹對壹、壹對其余和多對多。通過多分類拆分策略,我們可以使用邏輯回歸來進行多分類問題的預測。但是這種方法我們壹般不用,因為多分類問題我們可以使用隨機森林、樸素貝葉斯、神經網絡這些更好的算法進行預測。

問題2:邏輯回歸是二分類算法,那它究竟是如何進行分類的?

回答:邏輯回歸是通過判斷數據屬於某壹類的概率值大小來決定要將該數據判為哪壹類。這裏需要引入sigmoid函數(Y = 1/(1+e-z) , 其中z = wTx+b

),而sigmoid函數有壹個很特殊的性質,那就是它可以將任意的輸入值都轉為(0,1)上的輸出。邏輯回歸通過sigmoid函數來逼近後驗概率p(y =1 |x),壹般地,會將sigmoid函數輸出值大於0.5的判為正例(即1),將輸出值小於0.5的判為反例(即0)。

sigmoid函數的圖像如下:

0x02 再會邏輯回歸

問題1:邏輯回歸進行分類時的閾值是壹定的嗎?可不可以人為地進行調整呢?

回答:不壹定。可以通過人為地進行修改的。邏輯回歸輸出的是概率,即將Sigmoid函數輸出的y視為正例的可能性,我們可以自定義分類閾值來改變分類的結果。

舉個栗子,在郵件分類中,如果sigmoid函數輸出某個郵件屬於垃圾郵件的y值是0.6,屬於有用郵件的y值是0.4。即P (y = 垃圾郵件|已知條件) = 0.6,

相對應的 p(y = 有用郵件|已知條件) = 0.4。

在本例中,如果是將p>0.5視為垃圾郵件,那麽判這封郵件為垃圾郵件;如果是將p>0.7視為垃圾郵件,那麽會判這封郵件為有用郵件。壹般情況下默認數據屬於哪壹類的可能性較大就將數據判為哪壹類,但是由於邏輯回歸輸出的是概率值的這壹特性,所以我們可以根據具體的情況自定義閾值來得到更切合實際應用場景的模型。

問題2:邏輯回歸中的極大似然法是用來做什麽的?

回答:因為sigmoid函數中,z = wTx+b,其中 w和b都是未知的,使用極大似然估計法是為了求出w和b使得每個樣本屬於其真實標記的概率值越大越好。?但是最大化似然函數的求解有點困難,所以將其轉為求解最小值,即在求得的目標似然函數前面加上壹個負號轉為求解最小值。由於改變符號後的目標函數是高階可導連續凸函數,於是可以使用梯度下降法、牛頓法等來求解它的最小值,通過函數的轉化就可以較為輕松地求出w和b,進而也就能知道sigmoid函數的輸出了。

註:邏輯回歸是壹種判別模型

問題3:邏輯回歸有哪些應用?

回答:邏輯回歸的應用其實跟它的算法特點有很大的關系。由於邏輯回歸是壹種性能很好的二分類算法。所以邏輯回歸幾乎可以應用於任何需要二分類的問題。如癌癥檢測、垃圾郵件分類、廣告點擊預測、醫療效果分析等。

0x03 優點VS缺點

問題:邏輯回歸的優點是什麽?缺點又是什麽?

回答:

邏輯回歸的優點分別是:

1、形式簡單,模型的可解釋性非常好。從特征的權重可以看到不同的特征對結果的影響程度。如果特征的權重較大,則說明這個特征對數據結果的影響程度較大。 2、它不是僅僅預測出類別,還能知道近似概率預測,這對許多需利用概率輔助決策的任務很有用。 3、邏輯回歸求解的目標函數是任意可導的凸函數,有很好的數學性質,現有的許多優化算法都能直接用於求解最優值

邏輯回歸的缺點分別是:

1、很難處理數據不平衡的問題。舉個栗子,如果某個平臺用戶不下單與用戶下單的數量比為10000:50,那麽這個數據是壹個類別很不平衡的數據,機器可以把所有的樣本都預測為用戶不下單,這樣也可以使損失函數變得很小。但是作為壹個分類器,它對正負樣本的分類就顯得很不友好了。 2、邏輯回歸本身無法篩選特征,如果特征高度相關,會拉低訓練的速度。而特征數量過多的時候,則會造成過擬合現象。 3、邏輯回歸處理非線性的問題較為麻煩。邏輯回歸在不引入其它方法的情況下,只能處理線性可分的問題或者說是二分類的問題。

0x04 總結

關於邏輯回歸,我壹直覺得它是壹個很簡單但是很強大的算法,直到在寫這篇文章的時候,才發現原來它有那麽多知識點需要理解。本文也只是起到壹個拋磚引玉的作用,如果大家想了解更多的話,建議各位可以去看壹下書,練壹下真實的案例,肯定可以收獲更多的理解!下面留幾個討論題:

1、邏輯回歸輸出的概率值是真實的概率嗎? 2、邏輯回歸中是如何區別正例跟反例的呢? 3、如何衡量邏輯回歸的模型效果? 4、手推邏輯回歸