1. 程式人生 > >邏輯迴歸演算法推導及Python實現

邏輯迴歸演算法推導及Python實現

寫在前面:

1、好多邏輯迴歸的演算法推導要麼直接省略,要麼寫的比較難以看懂,比如寫成矩陣求導,繁難難懂,本文進行推導,會鏈式求導法則應當就能看懂

2、本文參考若干文章,寫在附註處,如果參考未寫引用,還望提出

2、本文後續可能不定時更新,如有錯誤,歡迎提出

 

一、最大似然估計(附1)

Logistic Regression Classifier邏輯迴歸主要思想就是用最大似然概率方法構建出方程,為最大化方程,利用牛頓梯度上升求解方程引數。

  • 優點:計算代價不高,易於理解和實現。
  • 缺點:容易欠擬合,分類精度可能不高。
  • 使用資料型別:數值型和標稱型資料

介紹邏輯迴歸之前,我們先看一問題,有個黑箱,裡面有白球和黑球,如何判斷它們的比例。

我們從裡面抓3個球,2個黑球,1個白球。這時候,有人就直接得出了黑球67%,白球佔比33%。這個時候,其實這個人使用了最大似然概率的思想,通俗來講,當黑球是67%的佔比的時候,我們抓3個球,出現2黑1白的概率最大。我們直接用公式來說明。

假設黑球佔比為P,白球為1-P。於是我們要求解MAX(P*P*(1-P)),顯而易見P=67%(求解方法:對方程求導,使導數為0的P值即為最優解)

我們看邏輯迴歸,解決的是二分類問題,是不是和上面黑球白球問題很像,是的,邏輯迴歸也是最大似然概率來求解。

假設我們有n個獨立的訓練樣本{(x1, y1) ,(x2, y2),…, (xn, yn)},y={0, 1}。那每一個觀察到的樣本(xi, yi)出現的概率是: 

è¿éåå¾çæè¿°
 
上面為什麼是這樣呢?當y=1的時候,後面那一項是不是沒有了,那就只剩下x屬於1類的概率,當y=0的時候,第一項是不是沒有了,那就只剩下後面那個x屬於0的概率(1減去x屬於1的概率)。所以不管y是0還是1,上面得到的數,都是(x, y)出現的概率。那我們的整個樣本集,也就是n個獨立的樣本出現的似然函式為(因為每個樣本都是獨立的,所以n個樣本出現的概率就是他們各自出現的概率相乘): 

è¿éåå¾çæè¿°

如上,根據最大似然估計我們得到了似然函式,上述這一段主要是要理解極大似然估計的思想。

附錄2:

這樣,在給定一定的樣本之後,我們可以構造出似然函式,然後可以使用極大似然估計MLE的思想來求解引數。

但是,為了滿足最小化風險理論,我們可以將MLE的思想轉化為最小化風險化理論,最大化似然函式其實就等價於最小化負的似然函式。

對於MLE,就是利用已知的樣本分佈,找到最有可能(即最大概率)導致這種分佈的引數值;或者說是什麼樣的引數才能使我們觀測到目前這組資料的概率最大。

二、演算法推導過程:

分析:

三、程式原始碼

 

 

 

附1:

最大似然、程式碼
作者:a_achengsong 
來源:CSDN 
原文:https://blog.csdn.net/csqazwsxedc/article/details/69690655 
版權宣告:本文為博主原創文章,轉載請附上博文連結!

附錄2:

演算法推導
作者:jediael_lu 
來源:CSDN 
原文:https://blog.csdn.net/jediael_lu/article/details/77852060 
版權宣告:本文為博主原創文章,轉載請附上博文連結!

附錄3: