机器学习(一)线性回归
1. 舉個例子
數據:工資和年齡(2個特征)
目標:預測銀行可以給我貸款多少錢(標簽)
考慮:工資和年齡都會影響銀行貸款的結果,那么它們各自的影響有多大呢?(參數)
1.1數據
| 4000 | 25 | 20000 |
| 8000 | 30 | 70000 |
| 5000 | 28 | 35000 |
| 7500 | 33 | 50000 |
| 12000 | 40 | 85000 |
這份數據有兩個特征x1:工資和x2:年齡,最終要預測一個具體的值y,這就需要回歸模型,而非分類算法。
目的是如何找到這個曲面函數。
1.2 假設
擬合平面,目標函數:hθ(x)=θ0+θ1x1+θ2x2h_\theta(x)=\theta_0+\theta_1x_1 +\theta_2x_2hθ?(x)=θ0?+θ1?x1?+θ2?x2? 這里的θ0\theta_0θ0?是偏置項,也就是上下的參數浮動,θ0\theta_0θ0?與數據無關,而θ1\theta_1θ1?和θ2\theta_2θ2?是權重參數,對最終結果產生較大的影響,偏置參數θ0\theta_0θ0?對結果產生較小影響。
一般的,如果參數增多了,那么我們寫做:hθ(x)=∑i=0nθixi=θTxh_\theta(x)=\sum_{i=0}^n \theta_ix_i=\theta^Txhθ?(x)=∑i=0n?θi?xi?=θTx,那么這里的展開式中就會多出一個θ0x0\theta_0x_0θ0?x0?,我們可以在數據特征中增加一列x0x_0x0?并且這一列數據的值都為111
為什么要將數據轉為hθ(x)=∑i=0nθixi=θTxh_\theta(x)=\sum_{i=0}^n \theta_ix_i=\theta^Txhθ?(x)=∑i=0n?θi?xi?=θTx這種形式?因為我們在計算的過程中復雜度是非常高的,而使用矩陣進行計算時非常方便的。
1.3 誤差
一般情況下,真實值和預測值之間是會存在差異的(用ε\varepsilonε表示)例如上圖中的紅色點表示真實值,而預測值在一個平面上。
因此實際上的目標函數為公式1:y(i)=θTx(i)+ε(i)y^{(i)}=\theta^Tx^{(i)}+\varepsilon^{(i)}y(i)=θTx(i)+ε(i),每一個樣本都有各自所對應的誤差,每一個誤差ε(i)\varepsilon^{(i)}ε(i)都是獨立并且具有相同的分布,并且服從均值為0方差為θ2\theta^2θ2的高斯分布。
- 獨立:張三和李四一起來貸款,他們倆之間沒有關系。算法對待兩個樣本是公平的。
- 同分布:他倆都來的是我們假定的這家銀行
- 高斯分布:銀行可能會多給,也可能會少給,但是絕大多數情況下,這個浮動不會太大,極小情況下浮動會比較大,符合正常情況。
由于誤差服從高斯分布公式2:p(ε(i))=12πσe?(ε(i))22σ2p(\varepsilon^{(i)})=\frac{1}{\sqrt{2\pi}\sigma}e^{-\frac{(\varepsilon{(i)})^2}{2\sigma^2}}p(ε(i))=2π?σ1?e?2σ2(ε(i))2? ,這里有一個假設:均值μ=0\mu=0μ=0。
將公式1帶入公式2中,得到:
p(y(i)∣x(i);θ)=12πσe?(y(i)?θTx(i))22σ2p(y^{(i)}|x^{(i)};\theta)=\frac{1}{\sqrt{2\pi}\sigma}e^{-\frac{(y^{(i)}-\theta^Tx^{(i)})^2}{2\sigma^2}} p(y(i)∣x(i);θ)=2π?σ1?e?2σ2(y(i)?θTx(i))2?
1.4 似然函數
似然函數式根據樣本去估計參數值。
L(θ)=∏i=1mp(y(i)∣x(i);θ)=∏i=1m12πσe?(y(i)?θTx(i))22σ2L(\theta) = \prod_{i=1}^m p(y^{(i)}|x^{(i)};\theta) = \prod_{i=1}^m \frac{1}{\sqrt{2\pi}\sigma}e^{-\frac{(y^{(i)}-\theta^Tx^{(i)})^2}{2\sigma^2}} L(θ)=i=1∏m?p(y(i)∣x(i);θ)=i=1∏m?2π?σ1?e?2σ2(y(i)?θTx(i))2?
目標也就是什么樣的參數跟我們的數據組合后恰好是真實值,或者是真實值的可能性越大越好。最大似然函數和極大似然估計就是這樣的方法。
1.5 對數似然
log?L(θ)=log?∏i=1mp(y(i)∣x(i);θ)=log?∏i=1m12πσe?(y(i)?θTx(i))22σ2\log L(\theta) =\log {\prod_{i=1}^m p(y^{(i)}|x^{(i)};\theta)} =\log { \prod_{i=1}^m \frac{1}{\sqrt{2\pi}\sigma}e^{-\frac{(y^{(i)}-\theta^Tx^{(i)})^2}{2\sigma^2}}} logL(θ)=logi=1∏m?p(y(i)∣x(i);θ)=logi=1∏m?2π?σ1?e?2σ2(y(i)?θTx(i))2?
因為乘法難以計算,加法就容易了,對數似然就是將對數里面的乘法轉化成加法。化簡之后的結果:
∑i=1mlog?12πσe?(y(i)?θTx(i))22σ2=mlog?12πσ?1σ2?12?∑i=1m(y(i)?θTx(i))2\begin{matrix} \sum_{i=1}^m \log { \frac{1}{\sqrt{2\pi}\sigma}e^{-\frac{(y^{(i)}-\theta^Tx^{(i)})^2}{2\sigma^2}}} \end{matrix} = m\log \frac{1}{\sqrt{2\pi}\sigma} - \frac{1}{\sigma ^ 2} \cdot \frac{1}{2} \cdot \sum_{i=1}^m {(y^{(i)}-\theta^Tx^{(i)})^2} ∑i=1m?log2π?σ1?e?2σ2(y(i)?θTx(i))2??=mlog2π?σ1??σ21??21??i=1∑m?(y(i)?θTx(i))2
其中 mlog?12πσ>0m\log \frac{1}{\sqrt{2\pi}\sigma}>0mlog2π?σ1?>0,因此要讓似然函數(對數變換后也一樣)越大越好,那么就需要讓目標函數J(θ)=12?∑i=1m(y(i)?θTx(i))2J(\theta)=\frac{1}{2} \cdot \sum_{i=1}^m {(y^{(i)}-\theta^Tx^{(i)})^2}J(θ)=21??∑i=1m?(y(i)?θTx(i))2(最小二乘法)越小越好。
將公式J(θ)J(\theta)J(θ)進行展開,得到公式:
J(θ)=12?∑i=1m(y(i)?θTx(i))2=12(Xθ?y)T(Xθ?y)=12(θTXT?yT)(Xθ?y)=12(θTXTXθ?θTXy?yTXθ+yTy)J(\theta)=\frac{1}{2} \cdot \sum_{i=1}^m {(y^{(i)}-\theta^Tx^{(i)})^2}=\frac{1}{2}(X\theta-y)^T(X\theta-y )=\frac{1}{2}(\theta^TX^T-y^T)(X\theta -y) =\frac{1}{2}(\theta^TX^TX\theta - \theta^TX^y-y^TX\theta+y^Ty) J(θ)=21??i=1∑m?(y(i)?θTx(i))2=21?(Xθ?y)T(Xθ?y)=21?(θTXT?yT)(Xθ?y)=21?(θTXTXθ?θTXy?yTXθ+yTy)
然后對J(θ)J(\theta)J(θ)求極值,也就是對θ\thetaθ求偏導,可得:
?θJ(θ)=?θ(12(θTXTXθ?θTXy?yTXθ+yTy))=12(2XTXθ?XTy?(yTX)T)=XTXθ?XTy\nabla_\theta J(\theta) = \nabla_\theta (\frac{1}{2}(\theta^TX^TX\theta - \theta^TX^y-y^TX\theta+y^Ty))=\frac{1}{2}(2X^TX\theta -X^Ty-(y^TX)^T)=X^TX\theta-X^Ty ?θ?J(θ)=?θ?(21?(θTXTXθ?θTXy?yTXθ+yTy))=21?(2XTXθ?XTy?(yTX)T)=XTXθ?XTy
偏導數為0:
θ=(XTX)(?1)XTy\theta=(X^TX)^{(-1)}X^Tyθ=(XTX)(?1)XTy
為什么求出的偏導是極小值點呢?
一般情況下我們認為目標函數都是凸函數,有時候要求最大值時,往往也是求極小值。
到目前為止,θ\thetaθ是可以求出一個解的,但是在很多問題上θ\thetaθ是沒法進行求解的,往往是通過優化的思想進行計算,而不是簡單的求解。
1.6 評估方法
目前最常用的評估的方法是R2R^2R2方法:1?∑i=1m(yi^?yi)2(殘差平方和)∑i=1m(yi?yˉ)2(類似方差項)1-\frac{ \sum_{i=1}^m{(\hat{y_i}-y_i)^2}(殘差平方和)}{\sum_{i=1}^m{(y_i-\bar{y})^2}(類似方差項)}1?∑i=1m?(yi??yˉ?)2(類似方差項)∑i=1m?(yi?^??yi?)2(殘差平方和)?
殘差平方和指的是預測值和真實值的差異,R2R^2R2的取值越接近1我們認為模型擬合的越好。
總結
以上是生活随笔為你收集整理的机器学习(一)线性回归的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Seaborn 入门
- 下一篇: 机器学习(二)梯度下降