筆記整合一:由線性迴歸到邏輯迴歸

一、相關概念

1、優化機器學習算法模型參數

1.1 最小二乘法公式:

在這裏插入圖片描述
  觀測值就是我們的多組樣本,理論值就是我們的假設擬合函數。目標函數也就是在機器學習中常說的損失函數,我們的目標是得到使目標函數最小化時候的擬合函數的模型。

1.2 梯度下降
1、梯度定義:
	微積分中,對多元函數參數求∂偏導數,將求得的各個參數的偏導數以向量形式寫出來,即爲梯度。
	其本意是一個向量(矢量),表示某一函數在該點處的方向導數沿着該方向取得最大值,
	即函數在該點處沿着該方向(此梯度的方向)變化最快,變化率最大(爲該梯度的模)。
2、梯度下降:
	求最小化損失函數,關於損失函數:爲了評估模型擬合的好壞,通常用損失函數來度量擬合的程度。
	損失函數極小化,意味着擬合程度最好,對應的模型參數即爲最優參數。
	在線性迴歸中,損失函數通常爲樣本輸出和假設函數的差取平方。
	比如對於m個樣本(xi,yi)(i=1,2,...m)(xi,yi)(i=1,2,...m),採用線性迴歸,損失函數爲:

在這裏插入圖片描述

3、梯度下降算法調優:
(1)、步長選擇
(2)、算法參數初始值選擇
(3)、歸一化:由於樣本不同特徵的取值範圍不一樣,可能導致迭代很慢,爲了減少特徵取值的影響,可以對特徵數據歸一化,也就是對於每個特徵x,求出它的期望和標準差,這樣特徵的新期望爲0,新方差爲1,迭代次數可以大大加快。
1.3 交叉驗證

  交叉驗證的基本思想是把在某種意義下將原始數據(dataset)進行分組,一部分做爲訓練集(train set),另一部分做爲驗證集(validation set or test set),首先用訓練集對分類器進行訓練,再利用驗證集來測試訓練得到的模型(model),以此來做爲評價分類器的性能指標。

二.線性迴歸

  監督學習中,如果預測的變量是離散的,我們稱其爲分類(如決策樹,支持向量機等),如果預測的變量是連續的,我們稱其爲迴歸。
  迴歸分析中,如果只包括一個自變量和一個因變量,且二者的關係可用一條直線近似表示,這種迴歸分析稱爲一元線性迴歸分析。如果迴歸分析中包括兩個或兩個以上的自變量,且因變量和自變量之間是線性關係,則稱爲多元線性迴歸分析。
  在統計學中,線性迴歸(Linear Regression)是利用稱爲線性迴歸方程的最小平方函數對一個或多個自變量和因變量之間關係進行建模的一種迴歸分析。

2.1 一般表達式:

Y = aX+b

2.2 解決問題

	所謂迴歸,是指研究一組隨機變量(Yi..和另一組(X...)變量之間關係的統計分析方法迴歸分析是一種數學模型。
 	當因變量和自變量爲線性關係時,它是一種特殊的線性模型.
 	當對大量的觀測數據進行處理後,我們可以得到一組比較符合客觀事實及事件規律的數學表達式,即根據大量數據的分析找出數據之間的聯繫所在,從而模擬出相對應的結果,即預測。舉個栗子嗎,就如同農諺:有雨天邊亮,無雨頂上光。均是由多年客觀事實形成的經驗。
2.3 正則化

  爲了防止模型的過擬合,我們在建立線性模型的時候經常需要加入正則化項。一般有L1正則化和L2正則化。
  線性迴歸的L1正則化通常稱爲Lasso迴歸,它和一般線性迴歸的區別是在損失函數上增加了一個L1正則化的項,L1正則化的項有一個常數係數α來調節損失函數的均方差項和正則化項的權重,
  Lasso迴歸可以使得一些特徵的係數變小,甚至還是一些絕對值較小的係數直接變爲0。增強模型的泛化能力。
  線性迴歸的L2正則化通常稱爲Ridge迴歸,它和一般線性迴歸的區別是在損失函數上增加了一個L2正則化的項,和Lasso迴歸的區別是Ridge迴歸的正則化項是L2範數,而Lasso迴歸的正則化項是L1範數。

2.4注意

  在用線性迴歸模型擬合數據之前,首先要求數據應符合或近似符合正態分佈,否則得到的擬合函數不正確。

三、邏輯迴歸

3.1 相關概念
3.1.1本質

  邏輯迴歸本質上是線性迴歸,只是在特徵到結果的映射中加入了一層邏輯函數g(z),即先把特徵線性求和,然後使用函數g(z)作爲假設函數來預測。g(z)可以將連續值映射到0 和1。g(z)爲sigmoid function.

邏輯迴歸用來分類0/1 問題,也就是預測結果屬於0 或者1 的二值分類問題。
這裏假設了二值滿足伯努利分佈
3.1.2 什麼是邏輯迴歸

  線性迴歸模型是求輸出特徵向量Y和輸入樣本X之間的關係係數θ,一般形式爲: Y=aX+b, Y取值範圍爲[-∞, +∞],此時,我們的Y是連續的,隨意是線性迴歸問題,可是如果是離散的,或者,我們要對其分類呢?
  於是,我們對於這個Y再做一次函數轉換,變爲g(Y)。如果我們令g(Y)的值在某個實數區間的時候是類別A,在另一個實數區間的時候是類別B,以此類推,就得到了一個分類模型。如果結果的類別只有兩種,那麼就是一個二元分類模型了。
  具體做法爲把Y的結果帶入一個非線性變換的Sigmoid函數中,即可得到[0,1]之間取值範圍的數S,S可以把它看成是一個概率值,如果我們設置概率閾值爲0.5,那麼S大於0.5可以看成是正樣本,小於0.5看成是負樣本,就可以進行分類了。函數中t無論取什麼值,其結果都在[0,-1]的區間內,即非0即1

3.2、離散化原因

  1、邏輯迴歸屬於廣義線性模型,表達能力受限;單變量離散化爲N個後,每個變量有單獨的權重,相當於爲模型引入了非線性,能夠提升模型表達能力,加大擬合; 離散特徵的增加和減少都很容易,易於模型的快速迭代;
  2、速度快!稀疏向量內積乘法運算速度快,計算結果方便存儲,容易擴展;
  3、離散化後的特徵對異常數據有很強的魯棒性
  4、特徵離散化後,模型會更穩定,並且簡化模型,防止過擬合

3.3、TIP

  邏輯迴歸尤其是二元邏輯迴歸是非常常見的模型,訓練速度很快,雖然使用起來沒有支持向量機(SVM)那麼佔主流,但是解決普通的分類問題是足夠了,訓練速度也比起SVM要快不少
  那麼假設,我要用邏輯迴歸實現多分類呢?個人意見爲:根據每個類別都建立一個二分類器,本類別的樣本標籤定義爲0,其它分類樣本標籤定義爲1,則有多少個類別就構造多少個邏輯迴歸分類器

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