機器學習(四)—邏輯回歸LR
1、關於模型在各個維度進行不均勻伸縮後,最優解與原來等價嗎?
答:等不等價要看最終的誤差優化函數。如果經過變化後最終的優化函數等價則等價。明白了這一點,那麽很容易得到,如果對原來的特征乘除某一常數,則等價。做加減和取對數都不等價。
2. 過擬合和欠擬合如何產生,如何解決?
欠擬合:根本原因是特征維度過少,導致擬合的函數無法滿足訓練集,誤差較大;
解決方法:增加特征維度;
過擬合:根本原因是特征維度過大,導致擬合的函數完美的經過訓練集,但對新數據的預測結果差。
解決方法:(1)減少特征維度;(2)正則化,降低參數值。
減少過擬合總結:過擬合主要是有兩個原因造成的:數據太少+模型太復雜
(1)獲取更多數據 :從數據源頭獲取更多數據;數據增強(Data Augmentation)
(2)使用合適的模型:減少網絡的層數、神經元個數等均可以限制網絡的擬合能力;
(3)dropout
(3)正則化,在訓練的時候限制權值變大;
(4)限制訓練時間;通過評估測試;
(4)增加噪聲 Noise: 輸入時+權重上(高斯初始化)
(5)結合多種模型: Bagging用不同的模型擬合不同部分的訓練集;Boosting只使用簡單的神經網絡;
3、關於邏輯回歸,連續特征離散化的好處
在工業界,很少直接將連續值作為特征餵給邏輯回歸模型,而是將連續特征離散化為一系列0、1特征交給邏輯回歸模型,這樣做的優勢有以下幾點:
-
稀疏向量內積乘法運算速度快,計算結果方便存儲,容易scalable(擴展)。
-
離散化後的特征對異常數據有很強的魯棒性:比如一個特征是年齡>30是1,否則0。如果特征沒有離散化,一個異常數據“年齡300歲”會給模型造成很大的幹擾。
-
邏輯回歸屬於廣義線性模型,表達能力受限;單變量離散化為N個後,每個變量有單獨的權重,相當於為模型引入了非線性,能夠提升模型表達能力,加大擬合。
-
離散化後可以進行特征交叉,由M+N個變量變為M*N個變量,進一步引入非線性,提升表達能力。
-
特征離散化後,模型會更穩定,比如如果對用戶年齡離散化,20-30作為一個區間,不會因為一個用戶年齡長了一歲就變成一個完全不同的人。當然處於區間相鄰處的樣本會剛好相反,所以怎麽劃分區間是門學問。
大概的理解:1)計算簡單;2)簡化模型;3)增強模型的泛化能力,不易受噪聲的影響。
4、一些問題:
解決過擬合的方法:數據擴充、正則項、提前終止
如何用LR建立一個廣告點擊的模型:
特征提取—>特征處理(離散化、歸一化、onehot等)—>找出候選集—->模型訓練,得到結果
為什麽LR需要歸一化或取對數?
符合假設、利於分析、歸一化也有利於梯度下降
為什麽LR把特征離散化後效果更好?
引入非線性
機器學習(四)—邏輯回歸LR