1. 程式人生 > >機器學習演算法梳理(一):線性迴歸

機器學習演算法梳理(一):線性迴歸

機器學習演算法梳理(一):線性迴歸

一、基本概念

  1. 監督學習與無監督學習

    監督學習(supervised learning):從有標記的訓練資料中推匯出預測函式。有標記的訓練資料是指每個訓練例項都包括輸入和期望的輸出。即給定資料,預測標籤。分類和迴歸是監督學習的兩大重要問題。

    非監督學習(unsupervised learning):從無標記的訓練資料中推斷結論。最典型的無監督學習就是聚類分析,它可以在探索性資料分析階段用於發現隱藏的模式或者對資料進行分組。即給定資料,尋找隱藏的結構。

  2. 泛化能力
    監督學習的目的是找到一個輸入輸出對映(模型),使得這個模型不僅對訓練資料有很好的擬合能力,對於未知資料,它也有很好的預測能力。這種對未知資料的預測能力就是泛化能力(generalization ability)

    。在實際情況中,我們通常通過測試誤差來評價學習方法的泛化能力。

  3. 過擬合和欠擬合
    在模型的擬閤中,會發生過擬合(overfitting)和欠擬合(underfitting)的情況。
    如果一味追求提高對訓練資料的預測能力,所選模型的複雜度則往往會比真模型要高,產生
    過擬合
    的現象,以致於對訓練資料預測得很好,但對未知資料預測很差。

    過擬合的解決方法:
    1、增大訓練資料量
    2、增加正則化項,正則化項一般是模型複雜度的單調遞增函式,模型越複雜,正則化值就越大
    3、dropout方法,在神經網路中較常用

    欠擬合則是模型沒有很好地捕捉到資料特徵,不能較好的擬合數據。

    欠擬合的解讀辦法
    1、新增其他特徵項
    2、新增多項式特徵
    3、減少正則化引數

    模型的Error = Bias(偏差) + Variance(方差 ),Error反映的是整個模型的準確度,Bias反映的是模型在樣本上的輸出與真實值之間的誤差,即模型本身的精準度,Variance反映的是模型每一次輸出結果與模型輸出期望之間的誤差,即模型的穩定性。

  4. 交叉驗證
    在進行模型選擇時,一般隨機將原始資料(dataset)進行分組,一般分為三部分,訓練集(training set),驗證集(validation set)和測試集(test set),訓練集用來訓練模型,驗證集用於魔心的選擇,而測試集用於最終對學習方法的評估。
    但是,如果樣本資料不充足,則可以採用交叉驗證方法,基本想法是重複使用資料;把給定的資料進行切分,再組合為訓練集和測試集,在此基礎上反覆訓練,測試以及模型選擇。

    1) 簡單交叉驗證(Hold-Out Method)
    將原始資料分為兩組,一組是訓練集,一組是驗證集,利用訓練集來訓練分類器,然後利用驗證集驗證模型。進行多次劃分,用均值來表示效能。
    優點:簡單,只需要將原始資料隨機的分成兩組就行了。
    缺點:
    (1)沒有達到交叉的效果。
    (2)隨機分組,驗證集分類的準確率與原始資料分組的關係很大。
    (3)有些資料可能從未做過訓練或測試資料;而有些資料不止一次選為訓練或測試資料。

    2) K折交叉驗證(K-fold Cross Validation)
    將原始資料均分成K組,每個子集資料分別做一次驗證集,其餘的K-1組子集資料作為訓練集,這樣會得到K個模型,用這K個模型最終驗證集的分類準確率的平均數作為此K-CV分類器下的效能指標。K的取值一般是大於等於2,只有在原始資料集合資料量小的時候才會取2
    優點:有效的避免過擬合和欠擬合

    3)留一交叉驗證(Leave-one-out Cross Validation)
    K折交叉驗證的特殊情況是K=N,N為給定資料集的容量,這時稱為留一交叉驗證,往往在資料缺乏的情況下使用。
    優點:
    (1)每輪中幾乎所有的樣本都可以用於訓練模型,因此能夠使訓練的模型最接近樣本真實分佈,評估的結果很可靠。
    (2)實驗的過程中沒有隨機因素。
    缺點: 如果樣本量很大,那麼需要建立的模型的數量也很大,計算成本高。

二、線性迴歸原理

在統計學中,線性迴歸(Linear Regression)是利用稱為線性迴歸方程的最小平方函式對一個或多個自變數和因變數之間關係進行建模的一種迴歸分析。這種函式是一個或多個稱為迴歸係數的模型引數的線性組合(自變數都是一次方)。只有一個自變數的情況稱為簡單迴歸,大於一個自變數情況的叫做多元迴歸。簡而言之,線性迴歸的目標是用預測結果儘可能地擬合目標label。

定義線性迴歸函式(linear regression)為:

h ( x ) = i = 0 n θ i x i = θ T x h(x)=\sum_{i=0}^n \theta_ix_i=\theta^\mathrm{T}x

h ( x ) h(x) 來預測 y y ,此時 x x 為輸入資料的特徵矩陣, y y 為對應資料的label

三、線性迴歸的損失函式

線性迴歸模型使用的是一種稱為平方損失(又稱為 L2 損失)的損失函式

線性迴歸優化的目標——圖中線段距離(平方)的平均值,也就是最小化到分割面的距離和。

在這裡插入圖片描述

損失函式一般定義為
J ( θ ) = 1 2 m i = 1 m ( h θ ( x ( i ) ) y ( i ) ) 2 J(\theta)=\frac{1}{2m}\sum_{i=1}^m(h_\theta(x^{(i)})-y^{(i)})^2

四、優化方法

定義了損失函式以後,求解損失函式最小值的過程,我們叫優化。常用的演算法如下:

梯度下降法 Gradient Descent
梯度下降演算法是一種求區域性最優解的方法,梯度下降法基於的思想為:要找到某函式的極小值,則沿著該函式的梯度方向尋找。若函式為凸函式且約束為凸集,則找到的極小值點則為最小值點。

梯度下降基本演算法為:

  1. 首先用隨機值填充 θ \theta (這被稱為隨機初始化),或者讓 θ \theta 為一個全零向量
  2. 逐漸改進 θ \theta 的值,每次步進一步(步長α),每一步都試圖降低代價函式,直到演算法收斂到最小。

梯度減少的方向,則是用損失函式 J ( θ ) J(\theta) θ \theta 求偏導:
θ j : = θ j α J ( θ ) θ j \theta_j:=\theta_j-\alpha\frac{\partial{J(\theta)}}{\partial\theta_j}

只有一個訓練資料時:
11
因為梯度下降法通常分為三種形式,整體批次梯度下降法,隨機梯度下降法和批量梯度下降法.

  • 批量梯度下降法(Batch Gradient Descent)
    批量梯度下降法,是梯度下降法最常用的形式,具體做法也就是在更新引數時使用所有的樣本來進行更新。
  • 隨機梯度下降法(Stochastic Gradient Descent)
    隨機梯度下降法,其實和批量梯度下降法原理類似,區別在與求梯度時沒有用所有的樣本的資料,而是僅僅選取一個樣本來求梯度。
    隨機梯度下降法,和批量梯度下降法是兩個極端,一個採用所有資料來梯度下降,一個用一個樣本來梯度下降。自然各自的優缺點都非常突出。對於訓練速度來說,隨機梯度下降法由於每次僅僅採用一個樣本來迭代,訓練速度很快,而批量梯度下降法在樣本量很大的時候,訓練速度不能讓人滿意。對於準確度來說,隨機梯度下降法用於僅僅用一個樣本決定梯度方向,導致解很有可能不是最優。對於收斂速度來說,由於隨機梯度下降法一次迭代一個樣本,導致迭代方向變化很大,不能很快的收斂到區域性最優解。
  • 小批量梯度下降法(Mini-batch Gradient Descent)
    小批量梯度下降法是批量梯度下降法和隨機梯度下降法的折衷,也就是對於 m 個樣本,我們採用 x 個樣子來迭代, 1<x<m 。一般可以取 x=16,32,64… ,當然根據樣本的資料,可以調整這個 x 的值。

正規方程 Normal Equations

求解線性迴歸最常用的兩個方法是:梯度下降法和最小二乘法,由於最小二乘法是基於正規方程的,所以也被稱為正規方程法。特徵方程得到的是解析解,無需迭代,也沒有設定學習速率的繁瑣,需要特徵歸一化,但是求解正規方程需要求矩陣的逆,然而不是所有的矩陣都可逆,而且有些可逆矩陣的求逆極其耗費時間,所以特徵方程法看似簡單,其實使用場景並不多。只有當特徵值比較小的時候,可以考慮使用特徵方程法。

