1. 程式人生 > >21-城裏人套路深之用python實現邏輯回歸算法

21-城裏人套路深之用python實現邏輯回歸算法

rom 成功 基礎知識 壓力 dvp ilb nbsp html 感覺

如果和一個人交流時,他的思想像彈幕一樣飄散在空中,將是怎樣的一種景象?我想大概會毫不猶豫的點關閉的。生活為啥不能簡單明了?因為太直白了令人乏味。保留一些不確定性反而撲朔迷離,引人入勝。我們學習了線性回歸,對於損失函數及權重更新公式理解起來毫無壓力,這是具體直白的好處。然而遇到抽象晦澀的邏輯回歸,它的損失函數及權重更新公式就經歷了從p(取值範圍0~1)->p/(1-p)(取值範圍0~+oo)->z=log(p/(1-p))(取值範圍-oo~+oo)->p=1/1+e^(-z)->極大似然函數->log似然->log似然對於權重求導等一系列詭異而不失合理的變化。第一感覺是套路好深,變幻莫測到難以掌握。然而多看幾遍,再給高數一次機會,會發現這些公式並不那麽面目可憎。有時困難是在想象中逐漸長大的。

邏輯回歸是用於分類的一個強大算法,廣泛應用於銀行貸款、廣告精準投放等領域。關於它的基礎知識可以參考:

1、回歸XY | 數據江湖:回歸五式之第二式(邏輯回歸)https://mp.weixin.qq.com/s/MRlH5hdPRYNBem53xQBJNQ

2、零基礎掌握極大似然估計

https://mp.weixin.qq.com/s/Zur3PgwtYvVs9ZTOKwTbYg

3、邏輯回歸原理及實現(含最大似然函數及權重更新公式推導)

http://www.cnblogs.com/sxron/p/5489214.html

該搬的磚一塊都不能少啊,否則有一天,看似巍峨高聳的大樓轟然倒塌,那時,成功學和雞湯都幫不了你啦……

為了幫助理解,下面首先用代碼畫出sigmoid函數,也即1/1+e^(-z):

技術分享

技術分享

邏輯回歸的損失函數可以看作log似然函數加上負號:

技術分享

技術分享

損失函數關於Φ(z)的作圖代碼如下:

技術分享

技術分享

下面在Python中實現了邏輯回歸算法:

技術分享

技術分享

技術分享

技術分享

技術分享

技術分享

乍見之歡不如久處不厭,希望大家能守住內心的淡泊寧靜,在虛無的生命中找到永恒不變的意義。下周學習如何用scikit-learn完成分類任務,敬請期待:)

21-城裏人套路深之用python實現邏輯回歸算法