回歸(一):線性回歸

回歸

通常對于一組特征數(shù)據(jù)和其標(biāo)記值:(x_1, y_1), (x_2, y_2), ..., (x_n, y_n)?,在使用特征值x_i?y_i?進(jìn)行預(yù)測時授霸,根據(jù)習(xí)慣,如果y_i?是連續(xù)的际插,則稱這種操作或者技術(shù)為回歸碘耳;如果y_i?是離散的,則通常稱為分類框弛。

線性回歸

以根據(jù)房屋的屬性來預(yù)測價格為例辛辨,假設(shè)房屋的價格與房屋的面積和居室的數(shù)目有關(guān),如下表所示;

Living area(feet^2) bedrooms Prices
2104 3 400
1600 3 330
2400 3 369
1416 2 232
3000 4 540

把房屋的面積記為特征x_1?斗搞,把居室的數(shù)目記為特征x_2?指攒,價格記為y?。我們猜測x_1, x_2?y?之間僻焚,滿足關(guān)系:

y = \theta_0 + \theta_1x_1 + \theta_2x_2

因此我們可以建立模型:

h_{\theta}(x) = \theta_0 + \theta_1x_1 + \theta_2x_2?

我們也可以把上式寫成向量的形式

h_{\theta}(x) = \sum_{i=0}^{n}\theta_ix_i = \theta^Tx?

其中允悦,\theta是參數(shù),x是我們的訓(xùn)練數(shù)據(jù)和檢測數(shù)據(jù)中的特征值溅呢。實際上,\theta是未知量猿挚,我們的目標(biāo)就是通過訓(xùn)練數(shù)據(jù)調(diào)整\theta咐旧,來使得輸出的結(jié)果更接近真實值。

在將訓(xùn)練的數(shù)據(jù)中的x_1代入绩蜻,都會得到一個輸出\theta^Tx_i铣墨,這個值和真實的y_i之間會存在一個隨機(jī)的誤差\epsilon_i

y^{(i)} = \theta^Tx^{(i)} + \epsilon^{(i)}

我們假定所有的房屋都是獨立的,我們可以認(rèn)為办绝,誤差的存在可能是房屋中的價格還會受到一些其他的因素的影響伊约,而這些因素在建模的過程中沒有體現(xiàn),這些細(xì)枝末節(jié)可能使得房屋的價格有一些震蕩孕蝉。如果把這些因素看成隨機(jī)變量屡律,當(dāng)足夠多的隨機(jī)變量疊加之后,根據(jù)中心極限定理降淮,形成的分布就是正態(tài)分布超埋。因此:

誤差\epsilon^{(i)}(1\leq i \leq m)是獨立同分布的,服從均值為0佳鳖,方差為某定值\sigma^2?的高斯分布霍殴。

我們做一些推導(dǎo):

根據(jù)高斯分布:

p(\epsilon^{(i)}) = \frac{1}{\sqrt{2\pi}\sigma}exp(-\frac{(\epsilon^{(i)})^2}{2\sigma^2})

\epsilon^{(i)}用訓(xùn)練數(shù)據(jù)替換:

p(y^{(i)}|x^{(i)};\theta) = \frac{1}{\sqrt{2\pi}\sigma}exp(-\frac{(y^{(i)} - \theta^Tx^{(i)})^2}{2\sigma^2})?

因為我們認(rèn)為這些數(shù)據(jù)是獨立同分布的,因此所有的訓(xùn)練數(shù)據(jù)的聯(lián)合概率就是各自的邊緣概率的乘積系吩,得到似然函數(shù):

L(\theta) = \prod_{i=1}^m p(y^{(i)}|x^{(i)}; \theta) = \prod_{i=1}^m \frac{1}{\sqrt{2\pi}\sigma}exp(-\frac{(y^{(i)} - \theta^Tx^{(i)})^2}{2\sigma^2})

為了簡化計算来庭,我們對L(\theta)?取對數(shù),得到對數(shù)似然函數(shù):

l(\theta) = logL(\theta)\\ = log\prod_{i=1}^m \frac{1}{\sqrt{2\pi}\sigma}exp(-\frac{(y^{(i)} - \theta^Tx^{(i)})^2}{2\sigma^2}) \\ = \sum_{i=1}^m log\frac{1}{\sqrt{2\pi}\sigma}exp(-\frac{(y^{(i)} - \theta^Tx^{(i)})^2}{2\sigma^2}) \\ = mlog\frac{1}{\sqrt{2\pi}\sigma} - \frac{1}{\sigma^2} \centerdot \frac{1}{2}\sum_{i=1}^m (y^{(i)} - \theta^Tx^{(i)})^2?

