您的位置:首页 > 其它

cross-validation 交叉验证

2012-10-09 19:50 120 查看
交叉验证
在机器学习、数据挖掘和模式识别等领域,需要训练大量的数据来得到一个准确的模型,当数据的数量有限时,就会出现不同的问题。为了解决这些问题,交叉验证的方法就出现了。
名词解释:
l Holdout 当数据有限时,需要将原始数据分为两份,一份用来training一份用来testing(比例一般是2/3和1/3),或者分为三份,还有一份用来validation。以上过程就叫做Holdout
l Stratified holdout(or
Stratification) 为了确保分割后用于training和testing的数据都具有代表性,需要通过随机取样的过程来确保这一点,这就是stratification。其达到的效果是让在每一个分割中,每个类所占的比例和总体数据中每个类所占的比例相同。
l Repeated holdout 重复的进行随机取样,计算每一次的error rate,然后对其取平均
l threefold cross-validation 将数据分为三份,每一次都去其中一份用于testing,其余部分用于training,直到遍历完每一个fold,即每一个instance都至少用于一次testing,后面还有stratified
threefold cross-validation
l Stratified tenfold cross-validation 在实际的应用中,这是标准的数据处理方法,具体含义和上一个类似,在实际的应用中,往往需要重复10遍十折交叉验证,也即往往需要做100次。
上述内容,参考文献《Data Mining Practical Machine Learning Tools and Techniques(Third Edition)》,一下内容摘抄自百度百科,讲十折交叉验证的概念。
英文名叫做10-fold cross-validation,用来测试算法准确性。是常用的测试方法。将数据集分成十分,轮流将其中9份作为训练数据,1份作为测试数据,进行试验。每次试验都会得出相应的正确率(或差错率)。10次的结果的正确率(或差错率)的平均值作为对算法精度的估计,一般还需要进行多次10折交叉验证(例如10次10折交叉验证),再求其均值,作为对算法准确性的估计。
  之所以选择将数据集分为10份,是因为通过利用大量数据集、使用不同学习技术进行的大量试验,表明10折是获得最好误差估计的恰当选择,而且也有一些理论根据可以证明这一点。但这并非最终诊断,争议仍然存在。而且似乎5折或者20折与10折所得出的结果也相差无几。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: