摘要:
1.算法概述
2.算法推導
3.算法特性及優缺點
4.注意事項
5.實現和具體例子
6.適用場合
內容:
1.算法概述
最基本的LR模型適用於二分類(一般label是0,1)問題;這個模型以樣本特征的線性組合sigma(theta * Xi)作為自變量,使用sigmoid函數將自變量映射到(0,1)上。
其中sigmoid函數為:
函數圖形為: 其中sigmoid函數的導數是:
從而得到LR的模型函數為:,其中
待定。
2.算法推導
2.1 MLE(最大似然估計)求解參數的值
建立的似然函數:
對上述函數求對數:
做下函數變換:
$ \text{從而得到LR的損失函數:} Loss(h_\theta(x_i),y_i)=\frac{1}{m}\sum_{i=1}^{m}(y_ilog(1+e^{-\theta^{T}x_i})+(1-y_i)log(1+e^{\theta^{T}x_i})) $
注:LR的損失函數可以看作是負對數損失或者說模型推導過程就是一個使用極大對數似然法來估計參數的過程。
通過梯度下降法求最小值。θ的初始值可以全部為1.0,更新過程為:(j表樣本第j個屬性,共n個;a表示步長--每次移動量大小,可自由指定)
求導:
最終得到θ的迭代公式:
2.2 矩陣形式(矢量化)的解:
約定訓練數據的矩陣形式如下,x的每一行為一條訓練樣本,而每一列為不同的特征取值:
g(A)的參數A為一列向量,所以實現g函數時要支持列向量作為參數,並返回列向量。由上式可知hθ(x)-y可由
g(A)-y一次計算求得。
θ更新過程可以改為:
綜上所述,Vectorization后θ更新的步驟如下:
(1)求A=X*θ(此處為矩陣乘法,X是(m,n+1)的矩陣,θ是n+1維列向量,A就是m維向量
(2)求E=g(A)-y(E、y是m維列向量)
(3)求 (a表示步長)
2.4 多分類模型softmax regression
模型函數:
$ Loss(h_\theta(x_i),y_i)=\frac{1}{m}\sum_{i=1}^{m}(y_ilog(1+e^{-\theta^{T}x_i})+(1-y_i)log(1+e^{\theta^{T}x_i})) $
損失函數:
,其中
3.算法特性及優缺點
LR分類器適用數據類型:數值型和標稱型數據。
可用於概率預測,也可用於分類。
其優點是計算代價不高,易於理解和實現;其缺點是容易欠擬合,分類精度可能不高。
各feature之間不需要滿足條件獨立假設(相比NB),但各個feature的貢獻是獨立計算的(相比DT)。
相比DT,注重一個樣本的總體特征表現
4.注意事項
學習率:值太小則收斂慢,值太大則不能保證迭代過程收斂(邁過了極小值)。
歸一化:多維特征的訓練數據進行回歸采取梯度法求解時其特征值必須做scale,確保特征的取值范圍在相同的尺度內計算過程才會收斂
最優化方法選擇:L-BFGS(限制內存-擬牛頓迭代)收斂速度快;
正則化:L1正則化可以選擇特征,去除共線性影響;損失函數中使用了L1正則化,避免過擬合的同時輸出稀疏特征;
(來自http://scikit-learn.org/stable/modules/linear_model.html#logistic-regression)
離散化:邏輯回歸屬於廣義線性模型,表達能力受限;單變量離散化為N個后,每個變量有單獨的權重,相當於為模型引入了非線性,能夠提升模型表達能力,加大擬合。
(知乎問答:連續特征的離散化:在什么情況下將連續的特征離散化之后可以獲得更好的效果?)
5.實現和具體例子
Logistic回歸的主要用途:
6.適用場合
是否支持大規模數據:支持,並且有分布式實現
特征維度:可以很高
是否有 Online 算法:有(參考自)
特征處理:支持數值型數據,類別型類型需要進行0-1編碼;需要歸一化