交叉验证(Cross Validation)

交叉验证是机器学习、数据挖掘中经常要用到的技巧。很有必要很好的掌握它。所以试着写点这方面的理解,希望对大家有帮助。

文章分为两个部分: 一、交叉验证的原理; 二、分享一个好用的实现了大多数交叉验证的方法包(python scikit-learn)。


在用随机化抽样(random sampling)方法将数据集分为训练集和测试集过程,划分数据集常常会导致过度专门化(over-specialization)的问题,即数据的性质分布不均匀,将会导致由训练集训练出来的学习模型,在测试集上表现的很差,类似于过拟合(over-fit)的现象。基于这个原因,我们希望能够重复多次的进行训练学习模型和测试模型步骤。通过随机化抽样的方法选定K个不同的训练集和测试集,分别用来训练出学习模型和测试模型。最后,通过取K个学习模型性能的均值,来解决过度专门化的问题。 而这个过程也称之为交叉验证(Cross-Validation)。


常用的交叉验证有:K-Folds cross validation、Stratified K-Folds cross validation、Leave-one-out cross validation  等等。




#好东西要分享#

python的机器学习包scikit-learn中对各种交叉验证进行了实现。http://scikit-learn.org/stable/modules/classes.html#module-sklearn.cross_validation

交叉验证(Cross Validation)_第1张图片



转载请注明:转自 zh's note    http://blog.csdn.net/wuzh670/

你可能感兴趣的:(推荐系统,交叉验证)