當(dāng)我們使用極大似然估計的方法穿挨,則l(\theta)取最大值的時候月弛,去掉式子中的定值部分,就是

J(\theta) = \frac{1}{2}\sum_{i=1}^m(h_{\theta}(x^{(i)}) - y^{(i)})^2

取最小值科盛,這就是最小二乘法的目標(biāo)函數(shù)尊搬。

求解\theta的解析式

將M個N維的樣本組成矩陣X:

  • X的每一行對應(yīng)一個樣本,共有M個樣本
  • X的每一列對應(yīng)樣本的一個維度土涝,共N維
    • 還有一個額外的常數(shù)項佛寿,全為1

目標(biāo)函數(shù):J(\theta) = \frac{1}{2}\sum_{i=1}^m(h_{\theta}(x^{(i)} - y^{(i)}))^2 = \frac{1}{2}(X\theta - y)^T(X\theta - y)?

求梯度:\nabla J(\theta) = \nabla_{\theta} (\frac{1}{2}(X\theta - y)^T(X\theta - y) \\= \nabla_{\theta} (\frac{1}{2}(\theta^TX^T - y^T)(X\theta - y))\\ = \nabla_{\theta}(\frac{1}{2}(\theta^TX^TX\theta -\theta^TX^Ty - y^T(X\theta + y^Ty ))\\ = \frac{1}{2}(2X^TX\theta - X^Ty - (y^TX)^T) \\ = X^TX\theta - X^Ty?

其中用到了線性代數(shù)的公式:

  • \frac{\partial A\theta}{\partial \theta} = A^T?\frac{\partial \theta^TA}{\partial \theta} = A?
  • \frac{\partial \theta^TA\theta}{\partial \theta} = (A + A^T)\theta?冀泻;對于對稱方陣A常侣,\frac{\partial \theta^TA\theta}{\partial \theta} = 2A\theta?

求駐點:令\nabla J(\theta) = 0 \Rightarrow \theta = (X^TX)^{-1}X^Ty?

如果X^TX不可逆或者防止過擬合弹渔,可以加入\lambda擾動:

\theta = (X^TX+\lambda I)^{-1}X^Ty

加入復(fù)雜度懲罰因子

有時胳施,當(dāng)我們認(rèn)為y不僅和x有關(guān)系,還可能和x^2, x^3, ..., x^n有關(guān)系時肢专,我們也可以在上面的式子中加入這些項舞肆。例如,考慮二階的情況博杖,上面的目標(biāo)函數(shù)會更改為:

h_{\theta}(x) = \theta_0 + \theta_{11}x_1 + \theta_{12}x_2 + \theta_{21}x_1^2 + \theta_{22}x_2^2

而且椿胯,在處理的過程中,通常會把x, x^2, x^3, ..., x^n?也當(dāng)作相互獨立的隨機(jī)變量處理剃根。以此類推哩盲,我們也可以加入logx, a^x, sinx?等。實際上狈醉,以我個人的理解廉油,線性回歸中,線性指的其實是死參數(shù)\theta?的線性苗傅。

假設(shè)現(xiàn)在有九個點(x_i, y_i) , i\in\{0, 1, 2, 3, 4, 5, 6, 7, 8\}抒线,那么我們就一定可以用一個最高次不超過8次的表達(dá)式去擬合它。

隨機(jī)產(chǎn)生九個點渣慕,然后進(jìn)行實驗十兢,得到了如下結(jié)果:


image-20190122210356583.png

系數(shù)如下:


image-20190122210453756.png

可以看到,雖然8階的曲線可以完美地通過所有的點摇庙,但是8的曲線的參數(shù)值都很大旱物,也就很不穩(wěn)定。而且從曲線圖中很容易就可以看出卫袒,8階的曲線雖然完美的通過了所有的點宵呛,但是并不能很好地反映九個點的分布。這里就存在過擬合夕凝。為了放著這種現(xiàn)象的發(fā)生宝穗,一種通常的做法是,在式子中加入一個懲罰因子码秉,來限制參數(shù)大写:

J(\theta) = \frac{1}{2}(h_{\theta}(x^{(i)}) - y^{(i)} )^2 + \lambda\sum_{j=1}^{n}\theta_j^2?

其中\lambda是一個可調(diào)的參數(shù)。

這種操作稱為正則化转砖,因為我們用的是\theta的平方求和须鼎,因此稱為L2正則化鲸伴。如果是\theta的絕對值求和,則稱為L1正則化:

J(\theta) = \frac{1}{2}(h_{\theta}(x^{(i)}) - y^{(i)} )^2 + \lambda\sum_{j=1}^{n}|\theta_j|?

在Elastic Net中將兩種正則化整合:

J(\theta) = \frac{1}{2}(h_{\theta}(x^{(i)}) - y^{(i)} )^2 + \lambda(\rho\sum_{j=1}^{n}|\theta_j| + (1-\rho)\sum_{j=1}^{n}\theta_j^2)

梯度下降算法(gradient descent)

在實際的應(yīng)用中晋控,并不是所有的情況下都會有最優(yōu)解的解析解汞窗,而且也沒有必要去求解析解,有的時候有數(shù)值解就夠了赡译。梯度下降算法就是一種應(yīng)用非常廣泛的求最有參數(shù)數(shù)值解的方法仲吏,步驟如下:

  • 初始化\theta(隨機(jī)初始化)

  • 沿著負(fù)梯度的方向迭代,更新后的\theta使J(\theta)更小

    \theta = \theta - \alpha \centerdot \frac{\partial J(\theta)}{\partial \theta}

就是讓\theta沿著讓J(\theta)下降最快的方向移動蝌焚。求一下梯度方向裹唆;

\frac{\partial}{\partial\theta_j}J(\theta) = \frac{\partial}{\partial\theta_j}\frac{1}{2}(h_{\theta}(x) - y)^2\\ = 2 \times \frac{1}{2} (h_{\theta}(x) - y) \centerdot \frac{\partial}{\partial\theta_j}(h_{\theta}(x) - y)\\ = (h_{\theta}(x) - y) \centerdot \frac{\partial}{\partial\theta_j}(\sum_{i = 0}^n\theta_ix_i - y)\\ = (h_{\theta}(x) - y)x_j?

上面的結(jié)果是對一個樣本求的,實際中的損失函數(shù)是J(\theta) = \frac{1}{2}\sum_{i=1}^m(h_{\theta}(x^{(i)} - y^{(i)}))^2? 只洒。因此可以得到:

\frac{\partial}{\partial\theta_j}J(\theta) = \sum_{i = 1}^m(h_{\theta}(x^{(i)}) - y^{(i)})x_j^{(i)}?

對梯度加上學(xué)習(xí)率\alpha?许帐,就可以的到梯度下降的過程:

Repeat until convergence{

??\theta_j := \theta_j + \alpha\sum_{i = 1}^m(y^{(i)} - h_{\theta}(x^{(i)}))x_j^{(i)}

}

上面的梯度下降算法存在兩個問題,一個是在每一次訓(xùn)練的過程中都要對所有的訓(xùn)練數(shù)據(jù)求一次梯度然后進(jìn)行求和红碑,在訓(xùn)練數(shù)據(jù)量動則上萬甚至上百萬的時候舞吭,這樣的開銷無疑是非常大的泡垃;第二點就是析珊,梯度下降算法并不能保證每次都能找到全局最小值,因為在下降的過程中蔑穴,參數(shù)可能會陷于某個局部極值點而使得梯度為零忠寻。

因此有了隨機(jī)梯度下降算法(stocastic gradient descent, SGD),每次只對一個訓(xùn)練樣本求梯度存和,然后讓參數(shù)值變化一次:

Loop{

??for i = 1 to m {

????\theta_j := \theta_j + \alpha(y^{(i)} - h_{\theta}(x^{(i)}))x_j^{(i)}

??}

}

這種方式一方面可以減少一定的運算量奕剃,另一方面增加了隨機(jī)性,是的\theta?有可能跳出局部最小值捐腿。

應(yīng)用最多的是以上兩種方法的一個折中:mini-batch SGD纵朋,就是將訓(xùn)練數(shù)據(jù)分成很多的batch,然后每次使用一個batch做訓(xùn)練茄袖,這樣既可以規(guī)避梯度下降算法的一些缺陷操软,又不想隨機(jī)梯度下降(SGD)那樣激進(jìn)(隨機(jī)性太大)。實際上宪祥,mini-batch SGD也是用的最多的方法聂薪。

模型的評價

在訓(xùn)練的到一個模型之后,我們就要來評估一個模型蝗羊。其實藏澳,損失函數(shù)本身就可以用來評估一個模型,因為損失函數(shù)表征的就是預(yù)測值和真實值之間的一種誤差耀找,我們抽取出主要部分翔悠,的到:

MSE = \frac{1}{m}\sum_{i=1}^{m}(\hat{y_i} - y_i)^2?

其中\hat{y}?表示預(yù)測值,這個數(shù)值就是通常所說的均方誤差。也可以使用他的算術(shù)平方根:

RMSE = \sqrt{\frac{1}{m}\sum_{i=1}^{m}(\hat{y_i} - y_i)^2}

但是這個數(shù)值的大小與模型和應(yīng)用場景有很大的關(guān)系凉驻,不能建立一套統(tǒng)一的標(biāo)準(zhǔn)腻要。因此就定義了另一個指標(biāo):

R^2 = 1-\frac{RSS}{TSS} = 1-\frac{\sum_{i=1}^{m}(\hat{y_i} - y_i)^2}{\sum_{i=1}^{m}(y_i - \overline{y_i})^2}

其中,TSS就是訓(xùn)練樣本方差的(m-1)倍涝登,RSS就是殘差的平方和雄家。分析可得R^2具有以下性質(zhì):

  • R^2?越大,擬合的效果越好
  • R^2的最優(yōu)值為1胀滚,并且模型的效果很離譜時趟济,R^2可能為負(fù)
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市咽笼,隨后出現(xiàn)的幾起案子顷编,更是在濱河造成了極大的恐慌,老刑警劉巖剑刑,帶你破解...
    沈念sama閱讀 212,884評論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件媳纬,死亡現(xiàn)場離奇詭異,居然都是意外死亡施掏,警方通過查閱死者的電腦和手機(jī)钮惠,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,755評論 3 385
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來七芭,“玉大人素挽,你說我怎么就攤上這事±瓴担” “怎么了预明?”我有些...
    開封第一講書人閱讀 158,369評論 0 348
  • 文/不壞的土叔 我叫張陵,是天一觀的道長耙箍。 經(jīng)常有香客問我撰糠,道長,這世上最難降的妖魔是什么辩昆? 我笑而不...
    開封第一講書人閱讀 56,799評論 1 285
  • 正文 為了忘掉前任阅酪,我火速辦了婚禮,結(jié)果婚禮上卤材,老公的妹妹穿的比我還像新娘遮斥。我一直安慰自己,他們只是感情好扇丛,可當(dāng)我...
    茶點故事閱讀 65,910評論 6 386
  • 文/花漫 我一把揭開白布术吗。 她就那樣靜靜地躺著,像睡著了一般帆精。 火紅的嫁衣襯著肌膚如雪较屿。 梳的紋絲不亂的頭發(fā)上隧魄,一...
    開封第一講書人閱讀 50,096評論 1 291
  • 那天,我揣著相機(jī)與錄音隘蝎,去河邊找鬼购啄。 笑死,一個胖子當(dāng)著我的面吹牛嘱么,可吹牛的內(nèi)容都是我干的狮含。 我是一名探鬼主播,決...
    沈念sama閱讀 39,159評論 3 411
  • 文/蒼蘭香墨 我猛地睜開眼曼振,長吁一口氣:“原來是場噩夢啊……” “哼几迄!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起冰评,我...
    開封第一講書人閱讀 37,917評論 0 268
  • 序言:老撾萬榮一對情侶失蹤映胁,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后甲雅,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體解孙,經(jīng)...
    沈念sama閱讀 44,360評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,673評論 2 327
  • 正文 我和宋清朗相戀三年抛人,在試婚紗的時候發(fā)現(xiàn)自己被綠了弛姜。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 38,814評論 1 341
  • 序言:一個原本活蹦亂跳的男人離奇死亡函匕,死狀恐怖娱据,靈堂內(nèi)的尸體忽然破棺而出蚪黑,到底是詐尸還是另有隱情盅惜,我是刑警寧澤,帶...
    沈念sama閱讀 34,509評論 4 334
  • 正文 年R本政府宣布目木,位于F島的核電站滥酥,受9級特大地震影響隔心,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜屈芜,卻給世界環(huán)境...
    茶點故事閱讀 40,156評論 3 317
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望朴译。 院中可真熱鬧井佑,春花似錦、人聲如沸眠寿。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,882評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽盯拱。三九已至盒发,卻和暖如春例嘱,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背宁舰。 一陣腳步聲響...
    開封第一講書人閱讀 32,123評論 1 267
  • 我被黑心中介騙來泰國打工拼卵, 沒想到剛下飛機(jī)就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人蛮艰。 一個月前我還...
    沈念sama閱讀 46,641評論 2 362
  • 正文 我出身青樓腋腮,卻偏偏與公主長得像,于是被迫代替她去往敵國和親壤蚜。 傳聞我的和親對象是個殘疾皇子低葫,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 43,728評論 2 351

推薦閱讀更多精彩內(nèi)容