1. 程式人生 > >Stanford機器學習-- 邏輯迴歸和過擬合問題的解決 logistic Regression & Regularization

Stanford機器學習-- 邏輯迴歸和過擬合問題的解決 logistic Regression & Regularization

什麼是邏輯迴歸?

Logistic迴歸與多重線性迴歸實際上有很多相同之處,最大的區別就在於它們的因變數不同,其他的基本都差不多。正是因為如此,這兩種迴歸可以歸於同一個家族,即廣義線性模型(generalizedlinear model)。

這一家族中的模型形式基本上都差不多,不同的就是因變數不同。

  • 如果是連續的,就是多重線性迴歸;
  • 如果是二項分佈,就是Logistic迴歸;
  • 如果是Poisson分佈,就是Poisson迴歸;
  • 如果是負二項分佈,就是負二項迴歸。

Logistic迴歸的因變數可以是二分類的,也可以是多分類的,但是二分類的更為常用,也更加容易解釋。所以實際中最常用的就是二分類的Logistic迴歸。

Logistic迴歸的主要用途:

  • 尋找危險因素:尋找某一疾病的危險因素等;
  • 預測:根據模型,預測在不同的自變數情況下,發生某病或某種情況的概率有多大;
  • 判別:實際上跟預測有些類似,也是根據模型,判斷某人屬於某病或屬於某種情況的概率有多大,也就是看一下這個人有多大的可能性是屬於某病。

Logistic迴歸主要在流行病學中應用較多,比較常用的情形是探索某疾病的危險因素,根據危險因素預測某疾病發生的概率,等等。例如,想探討胃癌發生的危險因素,可以選擇兩組人群,一組是胃癌組,一組是非胃癌組,兩組人群肯定有不同的體徵和生活方式等。這裡的因變數就是是否胃癌,即“是”或“否”,自變數就可以包括很多了,例如年齡、性別、飲食習慣、幽門螺桿菌感染等。自變數既可以是連續的,也可以是分類的。

常規步驟

Regression問題的常規步驟為:

  1. 尋找h函式(即hypothesis);
  2. 構造J函式(損失函式);
  3. 想辦法使得J函式最小並求得迴歸引數(θ)

構造預測函式h

Logistic迴歸雖然名字裡帶“迴歸”,但是它實際上是一種分類方法,主要用於兩分類問題(即輸出只有兩種,分別代表兩個類別),所以利用了Logistic函式(或稱為Sigmoid函式),函式形式為:

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

 

下面左圖是一個線性的決策邊界,右圖是非線性的決策邊界。


對於線性邊界的情況,邊界形式如下:

構造預測函式為:


函式的值有特殊的含義,它表示結果取1的概率,因此對於輸入x分類結果為類別1和類別0的概率分別為:


構造損失函式J

Cost函式和J函式如下,它們是基於最大似然估計推導得到的。



下面詳細說明推導的過程:

(1)式綜合起來可以寫成:

取似然函式為:


對數似然函式為:


最大似然估計就是求使取最大值時的θ,其實這裡可以使用梯度上升法求解,求得的θ就是要求的最佳引數。但是,在Andrew Ng的課程中將取為下式,即:


因為乘了一個負的係數-1/m,所以取最小值時的θ為要求的最佳引數。

梯度下降法求的最小值

θ更新過程:


θ更新過程可以寫成:

 

向量化Vectorization

Vectorization是使用矩陣計算來代替for迴圈,以簡化計算過程,提高效率。

如上式,Σ(...)是一個求和的過程,顯然需要一個for語句迴圈m次,所以根本沒有完全的實現vectorization。

下面介紹向量化的過程:

約定訓練資料的矩陣形式如下,x的每一行為一條訓練樣本,而每一列為不同的特稱取值:

g(A)的引數A為一列向量,所以實現g函式時要支援列向量作為引數,並返回列向量。由上式可知可由一次計算求得。

θ更新過程可以改為:


綜上所述,Vectorization後θ更新的步驟如下:

(1)求

(2)求

(3)求 

正則化Regularization

過擬合問題

對於線性迴歸或邏輯迴歸的損失函式構成的模型,可能會有些權重很大,有些權重很小,導致過擬合(就是過分擬合了訓練資料),使得模型的複雜度提高,泛化能力較差(對未知資料的預測能力)。

下面左圖即為欠擬合,中圖為合適的擬合,右圖為過擬合。


問題的主因

過擬合問題往往源自過多的特徵。

解決方法

1)減少特徵數量(減少特徵會失去一些資訊,即使特徵選的很好)

  • 可用人工選擇要保留的特徵;
  • 模型選擇演算法;

2)正則化(特徵較多時比較有效)

  • 保留所有特徵,但減少θ的大小

正則化方法

正則化是結構風險最小化策略的實現,是在經驗風險上加一個正則化項或懲罰項。正則化項一般是模型複雜度的單調遞增函式,模型越複雜,正則化項就越大。

從房價預測問題開始,這次採用的是多項式迴歸。左圖是適當擬合,右圖是過擬合。


直觀來看,如果我們想解決這個例子中的過擬合問題,最好能將的影響消除,也就是讓。假設我們對進行懲罰,並且令其很小,一個簡單的辦法就是給原有的Cost函式加上兩個略大懲罰項,例如:


這樣在最小化Cost函式的時候,

正則項可以取不同的形式,在迴歸問題中取平方損失,就是引數的L2範數,也可以取L1範數。取平方損失時,模型的損失函式變為:


lambda是正則項係數:

  • 如果它的值很大,說明對模型的複雜度懲罰大,對擬合數據的損失懲罰小,這樣它就不會過分擬合數據,在訓練資料上的偏差較大,在未知資料上的方差較小,但是可能出現欠擬合的現象;
  • 如果它的值很小,說明比較注重對訓練資料的擬合,在訓練資料上的偏差會小,但是可能會導致過擬合。

正則化後的梯度下降演算法θ的更新變為:


正則化後的線性迴歸的Normal Equation的公式為:


其他優化演算法

  • Conjugate gradient method(共軛梯度法)
  • Quasi-Newton method(擬牛頓法)
  • BFGS method
  • L-BFGS(Limited-memory BFGS)

後二者由擬牛頓法引申出來,與梯度下降演算法相比,這些演算法的優點是:

  • 第一,不需要手動的選擇步長;
  • 第二,通常比梯度下降演算法快;

但是缺點是更復雜。

多類分類問題

對於多類分類問題,可以將其看做成二類分類問題:保留其中的一類,剩下的作為另一類。

對於每一個類 i 訓練一個邏輯迴歸模型的分類器,並且預測y = i時的概率;對於一個新的輸入變數x, 分別對每一個類進行預測,取概率最大的那個類作為分類結果:


相關推薦

Stanford機器學習-- 邏輯迴歸問題的解決 logistic Regression & Regularization

什麼是邏輯迴歸? Logistic迴歸與多重線性迴歸實際上有很多相同之處,最大的區別就在於它們的因變數不同,其他的基本都差不多。正是因為如此,這兩種迴歸可以歸於同一個家族,即廣義線性模型(generalizedlinear model)。 這一家族中的模型形式基本上都

Stanford機器學習---第三講. 邏輯迴歸問題的解決 logistic Regression & Regularization

在每次迭代中,按照gradient descent的方法更新引數θ:θ(i)-=gradient(i),其中gradient(i)是J(θ)對θi求導的函式式,在此例中就有gradient(1)=2*(theta(1)-5), gradient(2)=2*(theta(2)-5)。如下面程式碼所示:

【轉載】Stanford機器學習---第三講. 邏輯迴歸問題的解決 logistic Regression & Regularization

在每次迭代中,按照gradient descent的方法更新引數θ:θ(i)-=gradient(i),其中gradient(i)是J(θ)對θi求導的函式式,在此例中就有gradient(1)=2*(theta(1)-5), gradient(2)=2*(theta(2)-5)。如下面程式碼所示:

機器學習入門】Andrew NG《Machine Learning》課程筆記之四:分類、邏輯迴歸

