線性迴歸、邏輯迴歸和softmax方法
阿新 • • 發佈:2019-02-03
線性迴歸(Linear Regression,LR)
對於m個樣本,用引數進行估計,記為
定義損失函式
目標為最小化損失函式,可使用梯度下降法或者最小二乘法。
- 梯度下降法
求相對於的梯度,這裡上標i表示第i個樣本,下標j表示樣本的第j個特徵。在梯度的負方向上更新,即
- 最小二乘法
將樣本整體表示為矩陣X,結果表示為向量,則引數可由下式求得
但要求X為列滿秩(列滿秩要求行數大於列數,即樣本數量應大於特徵維度,否則為奇異矩陣,不可逆),並且求逆矩陣較慢。並且當出現多重共線性時無法計算。
線性迴歸注意事項
- 特徵歸一化:即對特徵資料進行歸一化操作,進行特徵縮放的好處有兩點,一是能夠提升模型的收斂速度,因為如果特徵間的資料相差級別較大的話,以兩個特徵為例,以這兩個特徵為橫縱座標繪製等高線圖,繪製出來是扁平狀的橢圓,這時候通過梯度下降法尋找梯度方向最終將走垂直於等高線的之字形路線,迭代速度變慢。但是如果對特徵進行歸一化操作之後,整個等高線圖將呈現圓形,梯度的方向是指向圓心的,迭代速度遠遠大於前者。二是能夠提升模型精度。關於歸一化可以參考模式識別之樣本資料歸一化(Normalization)與標準化(Standardization)
- 學習率α的選取:如果學習率α選取過小,會導致迭代次數變多,收斂速度變慢;學習率α選取過大,有可能會跳過最優解,最終導致根本無法收斂。可使用3倍法選擇學習率,即0.01,0.03,0.1,0.3,1,3···
- 繪製迭代次數與損失函式的曲線判斷優化效率即選擇合適的引數。此方法適用於梯度下降法。
- 線上性迴歸中,可能出現多重共線性,會對結果產生較大影響。多重共線性即不同特徵之間存在近似線性關係。解決方法可參考多重共線性的解決方法。
嶺迴歸(Ridge Regression)和Lasso迴歸
線上性迴歸中,存在以下問題:
- 變數間存在多重共線性時模型估計不準或者無法估計
- 樣本數較小時發生過擬合
為解決此類問題提出嶺迴歸和Lasso迴歸,其分別對應L2正則化和L1正則化。
嶺迴歸
損失函式修改為
為懲罰係數,可以限制引數的範圍,使用的是L2正則化項。
Lasso迴歸
損失函式修改為
為懲罰係數,可以限制引數的範圍,使用的是L1正則化項。
如果選取過大,會把所有引數θ均最小化,造成欠擬合,如果λ選取過小,會導致對過擬合問題解決不當
嶺迴歸和Lasso迴歸的聯絡與區別
二者都通過正則化項來減少過擬合,但Lasso使用L1正則化可以使更多引數變為0,起到特徵選擇的作用,一定程度上優於嶺迴歸。關於L1的稀疏作用參考文章L1相較於L2的稀疏性。
無論對於嶺迴歸還是lasso迴歸,本質都是通過調節λ來實現模型誤差vs方差的平衡調整。
邏輯迴歸
線性迴歸可用於解決資料擬合問題,要解決分類問題時需要將輸出轉化為標籤0和1。使用Sigmoid函式進行轉換,得到邏輯迴歸。
Sigmoid函式形式為:,其導數形式為
其影象如下。
則邏輯迴歸可表達為當y>=0.5認為屬於類別1,否則屬於類別0。
定義損失函式
這裡y可以看做x屬於類別1的概率,即。若假設分類問題滿足伯努利分佈,則。綜合兩式得到根據最大似然法估計引數,有