邏輯回歸調優方向
線性不可分的問題
線性不可分問題解決思路通過:將低維度問題轉化成高維度問題,低維空間的非線性問題,到了高維空間往往會成為線性問題。
調整分類閾值調優
某些場景下,邏輯回歸默認分類閾值是0.5,但是在某些場景下該默認閾值並不適用,例如得癌症,調整閾值為0.3比較靠譜。
魯棒性調優
魯棒是Robust的音譯,也就是健壯和強壯的意思,比如說,計算機軟件在輸入錯誤、磁盤故障、網絡過載或有意攻擊情況下,能不死機、不崩潰,就是該軟件的魯棒性,那么算法的魯棒性就是指這個算法的抗干擾能力強。邏輯回歸的決策邊界 如下(當維度只有兩個時,決策邊界是一條直線):
第一個模型相對於第二個來說各個維度的權重相對來說小,當遇到數據有噪聲時,抗干擾的能力強,數據擾動小。比如:當 時,第一個模型結果為90.3,第二個模型結果為903。當 有數據噪聲時,第一個模型結果為94.3,數據擾動為4,第二個模型結果為943,數據擾動為40。
可見模型維度權重小的模型抗干擾能力強,並不是模型維度權重越小,模型越好,如果模型權重很小,很小,那么模型受各個維度值變化的影響非常小,只與 參數有關,與其他維度的權重沒有關系,所有訓練數據和測試數據都會得到相同的結果,那就是欠擬合的狀態。如果模型維度權重太大,維度又多,這種模型當數據改變一點,擾動也大,對訓練數據擬合的好,當測試數據本身改變一點時,變化也大,反而成了一種過擬合的狀態。
1、解決權重過高引起的過擬合或者權重過低引起的欠擬合方法
無論是欠擬合或者過擬合模型都無法泛化(模型能夠應用到新樣本的能力)到新的樣本數據,無法預測准確的值。各個維度的值偏大容易過擬合(一般過多的維度特征,很少的訓練數據集,容易導致過擬合出現),各個維度的值偏小容易欠擬合,可見維度的權重不能太大,也不能太小,如何得到一組比較合適的權重值?這里就需要使用正則化。
- 范數比較好的解釋
剛學了矩陣論。。。其實也不知道正不正確。就是我是類比了以前學過的平均數概念,平均數不是有幾何平均數,算術平均數巴拉巴拉一堆么,但是都是用來度量一個整體的平均水平,只不過是用在了不同的地方。范數我覺得也是這樣,什么一范數二范數也是用來度量一個整體,比如兩個個班的人比較高度,你可以用班里面最高的人(向量無窮范數)去比較,也可以用班里所有人的身高總和比較(向量一范數),也可以求平均(幾何平均?忘記了。。)(類似向量二范數)。所以我認為范數就是一種度量方式。至於矩陣范數和向量范數,你可以把向量范數認為是長度為一的矩陣范數的特例,然后由於經常用,所以人們就單獨把向量范數拿出來專門探究他的性質(當然,在推導過程里面一般都是通過研究簡單的,如向量,在擴展到困難的,如矩陣)聲明,以上都是我的主觀臆測,很可能不對,如果錯了請告訴我,謝啦~
這里范數表示一種整體矩陣的度量方式。
- 范數的使用,lamda可以為0.3,0.4最好
范數是整體解范圍的一個度量,當進行計算損失函數的時候,原始loss減少了,如果整體姐空間第二范數過大也就是方差可能過大,存在過大的值的時候,就會導致loss變大,loss會朝着,w的第二范數減少的方向進行修改,從而限制解空間的,整體方差或者權值出現過大。優化過擬合的過程。
2、歸一化對權值造成影響的數據
老虎數量 麻雀數量 是否污染
2 50640 1
3 55640 0
1 62020 0
0 54642 1
如圖,要預測某區域是否污染,有兩個維度特征:老虎數量和麻雀數量。這兩個維度特征的量級不同,會導致訓練出來模型中老虎這個特征對應的w參數大,而麻雀數量這個特征對應的w參數小,容易導致參數小的特征對目標函數的影響被覆蓋,所以需要對每個特征的數據進行歸一化處理,以減少不同量級的特征數據覆蓋其他特征對目標函數的影響。
這里數據量級不一樣對最后的權值造成影響,對某些特征的w會極其小,某些特征的w極其大,影響邏輯回歸模型的魯棒性。歸一化數據可以使各個特征維度對目標函數的影響權重一致,提高迭代的求解的收斂速度。
- 歸一化的方式極其特點。
最大最小值歸一化: ,缺點是抗干擾能力弱,受離群值影響比較大,中間容易沒有數據。最大最小值歸一化后的數據落在[0,1]之間。假設某個特征下有一組數據:1,2,3,4,5,100那么對數據使用最大最小值歸一化后的值為:0,2/99,3/99,4/99,1。中間沒有數據,受離群值100的影響大。
方差歸一化: ,其中u是樣本的均值, 是樣本的標准差(方差的開方,方差:所有點與均值的差值平方和)。方差歸一化抗干擾能力強,和所有數據有關,求標准差需要所有的值介入,若有離群值,會被抑制下來。但是歸一化后的數據最終的結果不一定落在0到1之間。
注意:理論上一個模型算法如果拿到訓練集所有的特征一起訓練模型就要歸一化數據。決策樹算法可以不歸一化數據。
均值歸一化與邏輯回歸
邏輯回歸訓練方法對比,哪些會自動歸一化,哪些需要單獨專門歸一化
訓練邏輯回歸的方法有:SGD和L-BFGS,兩者的區別為:
SGD:隨機從訓練集選取數據訓練,不歸一化數據,需要專門在外面進行歸一化,支持L1,L2正則化,不支持多分類。
L-BFGS:所有的數據都會參與訓練,算法融入方差歸一化和均值歸一化。支持L1,L2正則化,支持多分類。