今天大概看了一下還沒做的ps1,裡面第一個道題的資料集正好可以拿來做一次邏輯回歸的實戰,正好學到現在還沒正兒八經寫過代碼,是以打算拿這個練練手,具體資料集我建立了一個GitHub賬号給大家分享,裡面也有詳細的代碼和一些思路:
https://github.com/cyr429/Machine-Learning-master/tree/master/ML-others/LogisticRegression01
這裡說一下要用到的知識都是來自這次的lecture,請先熟知基本知識再進行下面的實戰:
https://blog.csdn.net/cyr429/article/details/102458430
在邏輯回歸中注意他推導式子的時候給定的假設是y的取值為0或1,但是資料集裡是-1或1,1是正樣本,-1是負樣本,解決辦法是再推導一次或者轉換資料集,我比較懶選了後者,畢竟一句clip就行了。
(其實前者也不麻煩,這個時候有
,然後再求出對數似然函數再求導就好了)
為了保證theta0項的存在我使用hstack往x資料的左邊加了一列1,這樣就滿足了:
(因為x0=1)
我們要用到的式子主要是:
和SGD更新規則:
其實可供選擇的更新規則不止SGD一種,對于SGD,BGD和牛頓法的選擇請移步:
https://blog.csdn.net/cyr429/article/details/103090851
原理就這麼多,具體代碼等請移步GitHub:
https://github.com/cyr429/Machine-Learning-master/tree/master/ML-others/LogisticRegression01