1 邏輯回歸的定位
首先,邏輯回歸是一種分類(Classification)算法。比如說:
- 給定一封郵件,判斷是不是垃圾郵件
- 給出一個交易明細數據,判斷這個交易是否是欺詐交易
- 給出一個腫瘤檢查的結果數據,判斷這個腫瘤是否為惡性腫瘤
邏輯回歸是互聯網上最流行也是最有影響力的分類算法,也是深度學習(Deep Learning)的基本組成單元。
2 一個邏輯回歸的例子
比如有下面一組數據:
一門考試之前學生的復習時間與這個學生最后是否Pass這門考試的數據
通過這些數據,利用邏輯回歸算法進行模型訓練,可以得到最終的模型結果是這個樣子:
這樣,給出任何復習時間,就可以預測出是否通過的概率
3 邏輯回歸擬合函數:Sigmod函數(邏輯函數)
可以看到,邏輯回歸最后的分類結果是0/1,因此,我們選擇Sigmod函數(貌似是一個專業術語)來擬合訓練數據。Sigmod函數的形式如下,它的x可以無限取值,但是y就在(0,1)之間
對于最簡單的,只有一個自變量(x)的二元分類(y=0/1)邏輯回歸中,構造出來的擬合函數為
所以,要得到最終的模型,就是根據樣本點,計算a和b的值.
在上一節的復習時間和考試的例子中,最終計算出參數a=1.5046,b=-4.0777,因此可以得到下面的擬合函數的圖像:
4 模型參數的計算方法
Coursera上Stanford大學的機器學習課程是很好的入門課程(雖說入門,但是我學習起來還是特別的吃力),主講人Andrew Ng(吳恩達)原來是Google大腦的負責人,現在在百度負責百度大腦和深度學習,是業界最牛的人之一了。他的課程中詳細講解了在邏輯回歸中如何來計算模型的參數,我把結論的一頁截圖放在下面:
其中,J就是進行擬合的成本函數:
看起來比較復雜,用我們上一節的例子來解釋:
- m:代表給出的訓練樣本數,也就是20
- h函數:其實代表的是我們的Sigmoid函數,把樣本的X值帶進去,就得到的是參數a,b的函數
- y:就是樣本中實際的y,只有0,1兩個選擇
把樣本的數據都帶入,最后得到的就是參數a,b的一個方程,邏輯回歸就是求出一個最好的a,b的值,使得這個成本函數J的值最小。
那么,最終求解a和b就是一個純數學問題了,比如可以用最小二乘法和梯度下降法來求解,純數學的問題就不在這里展開了
5 多分類邏輯回歸
生活中不僅僅只有分成兩類的問題,還有分成多個類的問題,比如把郵件分成工作郵件、朋友郵件和垃圾郵件。
多分類的一般思想是:利用多次分成兩類,計算劃分到每一類的概率,取概率最大的。用郵件分類的例子來說就是:
- 將郵件分成“工作/非工作郵件”,可以根據上文的算法得出工作郵件的概率
- 將郵件分成“朋友/非朋友郵件”,計算出朋友郵件的概率
- 將郵件分成“垃圾/非垃圾郵件”,計算出垃圾郵件的概率
比較三個概率,取最大的那個概率,作為這個郵件的分類結果。