机器学习笔记(一) : 线性建模——最小二乘法
討論這個(gè)方法之前,先說(shuō)些題外話。首先,我感覺(jué)機(jī)器學(xué)習(xí)是一門(mén)值得我們?nèi)チ私夂蛯W(xué)習(xí)的一門(mén)技術(shù),它不僅僅應(yīng)用于我們的生活,而且不斷地在改變著我們的方方面面。雖然很早就已經(jīng)接觸它,并開(kāi)始學(xué)習(xí),但是總體感覺(jué)是學(xué)習(xí)的比較混亂,僅以從今天開(kāi)始的一系列文章作為重新總結(jié)和學(xué)習(xí)機(jī)器學(xué)習(xí)的一個(gè)新的歷程。其次,學(xué)習(xí)機(jī)器學(xué)習(xí),要有耐心,要執(zhí)著,要不斷總結(jié)和實(shí)現(xiàn)。最后,也是最重要的,要明白你的初衷是什么,也就是為什么要學(xué)習(xí)它。如果沒(méi)有搞清楚為什么,那還是先弄清楚吧。好了,廢話不多說(shuō)了,開(kāi)始進(jìn)入正題。
一、引言
機(jī)器學(xué)習(xí)中的一個(gè)大類(lèi)的問(wèn)題就是分類(lèi)問(wèn)題。分類(lèi)在我們的生活中也是很常見(jiàn)的,比如說(shuō),你剛進(jìn)入大學(xué),要分清哪些同學(xué)喜歡玩游戲,哪些喜歡學(xué)習(xí),這樣,你想玩游戲的時(shí)候可以找愛(ài)玩游戲的同學(xué)一起,你學(xué)習(xí)遇到難題可以找喜歡學(xué)習(xí)的同學(xué)請(qǐng)教。當(dāng)然,你的好友可以同時(shí)做到以上兩點(diǎn)那是最好不過(guò)的了。
還要提一下分類(lèi)和回歸的區(qū)別,當(dāng)我們要解決的問(wèn)題是預(yù)測(cè)的離散值的時(shí)候,也就是上面提到的例子,分清哪些人喜歡玩游戲,哪些人喜歡學(xué)習(xí),這就是一個(gè)分類(lèi)問(wèn)題。當(dāng)要預(yù)測(cè)的值是一個(gè)連續(xù)值的話,那這就是一個(gè)回歸問(wèn)題。比如,我們可能在剛上大學(xué)的時(shí)候,不了解同學(xué)們平時(shí)喜歡打游戲或者喜歡學(xué)習(xí),但是我們知道他們一系列的其他信息:A同學(xué)周一到周五喜歡去圖書(shū)館、自修室,但是周末就和寢室的同學(xué)打游戲,甚至玩通宵,當(dāng)然還有其他信息。那么,我們的問(wèn)題是A同學(xué)喜歡學(xué)習(xí)的可能性有多大,這個(gè)問(wèn)題的答案是[0,1]上的任意一個(gè)實(shí)數(shù)(這取決于你的預(yù)測(cè)模型),你可能根據(jù)你的系統(tǒng)推測(cè)出A喜歡學(xué)習(xí)的概率是0.51。
二、問(wèn)題的提出
我們考慮簡(jiǎn)單的單一變量的線性回歸。我這里為了簡(jiǎn)便就舉《機(jī)器學(xué)習(xí)基礎(chǔ)教程》上的例子。男子100m比賽贏得金牌不同舉辦年份所需的時(shí)間。如圖1 所示:
通過(guò)上圖,我們至少可以看到年份和獲勝時(shí)間存在一個(gè)關(guān)系。我們要預(yù)測(cè)2016年男子100米金牌所需的時(shí)間。
三、模型假設(shè)
y表示所需時(shí)間, x表示年份,則有如下假設(shè)。
我們現(xiàn)在知道2016年之前每屆奧運(yùn)會(huì)的男子100米金牌所需的時(shí)間,通過(guò)圖一我們看到數(shù)據(jù)點(diǎn)的分布呈現(xiàn)一種趨勢(shì)關(guān)系,假設(shè)它們分布在公式1所示的直線周?chē)?#xff0c;我們的目標(biāo)是找到一條直線,來(lái)擬合我們的觀測(cè)數(shù)據(jù),進(jìn)而用我們找到的這條最佳的線預(yù)測(cè)2016年的男子100m金牌所需時(shí)間。那么,什么樣的直線最好呢?我們?nèi)绾吻蠊?中的 a, b 這兩個(gè)參數(shù)呢?
假定我們的模型已經(jīng)選擇好了,那么衡量這個(gè)模型的一個(gè)常用方式就是用平方損失函數(shù):
上述公式(2)最小,我們就說(shuō)模型對(duì)我們現(xiàn)有的觀測(cè)數(shù)據(jù)來(lái)說(shuō)是最好的,我們暫且拋開(kāi)數(shù)據(jù)過(guò)擬合的問(wèn)題。那么問(wèn)題轉(zhuǎn)化為求 L(t,f(x;a,b))取得最小值時(shí)候的 a,b.令 n代表歷史數(shù)據(jù)的數(shù)目,則我們的損失函數(shù)可以寫(xiě)為:
L=∑in(yi?(axi+b))2(3)
四、推導(dǎo)過(guò)程
用公式(3)分別對(duì)a,b求偏導(dǎo)數(shù),然后令其分別等于0, 這就可以求得a,b. 這里用到了函數(shù)極值,可以參考高等數(shù)學(xué)。
利用公式4,5求解得:
a=∑nixi∑niyi?n∑niyixi(∑nixi)2?n∑nix2i
b=∑nixi∑niyixi?∑nix2i∑niyi(∑nixi)2?n∑nix2i
把 a,b帶入公式1,然后令 x=2016就可以求出所需時(shí)間,擬合直線的效果如圖2所示:
這樣,我們就可以進(jìn)行預(yù)測(cè)了。當(dāng)然,這里只是一個(gè)簡(jiǎn)單的事例,我們并沒(méi)有考慮其他因素。最小二乘法是介紹完了。
五、總結(jié)
本文介紹了最小二乘法擬合數(shù)據(jù)的過(guò)程,最小二乘法是最優(yōu)化方法中的一個(gè),要了解更多優(yōu)化方法,可以看看《最優(yōu)化導(dǎo)論》。本文的事例只考慮了一個(gè)變量:年份,如果有多個(gè)自變量,它們?cè)诳臻g中也滿足線性分布,能不能用最小二乘法去擬合數(shù)據(jù)呢?這個(gè)問(wèn)題,我將在下一篇文章中進(jìn)行介紹。
總結(jié)
以上是生活随笔為你收集整理的机器学习笔记(一) : 线性建模——最小二乘法的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: Java方法重载与方法重写
- 下一篇: 2022年快手磁力金牛服饰行业营销洞察报