1. 程式人生 > >區域性權重線性迴歸

區域性權重線性迴歸

之前的一些知識讓我們總結機器學習的一般過程,是從訓練到預測的順序過程。通過一系列的歷史資料,總結出一個數學模型,再根據數學模型預測未來的結果。
這一切應該都是建立在未來和過去存在聯絡的假設上,未來的一些行為與過去的一些行為類似。同樣的條件下,可能會出現同樣的結果。
之前的線性迴歸模型,也同樣是通過歷史資料,無論是房價的變化還是蟲子的鳴叫。模型認為每份資料的權重是一樣的,對未來預測模型的貢獻是相同的。區域性權重模型會認為,離預測點越近的歷史資料與當前資料的關係越大,他的趨勢越可能表現當前點的資料趨勢。比如你會認為最近一個月的股票走勢比一年前的股票走勢對明天股票漲跌的影響更大。
區域性權重線性迴歸不是一個訓練過程,而是一個結合訓練和預測一體的一種模型。
傳統的線性迴歸模型,是這樣的:
1. 根據歷史資料得到

J ( θ ) = i
( y i θ T x i ) 2

2. 通過梯度下降或者牛頓法等最優化方法尋找合適的 θ ,使得 J ( θ ) 最小
3. 預測新的資料點
而區域性權重線性迴歸是這樣的:
1. 定義 J ( θ ) = i w i ( y i θ T x i ) 2 ,其中 w i = e x p ( ( x i x ) 2 2 τ 2 ) ,其中x即是想預測的值,這樣可以影響每條資料的損失值對總的損失值的影響,離預測點越近影響越大,離得越遠影響越小, τ 稱為頻寬(bandwidth)引數,可以控制x周圍的概念,即控制距離 x 多遠可以參與線性函式的估計, τ 越大,影響力大的點越多,反之,影響力大的點越少。
2. 同樣根據梯度下降或者牛頓法等最優化方法尋找合適的 θ ,使得 J ( θ ) 最小
方法的缺點在於每次預測新資料時,都需要重新計算,而傳統的線性迴歸演算法只需要一次性計算出合適的 θ 後,就可以直接使用,而無需儲存訓練資料集。

當然,我覺得這裡面採用的 w i = e x p ( ( x i x ) 2 2 τ 2 ) 是認為影響資料滿足一種高斯分佈的狀態,簡化的話我覺得可以使用 w i = | 1 x i x | 這種應該也是可以的,或者是更復雜的距離模型,只要能滿足其核心思想:越近的資料影響越大即可。以上是個人的想法,無需在意~