機器學習-邏輯斯特迴歸及其手寫實現梯度下降

一. 邏輯斯特迴歸簡介

本章介紹的另一種模型:模型斯特迴歸(logistic regression)。

它實質上是一個線性分類器。在之前介紹的線性分類器中,h(x)=Θ*x+Θ0,如果h(x)>0,則樣本x屬於正類,否定x屬於負類。直觀上的認識,如何h(x)越大,我們更加確信樣本屬於正類,相應的,h(x)越小,我們更加確信樣本屬於負類,而h(x)在0之間徘徊,很難確信屬於某一類。爲了與概率統計知識想結合,可以將h(x)這種“值"上的特性映射到[0,1]之間,logistic 函數(又成sigmoid)函數,就是一個非常優越的選擇,logistic 函數定義如下:
在這裏插入圖片描述
函數圖像爲:
在這裏插入圖片描述
本章的主題是介紹手寫梯度下降,原理就不想述,想了解的點傳送門

二. Python 代碼手寫實現

1. 解析數據集,分割特徵和label
在這裏插入圖片描述
數據集加載的是sklearn.datasets中鳶尾花(iris)的數據集,用它來測試LR的分類能力。
在這裏插入圖片描述
通過輸出可以看到,該數據集總共有100條樣本,每個樣本有4個特徵,label只有0和1,屬於一個二分類問題。在數據處理中,使用了一個常見的random.shuffle()函數來打亂數據集,再將訓練集與預測集按照4:1的比例分開,用作後面的測試。
2. 定義損失函數和梯度下降函數在這裏插入圖片描述
第一個函數爲sigmoid激活函數。
第二個爲交叉熵損失函數,分類一般使用的爲這個損失函數
第三個爲訓練函數,包含了梯度下降更新算法–權值w和偏差b的更新
3. 根據特徵數量初始化構建權重W和bias-B,進而用梯度下降函數進行訓練

在這裏插入圖片描述
可以從損失值畫出來的圖像看到,損失值有明顯的下降,收斂性較好。
4. 測試集效果
在這裏插入圖片描述

作爲基礎的機器學習知識,必須要掌握具體的實現過程。在面試和筆試中都會有所涉及。
代碼傳送門 >>>>>>

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章