Logistic 回归(sigmoid函数,手机的评价,梯度上升,批处理梯度,随机梯度,从疝气病症预测病马的死亡率...
(手機(jī)的顏色,大小,用戶體驗(yàn)來加權(quán)統(tǒng)計(jì)總體的值)極大似然估計(jì)MLE
1.Logistic回歸
Logistic regression (邏輯回歸),是一種分類方法,用于二分類問題(即輸出只有兩種)。如用于廣告預(yù)測(cè),也就是根據(jù)某廣告被用戶點(diǎn)擊的可能性,把最可能被用戶點(diǎn)擊的廣告擺在用戶能看到的地方,結(jié)果是用戶要么點(diǎn)擊要么不點(diǎn)擊。
通常兩類使用類別標(biāo)號(hào)0和1表示,0表示不發(fā)生,1表示發(fā)生。
問題引入
例如:有100個(gè)手機(jī),其中有30個(gè)是你喜歡的,70個(gè)是不喜歡的。現(xiàn)預(yù)測(cè)你對(duì)第101個(gè)手機(jī)的喜好。這是一個(gè)兩類問題,喜歡與不喜歡。
顯然這是一個(gè)二分類問題,我們對(duì)第101個(gè)手機(jī)進(jìn)行預(yù)測(cè)分類,分為喜歡和不喜歡兩個(gè)類別。
我們需要對(duì)手機(jī)取特征(屬性),比如價(jià)格,外觀,用戶體驗(yàn)。簡(jiǎn)單處理,只考慮3個(gè)方面(即3個(gè)特征)。綜合考慮這些因素,并且把這些值進(jìn)行數(shù)字化的表示。數(shù)字越大說明越喜歡,越小越不喜歡。
怎么數(shù)字化表示這些量呢?
對(duì)每部手機(jī)對(duì)應(yīng)價(jià)格,外觀,用戶體驗(yàn)都可以給出一個(gè)具體的數(shù)值。
我們回憶一下貝葉斯分類:
?
2. Sigmoid 函數(shù)
?
3.Sigmoid函數(shù)性質(zhì)
分類性質(zhì)
回顧我們的后驗(yàn)概率如何分類的,每個(gè)可以觀測(cè)的樣本都有屬于某類的概率。分類時(shí)候選取后驗(yàn)概率大的值進(jìn)行分類。這里是兩分類問題每個(gè)樣本均可帶入P(y=1|x)和P(y=0|x)誰的概率值大,我們就將樣本歸入某類。
現(xiàn)在分類模型為下邊公式,但含有未知量 ,只要求出 就可以對(duì)樣本,就可以帶入樣本就行計(jì)算,對(duì)樣本進(jìn)行分類。
如何求未知參數(shù) ?我們有m個(gè)樣本,思路是建立一個(gè)目標(biāo)函數(shù),求目標(biāo)函數(shù)極值。極值處的 值,就是我們最優(yōu)未知參數(shù)值。
參數(shù)估計(jì)
假設(shè)分類的概率
上面的概率可以寫到一起 (類似二項(xiàng)分布)
m個(gè)樣本的似然函數(shù)為
對(duì)數(shù)似然函數(shù)
使得似然函數(shù)值最大?梯度下降(上升)法。
似然函數(shù)求導(dǎo)
常規(guī)方法時(shí)效。故用梯度下降法
Logistic回歸中是未知參數(shù) ,目標(biāo)是求出 。通過構(gòu)建似然函數(shù),目標(biāo)使似然函數(shù)最大。
回顧我們梯度下降法。
? (J是上邊的L函數(shù),手誤)問題解決
4.梯度上升法
目標(biāo)使似然函數(shù)最大,我們可以使用梯度上升法進(jìn)行迭代。
梯度下降法根據(jù)樣本使用的不同,一次使用所有樣本更新參數(shù)為批處理梯度下降法。一次只隨機(jī)使用一個(gè)樣本來更新參數(shù)隨機(jī)梯度下降法。
同樣我們的Logistic回歸可以使用批處理梯度上升法和隨機(jī)梯度上升法。梯度上升法和梯度下降法都是尋找函數(shù)的極值,只是搜索方向的不同而已。根據(jù)具體函數(shù)的性質(zhì),進(jìn)行選擇,兩者沒有本質(zhì)的不同。
我們?nèi)菀淄ㄟ^把函數(shù)轉(zhuǎn)換成,把極大化問題轉(zhuǎn)換成極小化問題。函數(shù)加負(fù)號(hào)即可。
5.批處理梯度下降法
6.隨機(jī)梯度下降法
7.代碼實(shí)現(xiàn)
?
準(zhǔn)備數(shù)據(jù),樣例數(shù)據(jù)如下,前兩列分別為x1和x2值,第3列為數(shù)據(jù)的類別,這樣的數(shù)據(jù)有100條。
批處理梯度下降(上升)算法計(jì)算最佳回歸系數(shù)
矩陣為什么要轉(zhuǎn)置?
運(yùn)行測(cè)試
if __name__ == "__main__":
dataMat,classLabels=loadDataSet()
weights=gradAscent(dataMat, classLabels)
plotBestFit(weights.getA())
8.隨機(jī)梯度下降(上升)法SGD (stochastic gradient descent)
運(yùn)行測(cè)試
if __name__ == "__main__":
dataAttr, labelMat = loadDataSet()
weights = stocGradAscent0(array(dataAttr), labelMat)
plotBestFit(weights)
9.改進(jìn)的隨機(jī)梯度下降
運(yùn)行測(cè)試
if __name__ == "__main__":
dataAttr, labelMat = loadDataSet()
weights = stocGradAscent1(array(dataAttr), labelMat)
plotBestFit(weights)
運(yùn)行結(jié)果對(duì)比
比較原始的隨機(jī)梯度下降和改進(jìn)后的梯度下降,可以看到兩點(diǎn)不同:
1)系數(shù)不再出現(xiàn)周期性波動(dòng)。
2)系數(shù)可以很快的穩(wěn)定下來,也就是快速收斂。這里只迭代了20次就收斂了。而上面的隨機(jī)梯度下降需要迭代200次才能穩(wěn)定。
(a)梯度下降算法迭代500次。
(b)隨機(jī)梯度下降算法迭代200次。
(c)改進(jìn)的隨機(jī)梯度下降算法迭代20次。
(d)改進(jìn)的隨機(jī)梯度下降算法迭代200次。
10.示例:從疝氣病癥預(yù)測(cè)病馬是否存活
一、處理數(shù)據(jù)中的缺失值
二、用Logistic回歸進(jìn)行分類
運(yùn)行測(cè)試
if __name__ == "__main__":
multiTest()
11.總結(jié)
轉(zhuǎn)載于:https://www.cnblogs.com/chaoren399/p/4850427.html
總結(jié)
以上是生活随笔為你收集整理的Logistic 回归(sigmoid函数,手机的评价,梯度上升,批处理梯度,随机梯度,从疝气病症预测病马的死亡率...的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 退押金无望:ofo 小黄车已彻底无法登录
- 下一篇: 应用服务器性能优化