機器學習演算法 之邏輯迴歸以及python實現
阿新 • • 發佈:2019-01-03
下面分為兩個部分:
1. 邏輯迴歸的相關原理說明
2. 通過python程式碼來實現一個梯度下降求解邏輯迴歸過程
邏輯迴歸(Logistic Regression)
首先需要說明,邏輯迴歸屬於分類演算法。分類問題和迴歸問題的區別在於,分類問題的輸出是離散的,如(0,1,2,…)而回歸問題的輸出是連續的。
我們將要用來描述這個分類問題的標記如下:
代表訓練集中例項的數量
代表特徵的數量
表示第個訓練例項,是特徵矩陣的第i行,是一個向量
表示特徵矩陣中第行的第個特徵,也就是第個訓練例項的第個特徵
代表目標變數,也就是輸出變數
代表訓練集中的一個例項
代表第個觀察例項
代表學習演算法的函式,或者假設(hypothesis)
假設函式
邏輯迴歸是線上性迴歸的基礎上,轉化而來的。它是用來解決經典的二分類問題
首先說明下,什麼是二分類問題
我們將輸出結果可能屬於的兩個類分別稱為負向類(negative class)和正向類(positive class),則輸出結果屬於0,1 ,其中 0 表示負向類,1 表示正向類。
我們將線性迴歸的輸出記為:
我們知道,線性迴歸的輸出結果是實數域中連續的,要想解決二分類問題,這時,我們引入Sigmoid函式
對應影象如上圖,可見,自變數取值為任意實數,值域為[0,1]
經過sigmoid函式,就將任意的輸入對映到了[0,1]區間內,我們線上性迴歸中可以得到一個預測值,再將該值進對映到Sigmoid函式中,這樣就完成了由值到概率的轉換,這就是邏輯迴歸中的分類任務
所以,我們邏輯迴歸的假設函式為:
邏輯迴歸的假設函式即為對應y=1的概率值,即我們可以用下式表示:
一般情況下,我們判定 當時,預測,當時,預測。
目標函式
將上述概率進行整合,我們得出:
由於每個樣本最後得出的概率值都是獨立的,所以,對於所有樣本來說,我們可以得到對應似然函式為: