機器學習|回歸問題與python實現(xiàn)

大多數(shù)的回歸問題想诅,都可以使用最小二乘法來求解參數(shù)召庞,而求解參數(shù)的過程又通常依賴梯度下降法岛心。不僅是回歸問題,很多機器學習都是基于梯度下降來實現(xiàn)參數(shù)優(yōu)化篮灼,因此梯度下降可以說是機器學習的核心算法之一忘古。簡單地說梯度下降利用導數(shù),通過不斷迭代诅诱,經(jīng)過有限次的運算髓堪,逐漸逼近最優(yōu)解。

1.?一元回歸與最小二乘

直接看吳恩達老師課程中的例子》晁遥現(xiàn)在有一些房價和面積的數(shù)據(jù)(x,y)旦袋,想找出他們之間的關系骤菠。

我們可以大概畫出散點圖它改,通過圖形分布,假設他們之間是線性關系商乎。那么這個例子可以抽象為央拖,求一個方程f(x) = k*x+b,使預測值f(x)與真實值y盡量接近鹉戚。

如何算是接近鲜戒?我們定義一個新的函數(shù)來判斷接近程度。這個函數(shù)叫做損失函數(shù)抹凳,用差平方來表示,[f(x)-y]2遏餐。它反映了預測值與真實值的偏離程度。差平方和則反映了所有樣本的偏離大小赢底。將參數(shù)k和b用p取代失都,假設共有m個樣本,那么擬合問題就成了找一組p值幸冻,使如下函數(shù)值最小粹庞。

這種擬合方法稱為最小二乘法。現(xiàn)在我們不繼續(xù)深究洽损,因為這個一元問題用Excel就能搞定了:

2. 多元回歸與梯度下降

一元線性回歸只是其他更復雜模型中的一個特例庞溜,實際數(shù)據(jù)也往往并不會這么簡單。現(xiàn)在我們給數(shù)據(jù)增加一個維度碑定,探究一下房間數(shù)量流码、房屋面積和價格間的關系。

根據(jù)上面的思路延刘,首先假設還是線性關系漫试。將參數(shù)統(tǒng)一表示為θn(或叫做權重,相當于一元中的k访娶,b)商虐,xn為數(shù)據(jù)特征觉阅,本例中兩個數(shù)據(jù)特征分別為面積和房間數(shù)量。用多元回歸對房價進行擬合秘车。這里設x0=1典勇。

同樣,引入經(jīng)驗風險J(θ)叮趴,相當于上文中的S(P)割笙,表示數(shù)據(jù)總體的誤差。前面乘以0.5眯亦,是方便后面的求導運算:

為了使決策函數(shù)更接近真實值之間的關系伤溉,經(jīng)驗風險越小越好。到這里妻率,最優(yōu)問題就成了求最小值問題乱顾。J(θ)這個函數(shù)可以看成是這樣的。

如何到達最低點宫静,從而使J(θ)最小呢走净?接下來就需要梯度下降法了。首先孤里,隨機給定一組θ值伏伯,得到一個解。在這個解的基礎上進行優(yōu)化捌袜,讓θj沿著J(θ)下降最快的方向说搅,也就是導數(shù)的反方向移動一小步,得到一個新的θj虏等,再繼續(xù)優(yōu)化弄唧,重復上述過程,多次調整后博其,最終沿著“path”套才,達到最低點。表達式如下。

其中“α”叫做學習率,代表了每一次優(yōu)化的步長闯传。步長太大,容易直接跳過最優(yōu)解傻寂,步長太小,迭代次數(shù)過多携兵,學習效率降低疾掰。“:=”表示從右向左賦值徐紧,新產生的值會再次迭代静檬,直到求出最小值炭懊。

對θj求偏導數(shù),根據(jù)加減法則及鏈式求導法則得到以下等式:

最終梯度下降法表達式如下:

3. 回歸問題的python實現(xiàn)

在python的scipy庫中拂檩,提供了leastsq函數(shù)侮腹,直接實現(xiàn)此目的,語法如下:

scipy.optimize.leastsq(func,x0,args=(),……)

func:預測值與實際值的差稻励,需要帶有至少一個變量父阻,并返回數(shù)值型數(shù)據(jù)。

x0:初始參數(shù)望抽,作為學習的起點加矛。格式為數(shù)組。

args:訓練集煤篙。

leastsq函數(shù)的目標是斟览,求得如下的一個值:

是不是很熟悉?把func(y)**2作為誤差函數(shù)舰蟆,再經(jīng)過sum求和趣惠,就等于經(jīng)驗風險。即求一個y值身害,使經(jīng)驗風險J(θ)或S(p)最小。

Python實現(xiàn)過程分為以下四個步驟

(1)定義擬合函數(shù)

def?f(x1, x2, p):

? ? k0, k1, k2 = p

? ? returnk0 +k1*x1 + k2*x2

(2)定義誤差函數(shù)

def?cost(p,x1,x2,y):

? ? return?y-f(x1,x2, p)

(3)初始化參數(shù)

p0=[1,1,1]

x1=np.array([2104,1600,2400,1416,3000])

x2=np.array([3,3,3,2,4])

y=np.array([400,330,369,232,540])

(4)用leastsq求解

arg =?leastsq(cost,p0,args=(x1,x2,y))

print?arg[0]

完整代碼如下:

輸出

[-7.04346018e+01 ? ? 6.38433756e-02 ? ? 1.03436047e+02]

4. 正規(guī)方程組

梯度下降法通過多次迭代草戈,最終求出最優(yōu)解塌鸯。如果想一次性求出結果,也能夠實現(xiàn)唐片。即利用最優(yōu)解處丙猬,導數(shù)為0特征直接求解。與梯度下降法類似费韭,用x(i)列向量表示第i個數(shù)據(jù)里所有的變量特征茧球,θ列向量表示每個特征對應的權重,y向量表示每組數(shù)據(jù)的實際輸出星持。每個預測值和實際值的差用如下方程表示:


接著寫出風險函數(shù):


對風險函數(shù)求導:


并使導數(shù)等于0抢埋,即可能存在的最優(yōu)解:


最后編輯于
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市督暂,隨后出現(xiàn)的幾起案子揪垄,更是在濱河造成了極大的恐慌,老刑警劉巖逻翁,帶你破解...
    沈念sama閱讀 207,113評論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件饥努,死亡現(xiàn)場離奇詭異,居然都是意外死亡八回,警方通過查閱死者的電腦和手機酷愧,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,644評論 2 381
  • 文/潘曉璐 我一進店門驾诈,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人溶浴,你說我怎么就攤上這事翘鸭。” “怎么了戳葵?”我有些...
    開封第一講書人閱讀 153,340評論 0 344
  • 文/不壞的土叔 我叫張陵就乓,是天一觀的道長。 經(jīng)常有香客問我拱烁,道長生蚁,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 55,449評論 1 279
  • 正文 為了忘掉前任戏自,我火速辦了婚禮邦投,結果婚禮上,老公的妹妹穿的比我還像新娘擅笔。我一直安慰自己志衣,他們只是感情好,可當我...
    茶點故事閱讀 64,445評論 5 374
  • 文/花漫 我一把揭開白布猛们。 她就那樣靜靜地躺著念脯,像睡著了一般。 火紅的嫁衣襯著肌膚如雪弯淘。 梳的紋絲不亂的頭發(fā)上绿店,一...
    開封第一講書人閱讀 49,166評論 1 284
  • 那天,我揣著相機與錄音庐橙,去河邊找鬼假勿。 笑死,一個胖子當著我的面吹牛态鳖,可吹牛的內容都是我干的转培。 我是一名探鬼主播,決...
    沈念sama閱讀 38,442評論 3 401
  • 文/蒼蘭香墨 我猛地睜開眼浆竭,長吁一口氣:“原來是場噩夢啊……” “哼浸须!你這毒婦竟也來了?” 一聲冷哼從身側響起兆蕉,我...
    開封第一講書人閱讀 37,105評論 0 261
  • 序言:老撾萬榮一對情侶失蹤羽戒,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后虎韵,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體易稠,經(jīng)...
    沈念sama閱讀 43,601評論 1 300
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 36,066評論 2 325
  • 正文 我和宋清朗相戀三年包蓝,在試婚紗的時候發(fā)現(xiàn)自己被綠了驶社。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片企量。...
    茶點故事閱讀 38,161評論 1 334
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖亡电,靈堂內的尸體忽然破棺而出届巩,到底是詐尸還是另有隱情,我是刑警寧澤份乒,帶...
    沈念sama閱讀 33,792評論 4 323
  • 正文 年R本政府宣布恕汇,位于F島的核電站,受9級特大地震影響或辖,放射性物質發(fā)生泄漏瘾英。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 39,351評論 3 307
  • 文/蒙蒙 一颂暇、第九天 我趴在偏房一處隱蔽的房頂上張望缺谴。 院中可真熱鬧,春花似錦耳鸯、人聲如沸湿蛔。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,352評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽阳啥。三九已至,卻和暖如春捌省,著一層夾襖步出監(jiān)牢的瞬間苫纤,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 31,584評論 1 261
  • 我被黑心中介騙來泰國打工纲缓, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人喊废。 一個月前我還...
    沈念sama閱讀 45,618評論 2 355
  • 正文 我出身青樓祝高,卻偏偏與公主長得像,于是被迫代替她去往敵國和親污筷。 傳聞我的和親對象是個殘疾皇子工闺,可洞房花燭夜當晚...
    茶點故事閱讀 42,916評論 2 344

推薦閱讀更多精彩內容