淺談機器學習中的線性回歸
Cost Function的用途:對假設的函數(shù)進行評價,cost function越小的函數(shù),說明擬合訓練數(shù)據(jù)擬合的越好;
1、最小二乘法:
何為最小二乘法,其實很簡單。我們有很多的給定點,這時候我們需要找出一條線去擬合它,那么我先假設這個線的方程,然后把數(shù)據(jù)點代入假設的方程得到觀測值,求使得實際值與觀測值相減的平方和最小的參數(shù)。對變量求偏導聯(lián)立便可求。
比如測定一個刀具的磨損速度,也就是說,隨著使用刀具的次數(shù)越多,刀具本身的厚度會逐漸減少,故刀具厚度與使用時間將成線性關系,假設符合f(t)=at + b(t代表時間,f(t)代表刀具本身厚度),a,b是待確定的常數(shù),那么a、b如何確定呢?最理想的情形就是選取這樣的a、b,能使直線y = at + b 所得到的值與實際中測量到的刀具厚度完全符合,但實際上這是不可能的,因為誤差總是存在難以避免的。故因誤差的存在,使得理論值與真實值存在偏差,為使偏差最小通過偏差的平方和最小確定系數(shù)a、b,從而確定兩變量之間的函數(shù)關系f(t)= at + b。這種通過偏差的平方和為最小的條件來確定常數(shù)a、b的方法,即為最小二乘法。
2、線性回歸:
回歸在數(shù)學上來說是給定一個點集,能夠用一條曲線去擬合之,如果這個曲線是一條直線,那就被稱為線性回歸,如果曲線是一條二次曲線,就被稱為二次回歸.
在研究幾個變量之間的關聯(lián)關系,特別當因變量和自變量為線性關系時,它是一種特殊的線性模型。最簡單的情形是一個自變量和一個因變量,且它們大體上有線性關系,這叫一元線性回歸,即模型為Y=a+bX+ε,這里X是自變量,Y是因變量,ε是隨機誤差。隨機誤差一般都是服從均值為0的正態(tài)分布。
所以可以認為線性回歸就是給出一系列點用來擬合曲線 h(x)=θ+θ1X(線性和非線性其實都一個意思,都是尋找合適的參數(shù)去滿足已有數(shù)據(jù)的規(guī)律。可以通過最小二乘法),當然多維的時候也是一樣的,就是參數(shù)多了一點。
3、對于線性回歸問題的分析流程:
給出一個函數(shù)模型,這個函數(shù)模型有很多個未知參數(shù),然后我們代入很多觀察數(shù)據(jù),但是這樣代入后的方程是很難解的,于是我們通過使用求解近似解,轉化為求解誤差最小化問題。列出誤差項后,使用梯度下降或牛頓方法等求解最小值,確定未知參數(shù)。
(1) 給出假設(hypotheses :h and parameters :θ)
(2)根據(jù)給出的training set,學習求出θ。
我們給出一個代價函數(shù),其實就是最小二乘法:
(3)找到一個θ使得J(θ)最小。
我們要求J(Θ),但是我們不知道參數(shù),而且總不能一個一個窮舉出來看哪個最小。因此我們用到梯度下降法(gradient descent),找到θ 使得 J(θ)最小。
4、梯度下降法(gradient descent)
梯度下降算法是一種求局部***解的方法,對于F(x),在a點的梯度是F(x)增長最快的方向,那么它的相反方向則是該點下降最快的方向,具體參考wikipedia。
原理:將函數(shù)比作一座山,我們站在某個山坡上,往四周看,從哪個方向向下走一小步,能夠下降的最快;
注意:當變量之間大小相差很大時,應該先將他們做處理,使得他們的值在同一個范圍,這樣比較準確。
1)首先對θ賦值,這個值可以是隨機的,也可以讓θ是一個全零的向量。
2)改變θ的值,使得J(θ)按梯度下降的方向進行減少。
描述一下梯度減少的過程,對于我們的函數(shù)J(θ)求偏導J:
Repeat until convergence:{
下面是更新的過程,也就是θi會向著梯度最小的方向進行減少。θi表示更新之前的值,-后面的部分表示按梯度方向減少的量,α表示步長,也就是每次按照梯度減少的方向變化多少。
}
5、局部加權線性回歸:
對于線性回歸問題,一般使用最小二乘法還有牛頓法啦。使用最小二乘法只能說是***,但是并不能知道置信度。還有就是有時候使用線性回歸可能導致模擬的曲線“欠擬合”,這種情況下
我們就使用局部加權線性回歸,可以比較好的模擬曲線。 就是加個權值而已
重新構造新的代價函數(shù)j(x)
。
我們從權值函數(shù)的表示就可以看出,離要求x遠的點,權值越小,到***基本為0,也就是說,只有要求x周圍的點起作用。 求法還是和上面一樣的。
6、Logistic/Sigmoid Regreesion Mode:
通過使用一個特定函數(shù),將線性回歸問題轉化為分類問題,即通過使用這個函數(shù)使得y的值在0--1范圍之內。這個函數(shù)可以是Logistic/Sigmoid這樣的。
其實就是把線性回歸的問題拿來做分類,將原來的值域映射到0到1之間。
原文鏈接:http://www.cnblogs.com/GuoJiaSheng/p/3928160.html