機器學習部分 邏輯回歸的優化

2021-08-24 18:22:33 字數 3254 閱讀 3629

有無截距

對於邏輯回歸分類,就是找到z那條直線,不通過原點有截距的直線與通過原點的直線相比,有截距更能將資料分類的徹底。

線性不可分問題

對於線性不可分問題,可以使用公升高維度的方式轉換成線性可分問題。低維空間的非線性問題在高維空間往往會成為線性問題。

調整分類閾值

在一些特定的場景下,如果按照邏輯回歸預設的分類閾值0.5來進行分類的話,可能存在一些潛在的風險,比如,假如使用邏輯回歸**乙個病人得癌症的概率是0.49,那麼按照0.5的閾值,病人推測出來是沒有得癌症的,但是49%的概率得癌症,比例相對來說得癌症的可能性也是很高,那麼我們就可以降低分類的閾值,比如將閾值設定為0.3,小於0.3認為不得癌症,大於0.3認為得癌症,這樣如果病人真的是癌症患者,規避掉了0.49概率下推斷病人是不是癌症的風險。

降低閾值會使邏輯回歸整體的正確率下降,錯誤率增大,但是規避了一些不能接受的風險。

魯棒性調優

魯棒是robust的音譯,也就是健壯和強壯的意思,比如說,計算機軟體在輸入錯誤、磁碟故障、網路過載或有意攻擊情況下,能不宕機、不崩潰,就是該軟體的魯棒性,那麼演算法的魯棒性就是指這個演算法的抗干擾能力強。邏輯回歸的決策邊界 如下(當維度只有兩個時,決策邊界是一條直線):

如下兩個模型:

與  第乙個模型相對於第二個來說各個維度的權重相對來說小,當遇到資料有雜訊時,抗干擾的能力強,資料擾動小。比如:當時,第乙個模型結果為90.3,第二個模型結果為903。當有資料雜訊時,第乙個模型結果為94.3,資料擾動為4,第二個模型結果為943,資料擾動為40。

可見模型維度權重小的模型抗干擾能力強,並不是模型維度權重越小,模型越好,如果模型權重很小,很小,那麼模型受各個維度值變化的影響非常小,只與引數有關,與其他維度的權重沒有關係,所有訓練資料和測試資料都會得到相同的結果,那就是欠擬合的狀態。如果模型維度權重太大,維度又多,這種模型當資料改變一點,擾動也大,對訓練資料擬合的好,當測試資料本身改變一點時,變化也大,反而成了一種過擬合的狀態。

無論是欠擬合或者過擬合模型都無法泛化(模型能夠應用到新樣本的能力)到新的樣本資料,無法**準確的值。各個維度的值偏大容易過擬合(一般過多的維度特徵,很少的訓練資料集,容易導致過擬合出現),各個維度的值偏小容易欠擬合,可見維度的權重不能太大,也不能太小,如何得到一組比較合適的權重值?這裡就需要使用正則化。

正則化主要是用來解決模型過擬合,實際上,模型引數的權重值越小,通常對應越光滑的函式影象,就不易發生過擬合問題。正則化中將保留模型中的所有的維度,會將各個維度的權重保持盡可能小的狀態。有兩種正則化:l1正則化和l2正則化,公式如下:

、  正則化的區別:傾向於使所有的w要麼取1,要麼取0。傾向於使w整體偏小。由此可見,正則化對於引數為0的維度,可以直接捨去,起到降維的作用。

如何應用正則化?簡單直觀來看可以重寫邏輯回歸的誤差函式為:

其中:叫做正則化引數,一般設定不會超過1,0.3或者0.4最佳,不要太大,,叫做誤差函式的懲罰項,就是對模型中引數做限制。

我們訓練模型目的是使e盡可能的小,e中的越小代表訓練出來的一堆引數能更好的擬合訓練資料,代表我們訓練的模型越準確,代表我們模型的準確能力。我們希望能夠很好的擬合訓練資料,但是不能過擬合,那麼e後面的或者就是通過正則化項在保證得到的引數值較小,這裡或者可以說代表模型的推廣能力,也就是抗干擾能力。也就是說在控制兩者之間的平衡,可以通過設定保證e盡可能小的情況下,既能保證訓練出來的模型很好的擬合訓練資料,又能保證得到的模型引數值保證在較小狀態,不會發生過擬合。重寫誤差函式之後,誤差就相對來說不大準確,正確率下降,但是相應的犧牲了正確率,提高了推廣能力。

