1. 程式人生 > >線性迴歸(Linear regression)及其相關問題

線性迴歸(Linear regression)及其相關問題

前言: True regression functions are never linear!

自從學了Andrew Ng上的machine learning及Trevor Hastie和Rob Tibshirani 的statistical learning課程之後一直想為線性迴歸寫些總結,但是躊躇了很久卻寫不下去。第一,它實在是太簡單了,感覺沒什麼東西可以寫;第二,本人水平有限,不能信手捏來,也不能像大神那樣能夠系統闡述問題,怕寫出的文章不夠嚴謹,甚至出現錯誤。但還是得硬著頭皮寫下來,原因一是簡單的東西都寫不好,就不要說要寫比較複雜的東西;原因二線性迴歸模型是其他模型的基礎,它的最重要的是思想,這種思想可以延續和擴充套件到其他模型;原因三是另外其實它遠不像我們想象的那麼簡單,有不少的細節需要考慮,下面我們將一一講述。

  1. 什麼是線性迴歸?
  2. 如何求線性迴歸的解?
  3. 如何評價線性迴歸的解?
  4. 如何評價估算出來的線性模型?
  5. 如果模型中存在定性變數應如何處理?
  6. 如果有互動項應如何處理?
  7. 其他需要考慮的問題有哪些?

1、什麼是線性迴歸?

線性迴歸由兩個片語成的:線性和迴歸。線性用來描述變數X(variable 或predictor或feature)的係數與響應Y(response)之間的關係是線性的。迴歸說明它的響應是定量(quantitative)的,而不是定性(qualitative)的。為了便於理解,我們一般先假設最簡單的情況:當變數是單變數(Simple linear regression)的時候。這個模型可以用代數表達:
y=β0+β1x1+ϵ......(1)

其中β0β1是我們所要估計的未知引數(coefficients 或parameters),ϵ 代表誤差(可以先不用考慮)。從幾何的角度上看Y是X的一次函式,在二維座標中,它們的關係如圖1所示:
圖1. 線性迴歸模型在二維空間的關係,x軸表示變數,y軸表示響應,則 和 分別代表截距(intercept)和斜率(slope)。紅色的點表示樣本,藍色粗實線表示通過樣本計算出來的引數進而擬合出來的模型,順直的細線表示樣本與模型的誤差。(注:圖片來至《a introduce of statistical learning》)
同理可以擴充套件到多變數線性迴歸模型(multiple linear regression),其模型可以表達為:

y=β0+β1x1+...+βpxp+ϵ......(2)
p表示變數的個數,β0,β1,…,βp表示需要估計的引數,共有p+1個,ϵ代表誤差(可以先不用考慮)。其中變數X可以是不同形式:
. 是定量資料(quantitative),我們遇到大部分是這種情況;
. 定量資料X的各種轉換,如:取對數logX;取平方x
2
;取倒數1/X等等;
. 定量資料X的基擴充套件(basic expansion),如x2=x21,x3=x31,這就變成多項式迴歸;
. 表示離散值,比如一些定性的變數(qualitative),如性別:男和女等;
. 變數之間的互動(interaction),比如 x3=x1x2.
雖然上述有些情況X並不是線性的,但Y仍然是線性迴歸模型,只不過在模型的解析上會有不同,我們仍然可以用公式(2)來描述。在後面的章節我們會逐一解析。
假設在三維空間,即有2個變數x1x2 ,則Y是個平面,如圖2所示:
圖2. 線性迴歸模型在三維空間的表示。紅色實心點表示樣本,平面表示通過這個樣本計算出來的線性迴歸模型。順直的黑色實線表示樣本到平面的距離,及樣本和模型的誤差。(注:圖片來至《a introduce of statistical learning》)
如果有三個或三個以上的變數,則Y(模型)是個超平面,目前很難視覺化,只能靠想象了。
線性迴歸是一種有監督學習(supervised learning),即用已知的資料來訓練生成模型。既然我們已經假設模型是線性的,我們如何根據我們所擁有的資料來求它的解(引數)?

2、 如何求線性迴歸模型的解?

問題描述:
假設有N個樣本(x1,y1),(x2,y2) ,…(xn,yn),每個樣本有p個變數xi=(xi1,xi2,...,xip) ,求 β0β1 、…、βp ,使得這些訓練樣本與得出的模型的擬合度最好。
最常用的是的方法是最小二乘法(least squares),該方法早在1805年法國科學家勒讓德(Legendre)就已經發表了,接著高斯(gauss)也在1809年發表了該方法,並稱該方法在1795年他就提出了,所以就產生了爭議[1]。最小二乘法,用殘差平方和(Residual Sum of Squares, RSS)來描述樣本與模型的擬合度,定義如下:

RSS(β)=i=1N(yiβ0j=1pxijβj)2......(3)
yi表示樣本的響應,括號的另外兩項表示通過樣本的變數,我們估計出來的模型。其中β=(β0β1 、…、βp ),表示最後要求的引數。RSS越小表示擬合得越好。所以問題可以轉換為:
minβRSS(β)......(4)
在機器學習中用代價函式(cost function)來表示,只不過代價函式對RSS做了一個2倍的平均:
J(β)=(1/2N)RSS(β)
其實它對解的結果並沒有影響。
如何求β使其在訓練樣本中擁有最小RSS?統計學習一般用最小二乘法,機器學習一般用梯度下降法(Gradient Descent,GD)。下面介紹這兩種方法。

2.1 最小二乘法

2.1.1 定義:

為了方便表示,我們用矩陣的方法表示RSS:

RSS(β)=(YXβ)T(YXβ)....

相關推薦

線性迴歸(Linear regression)及其相關問題

前言: True regression functions are never linear! 自從學了Andrew Ng上的machine learning及Trevor Hastie和Rob Tibshirani 的statistical learning

機器學習(二)--------單變數線性迴歸(Linear Regression with One Variable)

   面積與房價 訓練集 (Training Set)  Size       Price 2104       460 852         

線性迴歸linear regression

損失函式:均方誤差 使用梯度下降法求解 θ \theta

線性迴歸 (Linear Regression)

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

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

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

統計學 簡單的線性迴歸(Linear Regression)

線性迴歸的作用: 當我們獲得資料之後, 我們想要知道這些資料間元素的關係, 我們可以定義一個等式去描述這中關係. 這就是線性迴歸的作用.  dependent variable: 就是要被預測的變數

機器學習方法:迴歸(一):線性迴歸Linear regression

開一個機器學習方法科普系列:做基礎回顧之用,學而時習之;也拿出來與大家分享。數學水平有限,只求易懂,學習與工作夠用。週期會比較長,因為我還想寫一些其他的,呵呵。 content: linear regression, Ridge, Lasso Logi

基於Tensorflow實現基本的線性迴歸(Linear regression)

線性迴歸(Linear_regression) 本文基於Tensorflow實現基本的線性迴歸 1.numpy匯入資料 train_X = numpy.asarray([3.3,4.4,5.5,6.71,6.93,4.168,9.779

通俗理解線性迴歸(Linear Regression)

線性迴歸, 最簡單的機器學習演算法, 當你看完這篇文章, 你就會發現, 線性迴歸是多麼的簡單. 首先, 什麼是線性迴歸. 簡單的說, 就是在座標系中有很多點, 線性迴歸的目的就是找到一條線使得這些點都在這條直線上或者直線的周圍, 這就是**線性迴歸(Linear Regression)**. 是不是有

Python線性迴歸模型原理及其應用

前言 最近有在學習網易雲課堂上《吳恩達機器學習》這門課程, 受益匪淺, 然後打算將有關線性迴歸模型的知識點總結下來, 也就有了本文. 若存在錯誤的地方, 還請指正, 謝謝! 目錄 1. 一元線性迴歸 2. 多元線性迴歸 3. 兩大演算法優缺點 4. 演算法優化問題 5. 多元線性迴歸應用 正文

多元線性迴歸方程原理及其推導

多元線性方程原理及推導 概念 1.在統計學中,線性迴歸方程是利用最小二乘函式對一個或多個自變數之間關係進行建模的一種迴歸分析。這種函式是一個或多個稱為迴歸係數的模型引數的線性組合。只有一個自變數的情況稱為簡單迴歸,大於一個自變數的情況叫多元迴歸。 2.線上性迴歸

線性迴歸 linea regression 原理及推導

概述 優點:容易計算,易於理解和實現 缺點:容易欠擬合 適用資料型別:數值型和標稱型 口頭描述 線性迴歸試圖構造一個線性函式,去擬合儘可能多的樣本點。重點是如何確定線性函式的引數,使得該函式儘量穿過

機器學習-多元線性迴歸(Multiple Regression)演算法

學習彭亮《深度學習基礎介紹:機器學習》課程 與簡單線性迴歸區別 簡單線性迴歸:一個自變數(x) 多元線性迴歸:多個自變數(x) 多元迴歸模型 y=β0+β1x1+β2x2+ … +βpxp+ε 其中:β0,β1,β2… βp是引數

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

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

機器學習筆記——線性迴歸Linear Regression

線性迴歸演算法 1 簡單線性迴歸(Simple Liner Regression) 解決迴歸問題 思想簡答,容易實現 許多強大的非線性模型的基礎 結果具有很好的可解釋性 蘊含機器學習中的很多重要思想 1.1 什麼是線性迴歸演算法?

線性迴歸linear regression)

線性迴歸(liner regression) 1、迴歸問題 迴歸問題和分類問題很相似,迴歸問題輸出的是一個標量(scalar),即輸出的是一個連續的值。 迴歸其實就是預測,根據輸入(Input)得到輸出(output)。關鍵是 如何描述輸入與輸出的關係,輸入與輸出的關係 是一種

用python來實現機器學習(一):線性迴歸linear regression

需要下載一個data:auto-mpg.data 第一步:顯示資料集圖 import pandas as pd import matplotlib.pyplot as plt columns = ["mpg","cylinders","displacement","horsepowe

機器學習之線性迴歸Linear Regression

線性學習中最基礎的迴歸之一,本文從線性迴歸的數學假設,公式推導,模型演算法以及實際程式碼執行幾方面對這一回歸進行全面的剖析~ 一:線性迴歸的數學假設 1.假設輸入的X和Y是線性關係,預測的y與X通過線性方程建立機器學習模型 2.輸入的Y和X之間滿足方程Y= θ

ML-matlab實現linear regression線性迴歸

最近在系統學習ML(機器學習) 這裡給出部分實驗所需程式碼 說明 環境: matlab r2014b macos 程式碼 說明:線性迴歸是簡單的不能再簡單的入門操作了,關於證明這裡就不再給出了。資料很多

機器學習之線性迴歸演算法(Linear Regression)(含python原始碼)

機器學習之線性迴歸演算法(Linear Regression) 線性迴歸(Linear Regression)演算法屬於有監督的迴歸(Regression)學習演算法。迴歸(Regression)演算法通過建立變數之間的迴歸模型,通過學習(訓練)過程得到變數與