1. 程式人生 > >邏輯迴歸與梯度下降法

邏輯迴歸與梯度下降法

轉載自:http://www.cnblogs.com/yysblog/p/3268508.html

一、邏輯迴歸

1) Classification(分類)

分類問題舉例:

  1. 郵件:垃圾郵件/非垃圾郵件?
  2. 線上交易:是否欺詐(是/否)?
  3. 腫瘤:惡性/良性?

以上問題可以稱之為二分類問題,可以用如下形式定義:

二分類問題-我愛公開課-52opencourse.com

其中0稱之為負例,1稱之為正例。

對於多分類問題,可以如下定義因變數y:

y{0,1,2,3,...,n}

如果分類器用的是迴歸模型,並且已經訓練好了一個模型,可以設定一個閾值:

  • 如果hθ(x)0.5,則預測y=1,既y屬於正例;
  • 如果hθ(x)<0.5,則預測y=0,既y屬於負例;

如果是線性迴歸模型,對於腫瘤這個二分類問題,圖形表示如下:

線性迴歸二分類問題-我愛公開課-52opencourse.com

但是對於二分類問題來說,線性迴歸模型的Hypothesis輸出值hθ(x)可以大於1也可以小於0。

這個時候我們引出邏輯迴歸,邏輯迴歸的Hypothesis輸出介於0與1之間,既:

0hθ(x)1

注: 以下引自李航博士《統計學習方法》1.8節關於分類問題的一點描述:

分類是監督學習的一個核心問題,在監督學習中,當輸出變數Y取有限個離散值時,預測問題便成為分類問題。這時,輸入變數X可以是離散的,也可以是連續的。監督學習從資料中學習一個分類模型或分類決策函式,稱為分類器(classifier)。分類器對新的輸入進行輸出的預測(prediction),稱為分類(classification).

2) Hypothesis Representation

邏輯迴歸模型:

上一節談到,我們需要將Hypothesis的輸出界定在0和1之間,既:

0hθ(x)1

但是線性迴歸無法做到,這裡我們引入一個函式g, 令邏輯迴歸的Hypothesis表示為:

hθ(x)=g(θTx)

這裡g稱為Sigmoid function或者Logistic function, 具體表達式為:

g(z)=11+ez

Sigmoid 函式在有個很漂亮的“S"形,如下圖所示(引自維基百科):

Sigmoid function-我愛公開課-52opencourse.com

綜合上述兩式,我們得到邏輯迴歸模型的數學表示式:

hθ(x)=11+eθT
x

其中θ是引數。


Hypothesis輸出的直觀解釋:

hθ(x) = 對於給定的輸入x,y=1時估計的概率

例如,對於腫瘤(惡性/良性),如果輸入變數(特徵)是腫瘤的大小:

腫瘤分類例子-我愛公開課-52opencourse.com

這裡Hypothesis表示的是”病人的腫瘤有70%的可能是惡性的“。

較正式的說法可以如下表示:

給定輸入x,引數化的θ(引數空間), y=1時的概率。

數學上可以如下表示:

hθ(x)=P(y=1|x;θ)

對於因變數y=0或1這樣的二分類問題:

P(y=0|x;θ)+P(y=1|x;θ)=1 P(y=0|x;θ)=1P(y=1|x;θ)

3) Decision boundary(決策邊界)

如上節所述,邏輯迴歸模型可以如下表示:

邏輯迴歸模型表示式-我愛公開課-52opencourse.com

假設給定的閾值是0.5,當hθ(x)0.5時, y = 1;

hθ(x)<0.5時,y = 0;

再次回顧sigmoid function的圖形,也就是g(z)的圖形:

sigomoid function g(x) -我愛公開課-52opencourse.com

g(z)0.5時, z0;

對於hθ(x)=g(θTx)0.5, 則θTx0, 此時意味著預估y=1;

反之,當預測y = 0時,θTx<0;