歸一化資料

老虎數量

麻雀數量

是否汙染2

1301

001如圖,要**某區域是否汙染,有兩個維度特徵:老虎數量和麻雀數量。這兩個維度特徵的量級不同,會導致訓練出來模型中老虎這個特徵對應的w引數大,而麻雀數量這個特徵對應的w引數小,容易導致引數小的特徵對目標函式的影響被覆蓋,所以需要對每個特徵的資料進行歸一化處理,以減少不同量級的特徵資料覆蓋其他特徵對目標函式的影響。

歸一化資料可以使各個特徵維度對目標函式的影響權重一致,提高迭代的求解的收斂速度。

最大最小值歸一化:,缺點是抗干擾能力弱,受離群值影響比較大,中間容易沒有資料。最大最小值歸一化後的資料落在[0,1]之間。假設某個特徵下有一組資料:1,2,3,4,5,100那麼對資料使用最大最小值歸一化後的值為:0,2/99,3/99,4/99,1。中間沒有資料,受離群值100的影響大。

方差歸一化: ,其中u是樣本的均值,是樣本的標準差(方差的開方,方差:所有點與均值的差值平方和)。方差歸一化抗干擾能力強,和所有資料有關,求標準差需要所有的值介入,若有離群值,會被抑制下來。但是歸一化後的資料最終的結果不一定落在0到1之間。

注意:理論上乙個模型演算法如果拿到訓練集所有的特徵一起訓練模型就要歸一化資料。決策樹演算法可以不歸一化資料。

調整資料的正負值-均值歸一化

邏輯回歸中,梯度下降法迭代求的過程如下:

可以轉換寫為: ,在步長值確定的情況下,a是乙個值,當一組值為同號時,調整w引數只能朝著乙個方向調節,要麼使 引數朝著正方向調節,要麼朝著負方向調節,如下圖,假設由調節到,如果w只能朝著乙個方向調節需要兩步,如果由沿直線調節到只需要一步,但是這樣就要向小的方向調節,需要向大的方向調節,這樣就有了矛盾,如何解決矛盾?這裡就需要使用均值歸一化。

均值歸一化是將原來的特徵值減去這個特徵在資料集中的均值,這樣就會使x的各個維度取值上有正有負,在迭代求引數時,能減少迭代的次數。

訓練方法選擇

訓練邏輯回歸的方法有:sgd和l-bfgs,兩者的區別為:

sgd:隨機從訓練集選取資料訓練,不歸一化資料,需要專門在外面進行歸一化,支援l1,l2正則化,不支援多分類。

l-bfgs:所有的資料都會參與訓練,演算法融入方差歸一化和均值歸一化。支援l1,l2正則化,支援多分類。

機器學習部分演算法簡介

本篇所提到的優化演算法均為啟發式的優化演算法,這類優化演算法並不依賴於具體問題本身。因此,對絕大多數場景都可 即插即用 也正是因為這一點,這類演算法在很多情況下都不是最優的演算法。即對於具體問題而言,可能存在著其他更加高效率的演算法。比如對於凸優化問題來說,最速下降法 牛頓法 共軛梯度法等經典的非線...

機器學習 邏輯回歸

邏輯回歸 線性回歸的式子,作為邏輯回歸的輸入 適用場景 二分類 線性回歸的輸入 sigmoid函式 分類 0,1 概率值 計算公式 當目標值為1時 損失函式的變化 當目標值為0時 損失函式的變化 下面用乙個例項來說明邏輯回歸的用法 癌症概率 部分資料的截圖如下 資料描述 699條樣本,供11列資料,...

機器學習 邏輯回歸

coding utf 8 import pandas as pd import seaborn as sns from sklearn.model selection import train test split import matplotlib.pyplot as plt 用於畫圖 from ...