記住公式: θ = ( X T X ) 1 X T y \theta=(X^{\mathrm{T}}X)^{-1}X^{\mathrm{T}}y

牛頓法

從幾何上說,牛頓法就是用一個二次曲面去擬合你當前所處位置的局部曲面,而梯度下降法是用一個平面去擬合當前的局部曲面,通常情況下,二次曲面的擬合會比平面更好,所以牛頓法選擇的下降路徑會更符合真實的最優下降路徑。

五、線性迴歸的評估指標

解釋方差(Explained variance score):
E x p l a i n e d _ v a r i a n c e ( y , y ^ ) = 1 V a r { y y ^ } V a r { y } Explained\_variance(y,\hat{y})=1-\frac{Var\{y-\hat{y}\}}{Var\{y\}}
絕對平均誤差(Mean absolute error):
M A E ( y , y ^ ) = 1 n i = 0 n y i y ^ MAE(y,\hat{y})=\frac{1}{n}\sum_{i=0}^n|y_i-\hat{y}|
均方誤差(Mean squared error):
M S E ( y , y ^ ) = 1 n i = 0 n ( y i y ^ ) 2 MSE(y,\hat{y})=\frac{1}{n}\sum_{i=0}^n(y_i-\hat{y})^2
決定係數( R 2 R^2 score):
R 2 ( y , y ^ ) = 1 i = 0 n ( y i y ^ ) 2 i = 0 n ( y i y ) 2 R^2(y,\hat{y})=1-\frac{\sum_{i=0}^n(y_i-\hat{y})^2}{\sum_{i=0}^n(y_i-\overline{y})^2}

相關推薦

機器學習演算法梳理()線性迴歸

機器學習演算法梳理(一):線性迴歸 一、基本概念 監督學習與無監督學習 監督學習(supervised learning):從有標記的訓練資料中推匯出預測函式。有標記的訓練資料是指每個訓練例項都包括輸入和期望的輸出。即給定資料,預測標籤。分類和迴歸是監督學習的兩大重要問題。

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

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

