交叉驗證

交叉验证，有時亦稱循環估計  ，
是一種統計學上將数据樣本切割成較小子集的實用方法。於是可以先在一個子集上做分析，而其它子集則用來做後續對此分析的確認及驗證。一開始的子集被稱為訓練集。而其它的子集則被稱為驗證集或測試集。交叉验证的目的，是用未用来给模型作训练的新数据，测试模型的性能，以便減少诸如过拟合和选择偏差等問題，并给出模型如何在一个独立的数据集上通用化（即，一个未知的数据集，如实际问题中的数据）。

交叉驗證的理論是由所開始的。它對於防範根据数据建议的测试假设是非常重要的，特別是當後續的樣本是危險、成本過高或科学上不适合时去搜集的。

交叉验证的使用 
假设有个未知模型具有一个或多个待定的参数，且有一个数据集能够反映该模型的特征属性（训练集）。适应的过程是对模型的参数进行调整，以使模型尽可能反映训练集的特征。如果从同一个训练样本中选择独立的样本作为验证集合，当模型因训练集过小或参数不合适而产生过拟合时，验证集的测试予以反映。
交叉验证是一种预测模型拟合性能的方法。

常見的交叉驗證形式

Holdout持久性驗證 

常識來說，Holdout 驗證並非一種交叉驗證，因為数据並沒有交叉使用。
隨機從最初的樣本中選出部分，形成交叉驗證数据，而剩餘的就當做訓練数据。
一般來說，少於原本樣本三分之一的数据被選做驗證数据。

k折交叉验证 

k折交叉验证（），将训练集分割成k个子样本，一个单独的子样本被保留作为验证模型的数据，其他k − 1个样本用来训练。交叉验证重复k次，每个子样本验证一次，平均k次的结果或者使用其它结合方式，最终得到一个单一估测。这个方法的优势在于，同时重复运用随机产生的子样本进行训练和验证，每次的结果验证一次，10次交叉验证是最常用的。

留一驗證 

正如名稱所建議，留一驗證（）意指只使用原本樣本中的一項來當做驗證資料，而剩餘的則留下來當做訓練資料。這個步驟一直持續到每個樣本都被當做一次驗證資料。
事實上，這等同於k折交叉验证，其中k為原本樣本個數。
在某些情況下是存在有效率的演算法，如使用 和吉洪诺夫正则化。

誤差估計 
可以計算估計誤差。常見的誤差衡量標準是均方差和方根均方差，
分別為交叉驗證的方差和標準差。

另見 
 重抽样
 提升方法
 引导聚集算法

參考文獻

外部連結 
 Naive Bayes implementation with cross-validation in Visual Basic (includes executable and source code)
 A generic k-fold cross-validation implementation (free open source; includes a distributed version that can utilize multiple computers and in principle can speed up the running time by several orders of magnitude.)

迴歸變數選擇
统计检验