邏輯迴歸總結

1、定義

1.1、定義

       簡單來說, 邏輯迴歸(Logistic Regression)是一種用於解決二分類(0 or 1)問題的機器學習方法,用於估計某種事物的可能性。比如某用戶購買某商品的可能性,某病人患有某種疾病的可能性,以及某廣告被用戶點擊的可能性等。

1.2、邏輯迴歸與線性迴歸的關係

       邏輯迴歸(Logistic Regression)與線性迴歸(Linear Regression)都是一種廣義線性模型(generalizedlinear model)。邏輯迴歸假設因變量 y 服從伯努利分佈,而線性迴歸假設因變量 y 服從高斯分佈。 因此與線性迴歸有很多相同之處,去除Sigmoid映射函數的話,邏輯迴歸算法就是一個線性迴歸。可以說,邏輯迴歸是以線性迴歸爲理論支持的,但是邏輯迴歸通過Sigmoid函數引入了非線性因素,因此可以輕鬆處理0/1分類問題。

2、預測函數

對於線性邊界的情況,邊界形式如下:

構造預測函數爲:

hθ(x)函數的值有特殊的含義,它表示結果取1的概率,因此對於輸入x分類結果爲類別1和類別0的概率分別爲:

3、代價函數

通過最大似然估計推導得到。下面詳細說明推導的過程。(4)式綜合起來可以寫成:

取似然函數爲:

對數似然函數爲:

最大似然估計就是要求得使l(θ)取最大值時的θ,其實這裏可以使用梯度上升法求解,求得的θ就是要求的最佳參數。我們可以乘一個負的係數-1/m,所以J(θ)取最小值時的θ爲要求的最佳參數:

4、梯度下降

求J(θ)的最小值可以使用梯度下降法,根據梯度下降法可得θ的更新過程:

式中爲α學習步長,下面來求偏導:

上式求解過程中用到如下的公式:

因此,(11)式的更新過程可以寫成:

因爲式中α本來爲一常量,所以1/m一般將省略,所以最終的θ更新過程爲:

代碼實現:https://github.com/sunjiaxin111/machine_learning/tree/master/logistic_regression