交叉驗證,有時亦稱循環估計 , 是一種統計學上將数据 樣本 切割成較小子集的實用方法。於是可以先在一個子集上做分析,而其它子集則用來做後續對此分析的確認及驗證。一開始的子集被稱為訓練集。而其它的子集則被稱為驗證集或測試集。交叉驗證的目標是在訓練階段定義一组用于“測試”模型的數據集,以便減少像過擬合的問題,得到該模型將如何衍生到一個獨立的數據集的提示。
交叉驗證的理論是由 Seymour Geisser 所開始的。它對於防範根据数据建议的测试假设是非常重要的,特別是當後續的 樣本 是危險、成本過高或科学上不适合时去搜集。
假设有个未知模型具有一个或多个待定的参数,且有一个数据集能够反映该模型的特征属性(训练集)。适应的过程是对模型的参数进行调整,以使模型尽可能反映训练集的特征。如果从同一个训练样本中选择独立的样本作为验证集合,当模型因训练集过小或参数不合适而产生过拟合时,验证集的测试予以反映。 交叉验证是一种预测模型拟合性能的方法。
常識來說,Holdout 驗證並非一種交叉驗證,因為数据並沒有交叉使用。 隨機從最初的樣本中選出部分,形成交叉驗證数据,而剩餘的就當做訓練数据。 一般來說,少於原本樣本三分之一的数据被選做驗證数据。
正如名稱所建議,留一驗證(英语:leave-one-out cross-validation, LOOCV)意指只使用原本樣本中的一項來當做驗證資料,而剩餘的則留下來當做訓練資料。這個步驟一直持續到每個樣本都被當做一次驗證資料。 事實上,這等同於k折交叉验证,其中k為原本樣本個數。 在某些情況下是存在有效率的演算法,如使用 kernel regression 和 吉洪诺夫正则化 。
可以計算估計誤差。常見的誤差衡量標準是 均方差 和 方根均方差 , 分別為交叉驗證的方差和標準差。