我們可以認為θTx = 0是一個決策邊界,當它大於0或小於0時,邏輯迴歸模型分別預測不同的分類結果。例如,

hθ(x)=g(θ0+θ1x1+θ2x2)

θ0,θ1,θ2分別取-3, 1, 1,

則當3+x1+x20時, y = 1; 則x1+x2=3是一個決策邊界,圖形表示如下:

決策邊界-我愛公開課-52opencourse.com

上述只是一個線性的決策邊界,當hθ(x)更復雜的時候,我們可以得到非線性的決策邊界,例如:

非線性的決策邊界1-我愛公開課-52opencourse.com

這裡當x21+x221時,y=1,決策邊界是一個圓形,如下圖所示:

非線性決策邊界2-我愛公開課-52opencourse.com

更復雜的例子,請參考官方PPT,這裡就不再舉例了。

4) Cost function(代價函式,成本函式)

邏輯迴歸概覽:

邏輯迴歸是一種有監督的學習方法,因此有訓練集:

訓練集-我愛公開課-52opencourse.com

對於這m個訓練樣本來說,每個樣本都包含n+1個特徵:

訓練樣本-我愛公開課-52opencourse.com

其中xRn+1x0=1,y{0,1}.

Hypothesis可表示為:

hθ(x)=11+eθTx  

與線性迴歸相似,我們的問題是如何選擇合適的引數θ?

Cost Function:

線性迴歸的Cost  Function定義為:

J(θ)=1mi=1m12(hθ(x(i))y(i))2

