1. 程式人生 > >機器學習 -- 線性迴歸和邏輯迴歸的區別

機器學習 -- 線性迴歸和邏輯迴歸的區別

  迴歸演算法是一種通過最小化預測值與實際結果值之間的差距,而得到輸入特徵之間的最佳組合方式的一類演算法。對於連續值預測有線性迴歸等,而對於離散值/類別預測,我們也可以把邏輯迴歸等也視作迴歸演算法的一種。 
  線性迴歸與邏輯迴歸是機器學習中比較基礎又很常用的內容。線性迴歸主要用來解決連續值預測的問題,邏輯迴歸用來解決分類的問題,輸出的屬於某個類別的概率,工業界經常會用邏輯迴歸來做排序。在SVM、GBDT、AdaBoost演算法中都有涉及邏輯迴歸,迴歸中的損失函式、梯度下降、過擬合等知識點也經常是面試考察的基礎問題。

線性迴歸

  根據幾組已知資料{(x^{(1)},y^{(1)}),(x^{(2)},y^{(2)}),...,(x^{(i)},y^{(i)}),...,(x^{(n)},y^{(n)})}和擬合函式h_{\theta }(x)=\theta ^{T}x訓練其中未知引數\theta=[\theta_{1},\theta_{2},...,\theta_{i},...,\theta _{n}],使得擬合損失值J\left ( \theta \right )達到最小。然後用所得的擬合函式進行預測。

                                                                          \large \begin{align*} J(\theta) &= \frac{1}{2}\sum_{i=1}^m(h_\theta(x^{(i)}) - y^{(i)})^2\\&=\frac{1}{2}\sum_{i=1}^m(\theta^T x^{(i)} - y^{(i)})^2 \end{align*}

邏輯迴歸

       {(x^{(1)},y^{(1)}),(x^{(2)},y^{(2)}),...,(x^{(i)},y^{(i)}),...,(x^{(n)},y^{(n)})},y^{(i)}\in(0,1)和擬合函式g(z)=\frac1{1+e^{-z}},\:\:z=h_\theta (x)=\theta ^Tx訓練其中未知引數\theta=[\theta_{1},\theta_{2},...,\theta_{i},...,\theta _{n}]使得對數似然函式\ell \left ( \theta \right )最大。然後用所得的擬合函式進行二分類。 

                                                                         \large \begin{align*} \ell \left ( \theta \right )&=\log L\left ( \theta\right)\\&=\log\prod_{i=1}^{m}p(y^{(i)}|x^{(i)};\theta )\\&=\prod_{i=1}^{m}\frac{1}{\sqrt{2\pi}\sigma}exp{(-\frac{(y^{(i)}-\theta^Tx{^{(i)}})^2}{2\sigma^2})} \end{align*}

區別

       兩者都是迴歸,步驟和原理看起來很相似,到底有什麼地方不同呢?

線性迴歸 邏輯迴歸
目的 預測 分類
y^{(i)} 未知 {0,1}
函式 擬合函式 預測函式
引數計算方式 最小二乘 最大似然估計