邏輯迴歸演算法推導及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: