核光滑方法

注意:這裏將的核函數和講希爾伯特空間提到的核函數不是一回事,這裏的核函數僅僅作爲一種局部化的表示工具。而另一種核函數是在高維空間內計算內積,解決非線性問題的。

基本思想是使用靠近目標點x0 處的點來生成預測模型。
我們通常使用權重函數或者核數Kλ(x0,xi) ,來達到函數光滑的效果。這兩種方法都是參考xix0 的距離,給xi 賦予一個權重。越靠近x0 的權重越大,對x0 的預測值的影響越大。

注:核函數Kλ 使用λ 來索引,λ 代表鄰域的寬度

這種方法還可以稱爲memorybased methods ,大意就是說模型其實就是數據集本身,在預測的時候完成訓練。

一維空間

KNN
圖中:k近鄰方法,(xi,yi) ,i=1,…,100,K=30。
左圖直接使用平均數預測y0 ,可以發現左圖的平均數是不光滑,不連續的。爲了解決這種問題,我們給參與預測的 yi 賦上權重。

NadarayaWatson kernelweighted average

f(x0)=Ni=1Kλ(x0,xi)yiNi=1Kλ(x0,xi)Kλ(x0,x)=D(|xx0|λ)

D(t)=34(1t2), |t|10, other

通過上面的方法就能得到右圖。

直觀的理解就是:假設我們將x0 從左向右移動,剛進入鄰域的點的權值爲0,慢慢增大。權重作用的區域是通過λ 來調節。

爲了使上述核函數更有一般性,我們可以使用hλ(x0) 來表示寬度函數(之前我們使用λ 來表示寬度):

Kλ(x0,x)=D(|xx0|hλ(x0))
  • hλ(x0) 在KNN裏面就是x0 近鄰個數k
  • 上面的例子裏hλ 就是λ

局部線性迴歸

這裏寫圖片描述

通過使用核權重的方法,我們可以獲得光滑的曲線
。但是,核函數不具有對稱性,因此,當x0 處於邊界
位置的時候,預測會出現問題。如圖顯示的紅色點。
我們可以使用局部線性迴歸:

minα(x0),β(x0)i=1NKλ(xo,xi)[yiα(x0)β(x0)xi]2f^(x0)=α^(x0)+β^(x0)x0

:
我們可以換一種形式來寫預測函數:
f^(x0)=α^x0+β^x0x0 ,也就是說 α^(x0)β^(x0) 是預測函數的係數,它們不是x0 的函數。

我們可以顯示地給出預測函數:

f^(x0)=b(x0)T(BTW(x0)B)1BTW(x0)y=i=1Nli(xo)yi


  • b(x)T=(1,x)
  • BRN×N,Bi=b(xi)T
  • WRN×N,Wi=Kλ(x0,xi)

:這式子怎麼推導我沒想出來,但是和線性迴歸裏的函數挺像的:

y^=Xβ^=X(XTX)1XTy
  • b(x0)  X
  • BT  BTW(x0)
  • 通過這個式子,我們可以發現預測函數是關於yi 的線性函數。

    模型bias分析

    Ef^(x0)=i=1Nli(x0)f(xi)=f(x0)i=1Nli(x0)+f(x0)i=1N(xix0)li(x0)+f′′(x0)2i=1N(xix0)2li(x0)+R

    又因爲
    b(x0)T=b(x0)T(BTW(x0)B)1BTW(x0)B(1,x0)=b(x0)T(BTW(x0)B)1BTW(x0)[1,x0]

    所以
    1x0=b(x0)T(BTW(x0)B)1BTW(x0)1=i=1Nli(x0)=b(x0)T(BTW(x0)B)1BTW(x0)x0=i=1Nli(x0)xi

    所以
    i=1Nli(x0)=1i=1N(xix0)li(x0)=0

    所以
    bias=Ef^(x0)f^(x0)=f′′(x0)2i=1N(xix0)2li(x0)+R

    所以我們可以看到bias 依賴於二階及以上導數。

    局部多項式迴歸

    多項式迴歸的表達形式如下:

    minα(x0),β(x0),j=1,..,di=1NKλ(x0,xi)[yiα(x0)j=1dβj(x0)xji]2

    var(f^(x0))=E[f^2(x0)][E[f^(x0)]]2=σ2||l(x0)||2

    |||l(x0)| 隨着維度d 增大而增大。

    部分證明參考: 習題答案

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