交叉驗證 ESL chapter7 10

2021-10-25 18:15:08 字數 2381 閱讀 2976

交叉驗證是估計**誤差最簡單且廣泛使用的方法。

通常情況下,我們的資料量都是不足夠多的,如果在本來就不多的資料集中再劃分出一部分作為驗證集,那可供學習的資料就更少了。為了解決這一問題,k-折交叉驗證將資料集分成容量大致相等的k個部分,如下圖:

對於第k

kk(k=1

,2,⋯

,kk=1,2,\cdots,k

k=1,2,

⋯,k)部分,我們首先用 其他k-1個部分的資料對學習器進行訓練,再**第k

kk部分資料時計算**誤差。依次通過k=1

,2,⋯

,kk=1,2,\cdots,k

k=1,2,

⋯,k迴圈此操作,最後合併**誤差的k

kk個估計。

具體地,令 κ:↦

κ:↦ 是乙個指標函式,它指出觀測 i

ii 被 隨機指派到其上的劃分。用 f^−

k(x)

\hat^(x)

f^​−k(

x)表示擬合函式,用刪除第 k

kk 部分後的資料計算。那麼,**誤差的交叉驗證估計是:

c v(

α)=1

n∑i=

1nl(

yi,f

^−κ(

i)(x

i))cv

(α)=

n1​i

=1∑n

​l(y

i​,f

^​−κ

(i)(

xi​)

)我們可以通過cv(

α)cv(\alpha)

cv(α

)的極小化找到相應的調整引數α

^\hat \alpha

α^,得到最終的模型f(x

,α^)

f(x,\hat \alpha)

f(x,α^

).對於k

kk值的選擇,我們首先要知道,當k

kk值越大時,真實**誤差的方差會越來越大,當k

kk值較小時,又會出現偏倚等問題。我們再來看下圖中的學習曲線:

這是乙個(1-err)關於訓練集容量n的函式曲線圖,當n達到100時分類器的效能已經有較大改觀,當達到160時,效能已經與200時的效能相差無幾,這樣訓練集容量為160對應的5折交叉驗證將不會有太大的偏倚。

對於平方誤差損失下的線性擬合,廣義交叉驗證( generalized cross-validation)提供了一種對 留一交叉驗證方便的還近。和第 7.6 節中定義的一樣,線性擬合方法可以寫成:

y ^=

sy\hat}=\mathbf

y^​=sy

現在,對許多線代擬合方法,

1 n∑

i=1n

[yi−

f^−i

(xi)

]2=1

n∑i=

1n[y

i−f^

(xi)

1−si

i]2\frac \sum_^\left[y_-\hat^\left(x_\right)\right]^=\frac \sum_^\left[\frac-\hat\left(x_\right)}}\right]^

n1​i=1

∑n​[

yi​−

f^​−

i(xi

​)]2

=n1​

i=1∑

n​[1

−sii

​yi​

−f^​

(xi​

)​]2

其中, sii

s_si

i​是 s

\mathbf

s 的第 i

ii 個對角元素, gcv 逼近是:

g cv

=1n∑

i=1n

[yi−

f^(x

i)1−

trace⁡(

s)/n

)]2\mathrm=\frac \sum_^\left[\frac-\hat\left(x_\right)}(\mathbf) / n)}\right]^

gcv=n1

​i=1

∑n​[

1−tr

ace(

s)/n

)yi​

−f^​

(xi​

)​]2

scikit learning 交叉驗證

import numpy as np from sklearn import datasets from sklearn.cross validation import train test split from sklearn.neighbors import kneighborsclassifi...

交叉驗證(cross validation)

交叉驗證是資料分析時模型選擇的方法之一,將資料集分為三份,分別為訓練集 training set 驗證集 valication set 和測試集 test set 分別功能為訓練模型,選擇模型和對學習方法的評估。其演算法的思想為重複的使用資料,使得模型的精度越來越高。交叉驗證的方法有以下三種 1.簡...

交叉驗證(Cross validation

交叉驗證 cross validation 交叉驗證用於防止模型過於複雜而引起的過擬合 作用 如何交叉驗證 我這裡主要介紹k交叉驗證 1 將資料集分成k份 2 對於每乙個模型 拿多項式回歸舉例,m 2為乙個模型,m 3為乙個模型。我們主要就是尋找最好的m for j 1,2,k 將除第j份的所有資料...