4.2 数据集划分-机器学习笔记-斯坦福吴恩达教授
數(shù)據(jù)集劃分
測試集
在線性回歸的章節(jié)中,我們已經(jīng)知道,僅僅具備一個(gè)很小的訓(xùn)練誤差并不能保證我們的預(yù)測函數(shù)就是優(yōu)秀的,因?yàn)檫@種“優(yōu)秀”僅僅體現(xiàn)在了對(duì)于已知的訓(xùn)練樣本的假設(shè)上,而無法保證見到新的樣本時(shí)候還能做出足夠好的預(yù)測,過擬合就是當(dāng)中的典型例子:
因此,預(yù)測準(zhǔn)不準(zhǔn)應(yīng)當(dāng)反映在對(duì)于新樣本的泛化(generalize)能力。我們考慮將數(shù)據(jù)集劃分為:
- 訓(xùn)練集:70%
- 測試集:30%
在對(duì)數(shù)據(jù)集進(jìn)行訓(xùn)練集和測試集的劃分前,最好先對(duì)數(shù)據(jù)集進(jìn)行亂序,防止類似樣本聚到一起
引入如下符號(hào):
- (x(1),y(1))(x^{(1)},y^{(1)})(x(1),y(1)) :訓(xùn)練樣本
- (xtest(1),ytest(1))(x^{(1)}_{test},y^{(1)}_{test})(xtest(1)?,ytest(1)?) :測試樣本
- mmm :訓(xùn)練集樣本容量
- mtestm_{test}mtest? :測試集樣本容量
線性回歸的測試誤差
在線性回歸中,我們就通過計(jì)算測試集的代價(jià)函數(shù)來評(píng)估參數(shù) θθθ 的泛化能力:
Jtest=12mtest∑i=1mtest(hθ(xtest(i))?ytest(i))2J_{test}=\frac1{2m_{test}}∑_{i=1}^{m_{test}}(h_θ(x^{(i)}_{test})?y^{(i)}_{test})^2Jtest?=2mtest?1?i=1∑mtest??(hθ?(xtest(i)?)?ytest(i)?)2
邏輯回歸的測試誤差
在邏輯回歸中,測試集的代價(jià)函數(shù)為:
Jtest(θ)=?1mtest∑i=1mtest(ytest(i)loghθ(xtest(i)))?(1?ytest(i))loghθ(xtest(i)))J_{test}(\theta)=-\frac1{m_{test}}∑_{i=1}^{m_{test}}(y_{test}^{(i)}\ logh_\theta(x^{(i)}_{test}))?(1-y_{test}^{(i)})\ logh_\theta(x^{(i)}_{test}))Jtest?(θ)=?mtest?1?i=1∑mtest??(ytest(i)??loghθ?(xtest(i)?))?(1?ytest(i)?)?loghθ?(xtest(i)?))
由于邏輯回歸處理的是 0/1 分類問題,其預(yù)測結(jié)果只有正確與錯(cuò)誤之分,所以引入誤分率(Misclassification Error):
err(hθ(x),y)={1,ifhθ(x)≥0.5,y=0orhθ(x)<0.5,y=10,otherwiseerr(h_\theta(x),y)=\begin{cases}1,\quad if\ h_\theta(x)≥0.5,\ y=0\ or\ h_\theta(x)<0.5,\ y=1\\ 0,\quad otherwise\end{cases}err(hθ?(x),y)={1,if?hθ?(x)≥0.5,?y=0?or?hθ?(x)<0.5,?y=10,otherwise?
則邏輯回歸中的測試誤差可以表示為:
Testerror=1mtest∑1mtesterr(hθ(xtest(i)),ytest(i))Test_{error}=\frac1{m_{test}}\sum_1^{m_{test}}err(h_\theta(x_{test}^{(i)}),\ y_{test}^{(i)})Testerror?=mtest?1?1∑mtest??err(hθ?(xtest(i)?),?ytest(i)?)
交叉驗(yàn)證集
在多項(xiàng)式回歸中,我們總是嘗試不同的多項(xiàng)式次數(shù)(degree)( degree )(degree),形成了不同的預(yù)測模型:
1.hθ(x)=θ0+θ1x1.\quad h_θ(x)=θ_0+θ_1x1.hθ?(x)=θ0?+θ1?x2.hθ(x)=θ0+θ1x+θ2x22.\quad h_θ(x)=θ_0+θ_1x+θ_2x^22.hθ?(x)=θ0?+θ1?x+θ2?x23.hθ(x)=θ0+θ1x+...+θ3x33.\quad h_θ(x)=θ_0+θ_1x+...+θ_3x^33.hθ?(x)=θ0?+θ1?x+...+θ3?x34.hθ(x)=θ0+θ1x+...+θ4x44.\quad h_θ(x)=θ_0+θ_1x+...+θ_4x^44.hθ?(x)=θ0?+θ1?x+...+θ4?x45.hθ(x)=θ0+θ1x+...+θ5x55.\quad h_θ(x)=θ_0+θ_1x+...+θ_5x^55.hθ?(x)=θ0?+θ1?x+...+θ5?x5
我們計(jì)算各個(gè)模型的對(duì)應(yīng)的測試誤差,假設(shè) degreedegreedegree=5 時(shí),測試誤差最小,我們就選出了以下模型來迎接新的樣本:
hθ(x)=θ0+θ1x+...+θ5x5h_θ(x)=θ_0+θ_1x+...+θ_5x^5hθ?(x)=θ0?+θ1?x+...+θ5?x5
對(duì)于 degreedegreedegree 的確定,是我們對(duì)于模型的選擇(Model Selection),正如我們?cè)诰€性回歸中確定 θθθ 一樣。在線性回歸中,我們通過訓(xùn)練集確定模型,測試集來評(píng)估模型的泛化能力。在多項(xiàng)式回歸中,我們通過訓(xùn)練集獲得了參數(shù) θθθ ,而通過測試集確定了模型,那么,這兩個(gè)集合用完了,我們就缺少評(píng)估模型泛化能力的數(shù)據(jù)集。鑒于此,引入了交叉驗(yàn)證集(Cross Validation Set),“交叉”二字體現(xiàn)了一種承上啟下的關(guān)系,他通過訓(xùn)練集獲得的結(jié)果,選擇了模型,并將該模型交給測試集進(jìn)行評(píng)估:
- 訓(xùn)練集:60%,確定參數(shù) θθθ
- 交叉驗(yàn)證集:20%,進(jìn)行模型選擇。
- 測試集:20%,評(píng)價(jià)模型預(yù)測能力。
三者的誤差函數(shù)如下:
-
訓(xùn)練集誤差:
Jtrain(θ)=12m∑i=1mtrain(hθ(xtrain(i))?ytrain(i))2J_{train}(\theta)=\frac1{2m}\sum_{i=1}^{m_{train}}(h_\theta(x_{train}^{(i)})-y^{(i)}_{train})^2Jtrain?(θ)=2m1?i=1∑mtrain??(hθ?(xtrain(i)?)?ytrain(i)?)2 -
交叉驗(yàn)證集誤差:
Jcv(θ)=12m∑i=1mcv(hθ(xcv(i))?ycv(i))2J_{cv}(\theta)=\frac1{2m}\sum_{i=1}^{m_{cv}}(h_\theta(x_{cv}^{(i)})-y^{(i)}_{cv})^2Jcv?(θ)=2m1?i=1∑mcv??(hθ?(xcv(i)?)?ycv(i)?)2 -
測試集誤差:
Jtest(θ)=12m∑i=1mtest(hθ(xtest(i))?ytest(i))2J_{test}(\theta)=\frac1{2m}\sum_{i=1}^{m_{test}}(h_\theta(x_{test}^{(i)})-y^{(i)}_{test})^2Jtest?(θ)=2m1?i=1∑mtest??(hθ?(xtest(i)?)?ytest(i)?)2
總結(jié)
以上是生活随笔為你收集整理的4.2 数据集划分-机器学习笔记-斯坦福吴恩达教授的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 4.1 陷入不归路的调试-机器学习笔记-
- 下一篇: 4.3 偏差与方差-机器学习笔记-斯坦福