這裡可以把12(hθ(x(i))y(i))2簡寫為Cost(hθ(x(i),y),更簡化的表示式為:

Cost(hθ(x),y)=12(hθ(x)y)2

如果和線性迴歸相似,這裡取 hθ(x)=11+eθTx,會存在一個問題,也就是邏輯迴歸的Cost Function是“非凸”的,如下圖所示:

非凸函式-我愛公開課-52opencourse.com

我們知道,線性迴歸的Cost Function是凸函式,具有碗狀的形狀,而凸函式具有良好的性質:對於凸函式來說區域性最小值點即為全域性最小值點,因此只要能求得這類函式的一個最小值點,該點一定為全域性最小值點。

凸函式-我愛公開課-52opencouse.com

因此,上述的Cost Function對於邏輯迴歸是不可行的,我們需要其他形式的Cost Function來保證邏輯迴歸的成本函式是凸函式。

這裡補充一段李航博士《統計學習方法》裡關於Cost Function或者損失函式(loss function)的說明,大家就可以理解Cost Function不限於一種方式,而是有多種方式可選,以下摘自書中的1.3.2小節:

監督學習問題是在假設空間F中選取模型f作為決策函式,對於給定的輸入X,由f(X)給出相應的輸出Y,這個輸出的預測值f(X)與真實值Y可能一致也可能不一致,用一個損失函式(loss function)或代價函式(cost function)來度量預測錯誤的程度。損失函式是f(X)和Y的非負實值函式,記作L(Y, f(X)).

統計學習中常用的損失函式有以下幾種:

(1) 0-1損失函式(0-1 loss function):

L(Y,f(X))={1,0,Yf(X)Y=f(X)

(2) 平方損失函式(quadratic loss function)

L(Y,f(X))=(Yf(X))2

(3) 絕對損失函式(absolute loss function)

L(Y,f(X))=|Yf(X)|

(4) 對數損失函式(logarithmic loss function) 或對數似然損失函式(log-likelihood loss function)

L(Y,P(Y|X))=logP(Y|X)

損失函式越小,模型就越好。

邏輯迴歸的Cost Function:

基於上節的描述和補充,這裡我們選擇對數似然損失函式作為邏輯迴歸的Cost Function:

邏輯迴歸之對數似然損失函式-我愛公開課-52opencourse.com

直觀的來解釋這個Cost Function,首先看當y=1的情況:

對數似然損失函式解釋1-我愛公開課-52opencouse.com

直觀來看, 如果y = 1, hθ(x)=1,則Cost = 0,也就是預測的值和真實的值完全相等的時候Cost =0;

但是,當hθ(x)0時, Cost

直觀來看,由於預測的結果南轅北轍:

如果h

相關推薦

邏輯迴歸梯度下降

轉載自:http://www.cnblogs.com/yysblog/p/3268508.html 一、邏輯迴歸 1) Classification(分類) 分類問題舉例: 郵件:垃圾郵件/非垃圾郵件?線上交易:是否欺詐(是/否)?腫瘤:惡性/良性? 以上問題可以

邏輯迴歸梯度下降

Logistic迴歸為概率型非線性迴歸模型,是研究二分類觀察結果與一些影響因素之間關係的一種 多變數分析方法。通常的問題是,研究某些因素條件下某個結果是否發生,比如醫學中根據病人的一些症狀來判斷它是 否患有某種病。 在講解Logistic迴歸理論之前,我們先從LR分類器說

斯坦福CS229機器學習課程筆記一:線性迴歸梯度下降演算法

機器學習三要素 機器學習的三要素為:模型、策略、演算法。 模型:就是所要學習的條件概率分佈或決策函式。線性迴歸模型 策略:按照什麼樣的準則學習或選擇最優的模型。最小化均方誤差,即所謂的 least-squares(在spss裡線性迴歸對應的模組就叫OLS即Ordinary Least Squares):

吳恩達深度學習deeplearning.ai-Week2課後作業-Logistic迴歸梯度下降向量化

一、deeplearning-assignment 這篇文章會幫助構建一個用來識別貓的邏輯迴歸分類器。通過這個作業能夠知道如何進行神經網路學習方面的工作,指導你如何用神經網路的思維方式做到這些,同樣也會加深你對深度學習的認識。 儘量不要在程式碼中出現for迴圈,可以用nu

邏輯迴歸梯度下降

  1. 概率 1.1 定義   1.2 範圍   1.3 計算方法 1.3.1 根據個人置信 1.3.2 根據歷史資料 1.3.3 根據模擬資料 1.4 條件概率 2. 2.1 &

梯度梯度下降

本文主要使用markdown進行編輯的。 概述 在講述梯度下降演算法之前,我們先需要了解一下導數(derivative)、偏導數(partial derivative)和方向導數(directional derivative),然後我們看看梯度下降法(

斯坦福大學機器學習筆記——多變數的線性迴歸以及梯度下降注意事項(內有程式碼)

在前面部落格中介紹了單變數線性迴歸的實現過程,本文將介紹多變數線性迴歸演算法。 兩者的對比如下: 1.資料方面的差異: 單變數線性迴歸資料: 多變數線性迴歸資料: 對於單變數線性迴歸來說,只有一個特徵(房子的大小),而對於多變數線性特徵迴歸特徵

線性迴歸梯度下降

線性迴歸(Linear Regression) 從這篇文章開始,主要介紹機器學習的一些列基本演算法,本文介紹線性迴歸問題,以及利用最小均方和梯度下降解決線性迴歸問題。 (以下內容是根據斯坦福大學ng教授的機器學習公開課總結的內容) 監督學習:即訓練資料中既包含了輸入資

最小二乘法梯度下降

        最近在網易公開課上學習Andrew Ng教授的機器學習課程,從第二講開始就雲裡霧裡了。雖然講的數學概念和公式都很眼熟,但是具體的內容又說不上來。最讓我疑惑的是最小二乘法和梯度下降法,這

機器學習高數:梯度(Gradient)梯度下降(Gradient Descent)

一篇經典部落格: http://blog.csdn.net/walilk/article/details/50978864 1.導數定義:導數代表了在自變數變化趨於無窮小的時候,函式值的變化與自變數的變化的比值。幾何意義是這個點的切線。物理意義是該時刻的(瞬時)變化率。

第一個機器學習演算法:線性迴歸梯度下降

# 第一個機器學習演算法:線性迴歸與梯度下降 ## 符號解釋 * $x^{(i)}$,$y^{(i)}$:某個訓練樣本 * $m$:樣本總數量 * $h_{\theta}$:假設函式 ## Linear regression(線性迴歸) ### 如何獲得一個線性迴歸模型? * 將**訓練資料**放入

機器學習(二):理解線性迴歸梯度下降並做簡單預測

# 預測從瞎猜開始 按[上一篇文章](https://mp.weixin.qq.com/s/-KsbtgOc3C3ry-8P5f8K-Q)所說,機器學習是應用數學方法在資料中發現規律的過程。既然數學是對現實世界的解釋,那麼我們迴歸現實世界,做一些對照的想象。 想象我們面前有一塊塑料泡沫做的白板,白板上

Python梯度下降實現二元邏輯迴歸

Python梯度下降法實現二元邏輯迴歸 二元邏輯迴歸假設函式 定義當函式值大於等於0.5時,結果為1,當函式值小於0.5時,結果為0.函式的值域是(0, 1)。 二元邏輯迴歸的損失函式 上圖為二元邏輯迴歸的概率公式,則代價函式可以表示為 損失函式求偏倒數為 可以發

邏輯迴歸梯度下降詳解

引言 邏輯迴歸常用於預測疾病發生的概率,例如因變數是是否惡性腫瘤,自變數是腫瘤的大小、位置、硬度、患者性別、年齡、職業等等(很多文章裡舉了這個例子,但現代醫學發達,可以通過病理檢查,即獲取標本放到顯微鏡下觀察是否惡變來判斷);廣告界中也常用於預測點選率或者轉化

對數幾率回歸梯度下降,隨機梯度下降牛頓線性判別(LDA)

3.1 初始 屬性 author alt closed sta lose cnblogs   本文主要使用了對數幾率回歸法與線性判別法(LDA)對數據集(西瓜3.0)進行分類。其中在對數幾率回歸法中,求解最優權重W時,分別使用梯度下降法,隨機梯度下降與牛頓法。 代碼如下:

Hulu機器學習問題解答系列 | 二十四:隨機梯度下降

叠代 -s nbsp xib 大量 步長 空間 圖片 ges Hulu優秀的作者們每天和公式抗爭,只為提升你們的技能,感動的話就把文章看完,然後哭一個吧。 今天的內容是 【隨機梯度下降法】 場景描述 深度學習得以在近幾年迅速占領工業界和學術界的高地,重要原因之一是數

線性迴歸梯度下降講解程式碼

本文也是根據吳恩達機器學習課程作業的答案。 迴歸:預測值是連續的; 分類:預測值是離散的; 建模誤差:預測值與實際值之間的差距; 目標:選擇模型引數,使得建模誤差的平方和能夠最小,即代價函式最小; 代價函式:選擇平方誤差函式,是解決迴歸問題最常用的手段;代價函式是幫助我們選擇最優

梯度下降實現最簡單線性迴歸問題python實現

梯度下降法是非常常見的優化方法,在神經網路的深度學習中更是必會方法,但是直接從深度學習去實現,會比較複雜。本文試圖使用梯度下降來優化最簡單的LSR線性迴歸問題,作為進一步學習的基礎。 import numpy as np import pandas as pd from numpy import *

梯度下降求多元線性迴歸及Java實現

 對於資料分析而言,我們總是極力找數學模型來描述資料發生的規律, 有的資料我們在二維空間就可以描述,有的資料則需要對映到更高維的空間。資料表現出來的分佈可能是完全離散的,也可能是聚整合堆的,那麼機器學習的任務就是讓計算機自己在資料中學習到資料的規律。那麼這個規律通常是可以用一些函式來描述,

【機器學習】基於梯度下降的自線性迴歸模型

回顧 關於梯度下降法 以及線性迴歸的介紹,我們知道了: 線性迴歸的損失函式為: J (