農林漁牧網

您現在的位置是:首頁 > 林業

資料探勘知識點串燒:邏輯迴歸

2022-09-15由 CDA資料分析師 發表于 林業

凸函式一定可導嗎

資料探勘知識點串燒:邏輯迴歸

作者 | 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、手推邏輯迴歸