機器學習筆記(線性迴歸模型

一、線性迴歸模型 (一)引入—梯度下降演算法 1. 線性假設: 2. 方差代價函式:   3. 梯度下降:   4. : learning rate (用來控制我們在梯度下降時邁出多大的步子,值較大,梯度下降就很迅速) 值過大易造成無法收斂到minimum(每一步邁更大)

機器學習演算法推導】簡單線性迴歸與多元線性迴歸

線性迴歸,主要用於從資料中擬合出一條直線(或更高維的平面),這條直線能夠很好地體現資料的特徵,比如,它能夠使得平面上的點都均勻地分佈在這條直線上。 演算法思想 對於簡單線性迴歸和多元線性迴歸,其演算法過程是相同的,不同之處在於簡單線性迴歸只有一個特徵需要擬合,多元線

吳恩達機器學習第一次作業線性迴歸

0.綜述      給出房價與房屋面積的關係,利用梯度下降的方法進行資料擬合,並對給定的房屋面積做出對房價的預測。 1.warmUpExercise       輸出5*5的單位矩陣 function A = warmUpExercise() %WARMUPEXE

機器學習線性迴歸 (Linear Regression)

1.基本問題 線性迴歸屬於有監督的演算法,用來做迴歸預測。在實際的有監督迴歸問題中,我們通過擬合係數 的線性模型,以最小化資料集中觀察到的響應y與線性近似預測的響應之間的殘差平方和。我們的目標便是選擇出可以使得殘差平方和最小的模型引數,即得到代價函式 表達方式: (1)單變數線

機器學習演算法邏輯迴歸模型(Logistic Regression, LR)

轉自:https://blog.csdn.net/weixin_39910711/article/details/81607386 線性分類器:模型是引數的線性函式,分類平面是(超)平面;非線性分類器:模型分介面可以是曲面或者超平面的組合。 典型的線性分類器有感知機,LDA,邏輯斯特迴歸,SVM

吳恩達機器學習作業Python實現()線性迴歸

單變數線性迴歸 在本部分的練習中,您將使用一個變數實現線性迴歸,以預測食品卡車的利潤。假設你是一家餐館的執行長,正在考慮不同的城市開設一個新的分店。該連鎖店已經在各個城市擁有卡車,而且你有來自城市的利潤和人口資料。 您希望使用這些資料來幫助您選擇將哪個城市擴充

Bobo老師機器學習筆記第五課-線性迴歸演算法的評估指標

評價線性迴歸的指標有四種,均方誤差(Mean Squared Error)、均方根誤差(Root Mean Squared Error)、平均絕對值誤差(Mean Absolute Error)以及R Squared方法。 sklearnz中使用的,也是大家推薦的方法是R Squared方法。

機器學習實戰筆記K-近鄰演算法在約會網站上的應用

K-近鄰演算法概述 簡單的說,K-近鄰演算法採用不同特徵值之間的距離方法進行分類  K-近鄰演算法 優點:精度高、對異常值不敏感、無資料輸入假定。 缺點:計算複雜度高、空間複雜度高。 適用範圍:數值型和標稱型。   k-近鄰演算法的一般流程 收集資料:可使用任何方法

機器學習理論()——線性回歸

隨機 .cn 過程 小寫 找到 想想 每次 回歸 所在 (一)單變量線性回歸。 舉個例子來說,假如你要在北京的五環路租房,要預測房子的價格,其中一個比較顯著的特征就是房子的面積,根據不同的房間的面積來預測租金是多少。於是你就可以構建一個模型橫軸是房間面積,縱軸是租金

機器學習算法感知器學習

描述 down display 得到 更新 begin 機器 min ria 問題描述:   給定線性可分數據集:T={(x1,y1),(x2,y2),...,(xN,yN)},存在超平面S:$w\cdot x+b=0$ $ \left\{\begin{matrix} w\

機器學習實戰(七)線性迴歸(Linear Regression)

目錄 0. 前言 1. 假設函式(Hypothesis) 2. 標準線性迴歸 2.1. 代價函式(Cost Function) 2.2. 梯度下降(Gradient Descent) 2.3. 特徵縮放(Feat

機器學習筆記(二)線性迴歸實現

一、向量化 對於大量的求和運算,向量化思想往往能提高計算效率(利用線性代數運算庫),無論我們在使用MATLAB、Java等任何高階語言來編寫程式碼。 運算思想及程式碼對比   的同步更新過程向量化   向量化後的式子表示成為: 其中是一個向量,是一個實數,是一個向量,

機器學習100天---day02 簡單線性迴歸模型

資料集: Hours,Scores 2.5,21 5.1,47 3.2,27 8.5,75 3.5,30 1.5,20 9.2,88 5.5,60

機器學習---演算法---支援向量機---線性SVM--第一部分

轉自:https://cuijiahua.com/blog/2017/11/ml_8_svm_1.html 什麼是SVM? SVM的英文全稱是Support Vector Machines,我們叫它支援向量機。支援向量機是我們用於分類的一種演算法。讓我們以一個小故事的形式,開啟我們的SVM之旅吧。 在很

吳恩達機器學習(二)多元線性迴歸(假設、代價、梯度、特徵縮放、多項式)

目錄 0. 前言 學習完吳恩達老師機器學習課程的多變數線性迴歸,簡單的做個筆記。文中部分描述屬於個人消化後的理解,僅供參考。 0. 前言 多元線性迴歸(Multivari

機器學習(二)logistic迴歸

基礎知識: logistic迴歸其實是一個分類問題,可以定義如下:c為2時是一個兩類分類問題. 當分佈為伯努利分佈時:    logistic迴歸和線性迴歸類似,不同的條件概率是不同的,方程如下: 其中:sigmoid函式定義如下: 使用logist

吳恩達機器學習(第二章)----線性迴歸

線性迴歸要做的主要包含代價函式和梯度下降。 一、基本解釋 線性迴歸的過程其實就是我們在選擇好某個型別的函式之後去不斷的擬合現有的資料,那麼什麼情況下我們這個函式是最符合,最貼近我們這些資料的呢?就是在代價函式的值最小的時候。 二、代價函式 假設要擬合的函式是h(x)=

深度學習之PyTorch---- 線性迴歸

# 一維線性迴歸的程式碼實現 x_train = np.array([[3.3],[4.4],[5.5],[6.71],[6.93],[4.168], [9.7