1. 程式人生 > >【機器學習】線性迴歸模型分析

【機器學習】線性迴歸模型分析

具體原理不講了,線性迴歸模型,代價損失函式 COST是均方誤差,梯度下降方法。

  1. 屬性取值。模型的屬性取值設定需要根據每一個引數的取值範圍來確定,將所有的屬性的取值統一正則化normalization,統一規定在0~1的範圍,或者-1~1的範圍內,這樣在進行線性迴歸時不會造成額外的迴歸開銷。另外,正則化的方法有很多,常見的方法就是線性正則化,這是在不知道屬性對預測值的影響的前提下才這麼做的。之所以進行這種正則化,使我們默認了屬性對資料的影響力是均等的。但是實際中很多時候,我們取得的很多屬性根本沒有意義,或者對預測值的影響並非線性,那麼這時就出現了較大的問題,需要根據具體情況來更改。
  2. 模型的解。線性迴歸模型在保證屬性空間內滿秩的情況下,可以不用進行訓練和迭代,直接有現成的公式可用,即通過矩陣運算得到預測值,模型也就確定下來了。但是很多時候,屬性空間維度非常高,而資料空間則數量比較少,必然做不到滿秩,當然,其中有個求逆矩陣的運算也是可以做的, 採用pseudo inverse即可。不滿秩也就無法通過一次矩陣運算得到最優解,得到的是很多個解。因為用代價函式對模型引數求導取值為0的解有很多個,所以就需要在解空間中尋找最優解。
  3. 代價函式。之所以選擇均方誤差為代價函式,優點是:對其求導可以得到一次的導函式,運算簡便;本身是多項式函式,求導性質比較好,而且是最簡單的凸函式,方便找到最小值;相比絕對值函式,它考察了偏離真實值越遠,代價成倍增大,符合實際情況,另外絕對值函式是個分段函式,求導不便。
  4. 對非線性的擬合。方法就是採用屬性的擴充套件,比如,由於我們不知道屬性對預測值的影響是不是線性,可以對屬性進行函式擴充套件,多項式函式,指數函式,對數函式等等,創造出各種屬性,這些屬性進行線性綜合,同時考慮正則化,歸一化,這樣進行訓練得到的擬合效果更好。這是因為,真實的屬性對預測值的影響的函式可能非常複雜,很難用一種簡單的函式進行擬合,因此將各種複雜的函式線性組合形成一個複雜的函式,可以擬合各種函式。泰勒展式告訴我們,多項式函式可以和三角函式相互兌換,也可以和指數函式,對數函式相互兌換。因此,多項式函式、三角函式、指數、對數函式他們相互之間都是一種線性變換,因此都可以擬合任何維度的複雜函式。因此一般就對屬性進行次冪擴充套件,擴充屬性。需要注意的是,這種方法僅限於對資料量很大,屬性不算特別多才成立,否則效果很差。
  5. 對噪聲敏感。由於這種代價函式的選取是根據均方誤差來的,距離真實值越遠,代價就會成差值倍數增加,所以它是對噪聲敏感的,如果資料中一旦有一個數據偏離規範較遠,所謂偏離規範較遠指的是它是真實可靠資料,但是顯得很異常。這樣一來就會導致線性模型的引數發生很大的變化,因為要減少這種資料的誤差。所以,在使用線性迴歸模型之前需要進行去除噪聲。