機器學習算法之 logistic、Softmax 回歸

邏輯回歸本質是分類問題,而且是二分類問題,不屬于回歸,但是為什么又叫回歸呢。我們可以這樣理解,邏輯回歸就是用回歸的辦法來做分類。它是在線性回歸的基礎上,通過Sigmoid函數進行了非線性轉換,從而具有更強的擬合能力

sigmoid 函數

https://blog.csdn.net/fenglepeng/article/details/104829873

Logistic回歸分類器

為了實現Logistic回歸分類器,我們可以在每個特征上都乘以一個回歸系數,然后把所有的結果值相加,將這個總和代入Sigmoid函數中,進而得到一個范圍在0~1之間的數值。任何大于0.5的數據被分入1類,小于0.5即被歸入0類。所以,Logistic回歸也可以被看成是一種概率估計。

\begin{aligned}p&=h_\theta(x)=g(\theta^Tx)=\frac{1}{1+e^{-\theta^Tx}} \end{aligned}

所以說,Logistic回歸分類器可以看成線性回歸與sigmoid的混合函數,是一個二分類的模型(這里是取的0和1,有的算法是+1和-1)

\hat{y}=\left\{\begin{matrix} 0,P(\hat{y}=1)>p\\ 1,P(\hat{y}=0)>p \end{matrix}\right.

在用于分類時,實際上是找一個閾值,大于閾值的屬于1類別,小于的屬于0類別。(閾值是可根據具體情況進行相應變動的)

Logistic回歸及似然函數

我們假設

\begin{aligned}P(y=1|x;\theta)&=h_\theta(x) \\P(y=0|x;\theta)&=1-h_\theta(x) \end{aligned}

把兩個式子結合起來

\begin{aligned}P(y|x;\theta)&=(h_\theta(x))^y(1-h_\theta(x))^{(1-y)}\end{aligned}

運用極大似然估計得到似然函數

\begin{aligned}L(\theta)&=p(\vec{y}|X;\theta) \\&=\prod_{i=1}^{m}p(y^{(i)}|x^{(i)};\theta) \\&=\prod_{i=1}^{m}(h_\theta(x^{(i)}))^{y^{(i)}}(1-h_\theta(x^{(i)}))^{(1-y^{(i)})}\end{aligned}

累乘不好求,我們可以求其對數似然函數。最值的問題,求導(第三行到第四行使用了sigmoid函數求導)

\begin{aligned}l(\theta)&=\log L(\theta) \\&=\sum_{i=1}^m(y^{(i)}\log h_\theta(x^{(i)})+(1-y^{(i)})\log(1-h_\theta(x^{(i)}))) \\\frac{\partial l(\theta)}{\partial\theta_j}&=\sum_{i=1}^m(\frac{y^{(i)}}{h_\theta(x^{(i)})}-\frac{1-y^{(i)}}{1-h_\theta(x^{(i)})})\cdot\frac{\partial h_\theta(x^{(i)})}{\partial\theta_j} \\&=\sum_{i=1}^m(\frac{y^{(i)}}{g(\theta^Tx^{(i)})}-\frac{1-y^{(i)}}{1-g(\theta^Tx^{(i)})})\cdot\frac{\partial g(\theta^Tx^{(i)})}{\partial\theta_j} \\&=\sum_{i=1}^m(\frac{y^{(i)}}{g(\theta^Tx^{(i)})}-\frac{1-y^{(i)}}{1-g(\theta^Tx^{(i)})})\cdot g(\theta^Tx^{(i)})(1-g(\theta^Tx^{(i)}))\cdot\frac{\partial\theta^Tx^{(i)}}{\partial\theta_j} \\&=\sum_{i=1}^m(y^{(i)}(1-g(\theta^Tx^{(i)}))-(1-y^{(i)})g(\theta^Tx^{(i)}))\cdot x_j^{(i)} \\&=\sum_{i=1}^m(y^{(i)}-g(\theta^Tx^{(i)}))\cdot x_j^{(i)}\end{aligned}

求解,使用批量梯度下降法BGD

\theta_j=\theta_j+\alpha\sum_{i=1}^m(y^{(i)}-h_\theta(x^{(i)}))x_j^{(i)}

或者隨機梯度下降法SGD

\theta_j=\theta_j+\alpha(y^{(i)}-h_\theta(x^{(i)}))x_j^{(i)}

可以發現邏輯回歸與線性回歸梯度下降求解的形式類似,唯一的區別在于假設函數hθ(x)不同,線性回歸假設函數為θTx,邏輯回歸假設函數為Sigmoid函數。

線性回歸模型服從正態分布,邏輯回歸模型服從二項分布(Bernoulli分布),因此邏輯回歸不能應用最小二乘法作為目標/損失函數,所以用梯度下降法。

極大似然估計與Logistic回歸損失函數

我們要讓對數似然函數最大,也就是他的相反數 -l(\theta )最小。而 -l(\theta ) 最小化,則可以看成損失函數,求其最小化:

loss = -l(\theta )

似然函數:

\begin{aligned}L(\theta)&=\prod_{i=1}^mp(y^{(i)}|x^{(i)};\theta) =\prod_{i=1}^mp_i^{y^{(i)}}(1-p_i)^{1-y^{(i)}} \end{aligned}

logistic函數

\begin{aligned}p_i&=h_\theta(x^{(i)}) =\frac{1}{1+e^{-\theta^Tx^{(i)}}} \end{aligned}

帶入得

\begin{aligned}\\l(\theta)&=\ln L(\theta) \\&=\sum_{i=1}^m\ln[p_i^{y^{(i)}}(1-p_i)^{1-y^{(i)}}] \\&=\sum_{i=1}^m\ln[(\frac{1}{1+e^{-f_i}})^{y^{(i)}}(\frac{1}{1+e^{f_i}})^{1-y^{(i)}}] \\loss(y^{(i)},\hat{y^{(i)}})&=-l(\theta) \\&=\sum_{i=1}^m[y^{(i)}\ln(1+e^{-f_i})+(1-y^{(i)})\ln(1+e^{f_i})] \\&=\begin{cases}\sum_{i=1}^m\ln(1+e^{-f_i}), &y^{(i)}=1 \\ \sum_{i=1}^m\ln(1+e^{f_i}), &y^{(i)}=0\end{cases} \\\Rightarrow loss(y^{(i)},\hat{y^{(i)}})&=\sum_{i=1}^m\ln(1+e^{(1-2y^{(i)})\theta^Tx^{(i)}}), y^{(i)}=\begin{cases}1 \\ 0\end{cases}\end{aligned}

這個結果就是交叉熵損失函數。

總結

就一句話:通過以上過程,會發現邏輯回歸的求解,跟線性回歸的求解基本相同。

多分類問題(Multi-class classification)

????????對于分類多于2個的問題, 可以將其看做二分類問題,即以其中一個分類作為一類,剩下的其他分類作為另一類,多分類問題的假設函數為?

h_{0}^{i}(x)=p(y=i|x;\theta)

one-vs-all/rest 問題解決方法:

  • 訓練一個邏輯回歸分類器,預測 i 類別 y=i 的概率;
  • 對一個新的輸入值x,為了作出類別預測,分別在k個分類器運行輸入值,選擇h最大的類別?

Softmax回歸模型??

Softmax回歸是logistic回歸的一般化模型,適用于k(k>2)分類的問題,第k類的參數為向量\theta_k,組成的二維矩陣為\theta _{k*n}(k為類別數,n為特征數,即為每一個類別構建一個\theta_k,用到的是ova思想)。

參考鏈接:機器學習之單標簽多分類及多標簽多分類

Softmax函數的本質就是將一個k維的任意實數向量映射成為另一個k維的實數向量,其中向量中的每個元素的取值都介于(0,1)之間。

Softmax回歸的概率函數為:

p(y=k|x;\theta)=\frac{e^{\theta_k^Tx}}{\sum_{l=1}^{K}e^{\theta_l^{T}x}}, k=1,2,...,K
注釋:?e^{\theta_k^Tx}計算的是,他屬于第k類的回歸值,\sum_{l=1}^{K}e^{\theta_l^{T}x}計算的是他屬于每個類別的累加,用e的指數是為了加大 大的類別的影響

Softmax回歸的似然估計

似然函數:

\begin{aligned}L(\theta)&=\prod_{i=1}^m\prod_{k=1}^Kp(y=k|x^{(i)};\theta)^{y_k^{(i)}} \\&=\prod_{i=1}^m\prod_{k=1}^K(\frac{e^{\theta_k^Tx}}{\sum_{l=1}^Ke^{\theta_l^Tx}})^{y_k^{(i)}}\end{aligned}

對數似然函數:

\begin{aligned}l(\theta)&=\ln L(\theta) \\&=\sum_{i=1}^m\sum_{k=1}^Ky_k^{(i)}(\theta_k^Tx^{(i)}-\ln\sum_{l=1}^Ke^{\theta_l^Tx^{(i)}}) \\l(\theta)&=\sum_{k=1}^Ky_k(\theta_k^Tx-\ln\sum_{l=1}^Ke^{\theta_l^Tx})\end{aligned}

?

?推導和Logistic回歸類似,只是將分類的個數從2擴展到k的情形。Softmax算法的損失函數:

梯度下降法

總結

  • 線性回歸模型一般用于回歸問題,邏輯回歸和Softmax回歸模型一般用于分類問題;
  • 求θ的主要方式是梯度下降算法,該算法是參數優化的重要手段,主要使用SGD或MBGD;
  • 邏輯回歸/Softmax回歸模型是實際問題中解決分類問題的最重要的方法;
  • 廣義線性模型對樣本的要求不必一定要服從正態分布,只要服從指數分布簇(二項分布、Poisson分布、Bernoulli分布、指數分布等)即可;廣義線性模型的自變量可以是連續的也可以是離散的。
    ?

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:
http://www.pswp.cn/news/454551.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/454551.shtml
英文地址,請注明出處:http://en.pswp.cn/news/454551.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

html上傳預覽圖片原理,關于html中圖片上傳預覽的實現

functionchange() {varpicdocument.getElementById("preview"),filedocument.getElementById("f");//得到后綴名varextfile.value.substring(file.value.lastIndexOf(".")1).toLowerCase();//gif在IE瀏覽器暫時無法顯示if(ext!png&&ext!…

程序員成功之路

程序員成功之路 ——The road ahead for programmer(演講稿) 一、我很羨慕在座的各位同學,因為你們是中國未來的程序員,而我不是,我一直很遺憾。 比爾蓋茨曾經寫過一本書叫做《未來之路》The road ahead, 那么今天我選…

【溫故知新】——原生js中常用的四種循環方式

一、引言 本文主要是利用一個例子,講一下原生js中常用的四種循環方式的使用與區別: 實現效果: 在網頁中彈出框輸入0 網頁輸出“歡迎下次光臨”在網頁中彈出框輸入1 網頁輸出“查詢中……”在網頁中彈出框輸入2 網頁輸出“取款中……”在…

部署egg需要用到pm2嗎_使用寶塔面板部署校園綜合服務平臺項目

本文檔為校園綜合服務平臺服務端的安裝部署教程,歡迎star小程序端下載地址:https://github.com/landalfYao/help.git后臺服務端下載地址:https://github.com/landalfYao/helpserver.git后臺客戶端下載地址:https://github.com/lan…

機器學習算法之線性回歸

一、什么是回歸算法 回歸算法是一種有監督算法 回歸算法是一種比較常用的機器學習算法,用來建立“解釋”變量(自變量X)和觀測值(因變量Y)之間的關系;從機器學習的角度來講,用于構建一個算法模型(函數)來做屬性(X)與標簽(Y)之間的映射關系&a…

html中怎么寫多選框,如何在HTML中實現“選擇所有”復選框?

checkboxes document.getElementsByName(foo);for(var checkbox in checkboxes)checkbox.checked source.checked;} Toggle AllBar 1 Bar 2Bar 3 Bar 4最新情況:這個for each...in構造在Safari 5或Chrome 5中似乎不起作用,至少在本例中是這樣的。這段代…

Console-算法[for]-國王與老人的六十四格

ylbtech-Arithmetic:Console-算法[for]-國王與老人的六十四格1.A,案例-- -- ylb:算法-- Type:算法[for]-- munu:國王與老人的六十四格-- 20:32 2012/3/16-- 案例:印度有個國王,他擁有超人的權力和巨大的財富。但權力和財富最終讓他…

程序人生感悟

<本來不想寫的&#xff0c;實在不想看到某些人誤人子弟&#xff0c;混淆視聽&#xff0c;耽誤了中國IT的未來&#xff0c;所以一吐為快) 一些人總是發出一些錯誤的聲音&#xff0c;形成了劣勝優汰可怕的現象。他們在誤導著中國&#xff0c;把我們的后繼軍訓練成軟件藍領―…

python的excel庫_Python-Excel 模塊哪家強?

0. 前言 從網頁爬下來的大量數據需要清洗&#xff1f; 成堆的科學實驗數據需要導入 Excel 進行分析&#xff1f; 有成堆的表格等待統計&#xff1f; 作為人生苦短的 Python 程序員&#xff0c;該如何優雅地操作 Excel&#xff1f; 得益于前人的辛勤勞作&#xff0c;Python 處理…

html如何設置滑輪效果,HTML中鼠標滾輪事件onmousewheel處理

滾輪事件是不同瀏覽器會有一點點區別&#xff0c;一個像Firefox使用DOMMouseScroll ,ff也可以使用addEventListener方法綁定DomMouseScroll事件&#xff0c;其他的瀏覽器滾輪事件使用mousewheel&#xff0c;下面我來給大家具體介紹。Firefox使用DOMMouseScroll&#xff0c;其他…

在OOW2009上尋寶撞大運續(床上篇)

歷時5天的Oracle Open World 2009終于&#xff0c;終于結束了。今天最后的節目是去聽一場金融分析師的會議&#xff0c;“只”開了不到6個鐘。去的時候是毛毛雨&#xff0c;回來的時候終于看到了一縷陽光。說夕陽無限好不大合適。用Larry Ellison的說法是“太陽落下的地方也是太…

skynet記錄6:定時器

稍后填坑 kernel中&#xff0c;每一次時鐘中斷會trap到kernel code&#xff0c;這個時間間隔稱之為jiffies&#xff0c;每秒鐘發生的次數為HZ 如果是4核&#xff0c;分配到每個核就是HZ/4 cat /boot/config-uname -r | grep ^CONFIG_HZ 輸出&#xff1a; CONFIG_HZ250 cat /pro…

html圖片平鋪不重復整個頁面,JSP網頁背景圖片怎樣不平鋪,不重復出現啊...

2016-07-10 13:12最佳答案1,Q:怎樣把別人網頁上的背景音樂保存下來?A:瀏覽該網頁后,在你的 Windows\Temporary Internet Files 文件夾下可以找到該背景音樂的緩存文件&#xff0c;拷貝出來即可使用。如果還是找不見該文件&#xff0c;可以打開網頁的源文件&#xff0c;找到音樂…

特征圖注意力_從數據結構到算法:圖網絡方法初探

作者 | 朱梓豪來源 | 機器之心原文 | 從數據結構到算法&#xff1a;圖網絡方法初探如果說 2019 年機器學習領域什么方向最火&#xff0c;那么必然有圖神經網絡的一席之地。其實早在很多年前&#xff0c;圖神經網絡就以圖嵌入、圖表示學習、網絡嵌入等別名呈現出來&#xff0c;其…

FFMPEG 源碼分析

FFMPEG基本概念&#xff1a; ffmpeg是一個開源的編解碼框架&#xff0c;它提供了一個音視頻錄制&#xff0c;解碼和編碼庫。FFMPEG是在linux下開發的&#xff0c;但也有windows下的編譯版本。 ffmpeg項目由以下幾部分組成: ffmpeg 視頻文件轉換命令行工具,也支持經過實時電視…

面試之 Redis匯總

簡介 Redis 持久化機制 RDB&#xff08;Redis DataBase&#xff09; AOF&#xff08;Append-only file&#xff09; Redis 4.0 對于持久化機制的優化 補充&#xff1a;AOF 重寫 二者的區別 二者優缺點 Memcache與Redis的區別都有哪些&#xff1f; 緩存雪崩、緩存穿透、…

Oracle 10g 問題集錦

監聽服務中Oracle數據庫之中使用最主要的一個服務&#xff0c;但是這個服務經常會出現錯誤&#xff0c;包括以后在工作之中此服務也會出現錯誤&#xff0c;故給出兩種常見錯誤的解決方案&#xff08;故障1、故障2&#xff09; 故障1: 注冊表使用了優化軟件&#xff08;如&#…

iOS linker command failed with exit code 1 (use -v to see invocation)多種解決方案匯總

有時可能會遇到這種錯誤&#xff0c;關鍵是這種錯誤&#xff0c;有時只有這一句話&#xff0c;也不會給更多錯誤信息。 網上找了一些&#xff0c;總結了如下&#xff1a;&#xff08;PS&#xff1a;以下是按照解決簡易程度排序&#xff0c;不代表出現概率&#xff09; 1、bitco…

計算機二級python選擇題題庫_2018年計算機二級python題庫精編(1)

1正則中的^符號&#xff0c;用在一對中括號中則表示要匹配() A.字符串的開始 B.除中括號內的其它字符 C.字符串的結束 D.僅中括號內含有的字符 2靜態成員變量稱為類變量&#xff0c;非靜態成員變量稱為實例變量&#xff0c;下列關于一個類的靜態成員的描述中&#xff0c;不正確…

非常好用!世界上最快最好的視頻壓縮轉換工具(精品)

測試了20多款 各種視頻壓縮 截取軟件 真的是這款最快 快好用 效果也好&#xff01;&#xff01;&#xff01; 最快的視頻轉換壓縮工具。 WisMencoder 能夠把您的電腦上的所有視頻格式&#xff0c;包括avi,mpg,rmvb,wmv,mp4,mov,dat等格式以最快的速度和最高的質量轉換為…