分類和邏輯迴歸 在實際的生活中,會遇到很多二元分類問題(Binary Classification Problem),比如判斷一封郵件是否是垃圾郵件,攝像頭判斷使用者是男是女和一張圖片裡包含的是貓還是狗等等。 在有監督的分類問題中,通常使用帶標記(Label

第三講. 邏輯迴歸問題的解決 logistic Regression & Regularization

在每次迭代中,按照gradient descent的方法更新引數θ:θ(i)-=gradient(i),其中gradient(i)是J(θ)對θi求導的函式式,在此例中就有gradient(1)=2*(theta(1)-5), gradient(2)=2*(theta(2)-5)。如下面程式碼所示:

吳恩達機器學習——邏輯迴歸分類演算法

高效使用軟體 如下所示,是一個函式,這是一個求theta和x的積的和的公式,這個問題我們可以輕鬆地通過矩陣的方式解決。 將theta和x以如下形式表示,theta和x的矩陣的積就是這個函式的結果。 求解theta的值 進行邏輯分解: Th

機器學習:什麼是

1. 什麼是欠擬合和過擬合 先看三張圖片,這三張圖片是線性迴歸模型 擬合的函式和訓練集的關係 第一張圖片擬合的函式和訓練集誤差較大,我們稱這種情況為 欠擬合 第二張圖片擬合的函式和訓練集誤差較小,我們稱這種情況為 合適擬合 第三張圖片擬合的函式完美的匹配訓

機器學習:決策樹與剪枝,決策樹程式碼實現(三)

文章目錄 楔子 變數 方法 資料預處理 剪枝 獲取待剪集: 針對ID3,C4.5的剪枝 損失函式的設計 基於該損失函式的演算法描述 基於該損失函式的程式碼實

機器學習演算法中的與欠

在機器學習表現不佳的原因要麼是過度擬合或欠擬合數據。 機器學習中的逼近目標函式過程 監督式機器學習通常理解為逼近一個目標函式(f)(f),此函式對映輸入變數(X)到輸出變數(Y). Y=f(X)Y=f(X) 這種特性描述可以用於定義分類和預測問題和機器學習演算法的

機器學習問題

過擬合:當某個模型過度的學習訓練資料中的細節和噪音,以至於模型在新的資料上表現很差,我們稱過擬合發生了,通俗點就是:模型在訓練集中測試的準確度遠遠高於在測試集中的準確度。 過擬合問題通常發生在變數特徵過多的時候。這種情況下訓練出的方程總是能很好的擬合訓練資料,也就是說,我們的代價函式可能非常接近於0或者就為

機器學習:欠

1. 什麼是欠擬合和過擬合 先看三張圖片,這三張圖片是線性迴歸模型 擬合的函式和訓練集的關係 第一張圖片擬合的函式和訓練集誤差較大,我們稱這種情況為 欠擬合 第二張圖片擬合的函式和訓練集誤差較小,我們稱這種情況為 合適擬合 第三張圖片擬合的函式

機器學習 -- 線性迴歸邏輯迴歸的區別

  迴歸演算法是一種通過最小化預測值與實際結果值之間的差距,而得到輸入特徵之間的最佳組合方式的一類演算法。對於連續值預測有線性迴歸等,而對於離散值/類別預測,我們也可以把邏輯迴歸等也視作迴歸演算法的一種。    線性迴歸與邏輯迴歸是機器學習中比較基礎又很常用的內容。線性迴歸主

機器學習(ML)七之模型選擇、欠

訓練誤差和泛化誤差 需要區分訓練誤差(training error)和泛化誤差(generalization error)。前者指模型在訓練資料集上表現出的誤差,後者指模型在任意一個測試資料樣本上表現出的誤差的期望,並常常通過測試資料集上的誤差來近似。計算訓練誤差和泛化誤差可以使用之前介紹過的損失函式,例如線

吳恩達機器學習 - 邏輯迴歸的正則化 吳恩達機器學習 - 邏輯迴歸的正則化

原 吳恩達機器學習 - 邏輯迴歸的正則化 2018年06月19日 15:07:25 離殤灬孤狼 閱讀數:181 更多

吳恩達機器學習 - 邏輯迴歸 吳恩達機器學習 - 邏輯迴歸

原 吳恩達機器學習 - 邏輯迴歸 2018年06月19日 12:49:09 離殤灬孤狼 閱讀數:96 更多

吳恩達機器學習 - 邏輯迴歸——多元分類 吳恩達機器學習 - 邏輯迴歸——多元分類

原 吳恩達機器學習 - 邏輯迴歸——多元分類 2018年06月19日 20:47:49 離殤灬孤狼 閱讀數:98 更多

機器學習--邏輯迴歸與softmax

1. 簡介 邏輯迴歸和Softmax迴歸是兩個基礎的分類模型,前者主要處理二分類問題,而後者處理多分類問題,但事實上Softmax迴歸就是邏輯迴歸的一般形式。 2.邏輯迴歸模型    sigmoid 想了解Logistic迴歸,我們必須先看一看

吳恩達機器學習邏輯迴歸python實現(未正則化)[對應ex2-ex2data2.txt資料集]

寫在前面: ​ 1.筆記重點是python程式碼實現,不敘述如何推導。參考本篇筆記前,要有邏輯迴歸的基礎(熟悉代價函式、梯度下降、矩陣運算和python等知識),沒有基礎的同學可通過網易雲課堂上吳恩達老師的機器學習課程學習。網上也有一些對吳恩達老師課後作業的python實現,大多數都是用

吳恩達機器學習邏輯迴歸python實現[對應ex2-ex2data1.txt資料集]

研一學生,初學機器學習,重心放在應用,弱化公式推導,能力有限,文中難免會有錯誤,懇請指正!QQ:245770710 此文是對網易雲課堂上吳恩達老師的機器學習課程邏輯迴歸一章對應的課後作業的python實現。 1. 先對資料集進行觀察,使用matplotlib將資料集繪製出散點圖。 ​

機器學習--邏輯迴歸及乳腺癌預測

邏輯迴歸演算法是用來解決分類問題的演算法。 邏輯迴歸模型由sklearn.linear_model.LogisticRegression實現 例項:乳腺癌預測 a. 模型訓練 # 載入自帶乳腺癌資料集 from sklearn.datasets import lo