交叉驗證

维基百科,自由的百科全书
跳转至: 导航搜索

交叉驗證,有時亦稱循環估計[1] [2] [3], 是一種統計學上將数据樣本切割成較小子集的實用方法。於是可以先在一個子集上做分析, 而其它子集則用來做後續對此分析的確認及驗證。 一開始的子集被稱為訓練集。而其它的子集則被稱為驗證集測試集

交叉驗證的理論是由Seymour Geisser所開始的。 它對於防範testing hypotheses suggested by the data是非常重要的, 特別是當後續的樣本是危險、成本過高或不可能(uncomfortable science)去搜集。

交叉验证的使用[编辑]

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

常見的交叉驗證形式[编辑]

Holdout 驗證[编辑]

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

K-fold cross-validation[编辑]

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

留一驗證[编辑]

正如名稱所建議, 留一驗證(LOOCV)意指只使用原本樣本中的一項來當做驗證資料, 而剩餘的則留下來當做訓練資料。 這個步驟一直持續到每個樣本都被當做一次驗證資料。 事實上,這等同於 K-fold 交叉驗證是一樣的,其中K為原本樣本個數。 在某些情況下是存在有效率的演算法,如使用kernel regressionTikhonov regularization

誤差估計[编辑]

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

另見[编辑]

外部連結[编辑]

參考文獻[编辑]

  1. ^ Kohavi, Ron. A study of cross-validation and bootstrap for accuracy estimation and model selection. Proceedings of the Fourteenth International Joint Conference on Artificial Intelligence. 1995, 2 (12): 1137–1143. (Morgan Kaufmann, San Mateo)
  2. ^ Chang, J., Luo, Y., and Su, K. 1992. GPSM: a Generalized Probabilistic Semantic Model for ambiguity resolution. In Proceedings of the 30th Annual Meeting on Association For Computational Linguistics (Newark, Delaware, June 28 - July 02, 1992). Annual Meeting of the ACL. Association for Computational Linguistics, Morristown, NJ, 177-184
  3. ^ Devijver, P. A., and J. Kittler, Pattern Recognition: A Statistical Approach, Prentice-Hall, London, 1982
  4. ^ Tutorial 12. Decision Trees Interactive Tutorial and Resources. [2006-06-21].