1. 程式人生 > >機器學習筆記(一):多元線性迴歸

機器學習筆記(一):多元線性迴歸

前言

從去年底開始接觸機器學習,由於自己數學一直是不及格加畢業後就幾乎沒用過的狀態,很多公式和原理都不記得或者上學時就沒認真聽過的,因此看機器學習的書,連看懂符號都很難。
之前看過網上一個關於如果讓程式設計師來寫的數學教材的段子
就是這樣
然後我看機器學習的書基本就是這樣的狀態,一頭霧水,很多文章在推導公式的過程中不會說用到了什麼公理,法則,或者不會提自己用到的變數符號的定義。
不過當自己學習了一段時間以後也發現要把公式推導過程清楚的記錄下來確實太難了,需要精心的編排, 不過如果是聽老師講課,再結合自己查相關數學公式和知識,應該要快很多。
自己這篇文章希望能把機器學習中用到的數學公式和符號都串聯起來,讓後面學習的人可以更容易把裡面用到的數學知識串聯起來。

機器學習之一: 線性迴歸

1.線性迴歸簡介

  1. 迴歸的定義: 指的是確定兩種或兩種以上變數間相互依賴的定量關係的一種統計分析方法。迴歸分析按照涉及的變數的多少,分為一元迴歸和多元迴歸分析。
  2. 線性迴歸: 線性迴歸使用最佳的擬合直線(也就是迴歸線)在因變數(Y)和一個或多個自變數(X)之間建立一種關係的迴歸方法。
  3. 一元線性迴歸: 只有一個自變數的線性迴歸。
  4. 多元線性迴歸: 有多個自變數的線性迴歸。

2.一些術語

  1. 擬合: 形象的說,擬合就是把平面上一系列的點,用一條光滑的曲線連線起來。因為這條曲線有無數種可能,從而有各種擬合方法。擬合的曲線一般可以用函式表示
  2. 欠擬合: 欠擬合就是模型沒有很好地捕捉到資料特徵,不能夠很好地擬合數據
  3. 過擬合: 過擬合是指為了得到一致假設而使假設變得過度嚴格。通常就是對訓練資料判斷非常準,但是泛化到新資料的時候就不準了的情況,避免過擬合是機器學習中一個核心任務。
  4. 自變數(Independent variable)

    1. f(x) = ax+b中, x就是自變數,是一個函式式中對結果產生影響的變數
    2. 看英文才知道,自變數是不受其他影響的變數
  5. 因變數(dependent variable)

    1. f(x) = y = ax+b 中,y就是因變數,是自變數導致的結果變數
    2. 也是看英文才知道,因變數是要受到其他影響的變數

3.用到的數學知識

  1. 線性代數中的向量,矩陣。
  2. 矩陣四則運算,逆矩陣,矩陣轉置,矩陣的跡。
  3. 微積分中的導數,偏導數,求導方法,矩陣求導方法。
  4. 最小二乘法

數學符號

  1. 導數的符號
    f(x)
    dydx
  2. 偏導數
    θiJ(θ)
  3. 矩陣轉置T
    AT
  4. 矩陣的跡tr
    trA

3.1導數

  1. 導數(Derivative)是微積分中的重要基礎概念。當函式y=f(x)的自變數X在一點x0上產生一個增量Δx時,函式輸出值的增量Δy與自變數增量Δx的比值在Δx趨於0時的極限a如果存在,a即為在x0處的導數,記作f’(x0)或df/dx(x0)。
  2. 設有二元函式z=f(x,y),點(x0,y0)是其定義域D內一點.把y固定在y0而讓x在x0有增量△x,相應地函式z=f(x,y)有增量(稱為對x的偏增量)△z=f(x0+△x,y0)-f(x0,y0)。如果△z與△x之比當△x→0時的極限存在,那麼此極限值稱為函式z=f(x,y)在(x0,y0)處對x的偏導數(partial derivative)。記作f’x(x0,y0)。
    f(x)=limx0f(x+x)f(x)x
  3. 導數和偏導沒有本質區別,都是當自變數的變化量趨於0時,函式值的變化量與自變數變化量比值的極限.一元函式,一個y對應一個x,導數只有一個.二元函式,一個z對應一個x和一個y,那就有兩個導數了,一個是z對x的導數,一個是z對y的導數,稱之為偏導.
  4. 一元函式,一個y對應一個x,導數只有一個.
    二元函式,一個z對應一個x和一個y,那就有兩個導數了,一個是z對x的導數,一個是z對y的導數,稱之為偏導.
    求偏導時要注意,對一個變數求導,則視另一個變數為常數,只對改變數求導,從而將偏導的求解轉化成了一元函式的求導了。

3.2求導運演算法則

  1. 符號: y’ 表示y的導數
  2. 基本法則
    (C)=0
    (xn)=nxn1

4. 線性迴歸推導

4.1 場景和設定

  1. 我們想要分析房價(Y) 與一些輸入特徵,比如面積(x1),房間數(x2)之間的關係,這裡面房價就是我們要預測的結果,就是因變數;房間數和麵積就是對房價的影響變數,也就是自變數。
  2. 我們用h(x)表示我們要預測的房價結果,這裡h是hypothesis(假設).
  3. θ是我們想要通過機器學習求出的影響引數(parameters),有多少個自變數就有多少影響引數。
  4. hθ(x)表示對特徵x預測的花費(cost), 下面的方程也就是cost function
  5. n表示特徵數量,i表示第i個特徵
  6. m表示樣本數量, j表示第j個樣本

4.2方程表示

  1. 當只有一個自變數時,線性迴歸方程的寫法是
    h(x)=hθ(x)=θ0+θ1x1
  2. 當有兩個自變數時,就是多元線性迴歸
    h(x)=hθ(x)=θ0+θ1x1+θ2x2
  3. 為了簡化寫法,設定x0=1, 則可以寫成求和方程,並簡化為向量表示方法
    hθ(x)=i=02θixi=θTX
  4. 顯然hθ(x)是個實數

4.3最小二乘法求解(least square)

  1. 我們想通過求每個θ的值,帶入到未知房屋求解房價,當針對每個樣本用hθ(xi)求出的價格跟訓練樣本的已知價格誤差之和最小時,說明我們的影響引數θ是最準的,因此是求讓所有樣本誤差最小的引數θ
  2. 通過誤差(殘差)平方和的最小值來尋找資料的最佳函式匹配的方法就是最小二乘法.
  3. 求解目標的方程表示

    J(θ)=minθ12i=1m(hθ(x(i))y(i))2

    為什麼要用1/2呢,是因為這對後面求解方程有好處,但是也不會影響最終結果才加上的

  4. 一般有兩種最小二乘法的求解方法,noraml equation(一般函式求解)和Gradient Descent(梯度下降法)

  5. 先給出結果方程, noraml equation(一般函式求解),θ上面加個^表示是估計值。
    θ^=(XTX)1XTy
  6. 梯度下降法求解的結果方程式