機器學習-局部加權迴歸

Locally weighted regression,局部加權迴歸 
對於線性迴歸,問題是選取的特徵的個數和什麼特徵會極大影響fit的效果。
好比下圖,是分佈使用下面幾個模型進行擬合的 :
算法

一般會認爲第一個模型underfitting(欠擬合),而第三個模型overfitting(過擬合),第二個模型相對比較好的fit到訓練集 
因此能夠看出,找出一個全局的線性模型去fit整個訓練集,是個比較困難的工做,由於選擇特徵成爲一個關鍵的因素。
局部加權線性迴歸的思路,就是我不須要去fit整個訓練集而產生全局的模型,而是在每次predict x的時候,只去擬合x附近的一小段訓練集。
不管全局訓練集是多麼複雜的一個分佈曲線,但在局部小段數據上,均可以用線性去逼近。 
因此算法以下:
其中函數

能夠看到咱們經過weight來選取局部樣本點,這裏weight定義有點相似高斯分佈,雖然這裏和高斯分佈沒有關係,只是剛好類似,可是他的分佈曲線確實和高斯分佈同樣,鍾型,因此經過weight,只有距離x很近的樣本點纔會對於損失函數有做用。局部加權線性迴歸算法是一種non-parametric algorithm而普通的線性迴歸是parametric learning algorithm 
parametric learning algorithm有一組有限的,固定的參數,一旦完成fit,只須要保存下參數值來作預測,而不須要保存完整的訓練集 。
non-parametric algorithm,相反,咱們須要保存完整的訓練集來進行預測,而不是僅僅保存參數 
正式定義爲,the amount of stuff we need to keep in order to represent the hypothesis h grows linearly with the size of the training set. 
爲了表達假設h而保存的數據隨着訓練集的size而線性增加。
spa

前面討論了線性迴歸問題, 符合高斯分佈,使用最小二乘來做爲損失函數。下面繼續討論分類問題,分類問題和迴歸問題不一樣在於Y的取值是離散的。
咱們先討論最簡單的binary classification,即Y的取值只有0和1。
分類問題通常不會使用迴歸模型,由於迴歸模型是輸出是連續的,而分類問題須要的輸出是離散的。可是必定要用也不是不能夠,好比這裏繼續使用線性迴歸模型,可是不是很是適合,緣由以下:
一、首先線性模型的Y取值是連續,且沒有限制的,而二元分類的取值爲[0,1],對於線性迴歸模型,參考下圖,能夠以0.5爲分界線,大於則取1,小於則取0,也能夠轉化爲離散的結果。
二、再者,其實只有在分界線周圍的樣本點對分類模型會有比較大的影響,而比較遠的樣本點其實對模型沒啥影響 
但對於線性模型而言,增長任何樣本點都會對模型產生相同的影響
blog

 

因此提出logistic迴歸模型,這種迴歸模型能夠比較好的解決二元分類問題。
從本質上你仍然能夠把他理解爲線性模型,你能夠看下面給出的H函數,只是在線性迴歸外面加上logistic函數進行轉換,能夠理解成把上圖的直線轉化爲那條sigmoid曲線,使其更加符合二元分類的需求。可是本質上能夠當作仍然是用那條直線進行劃分。
get

相關文章
相關標籤/搜索