留一法也是一种常见的交叉验证方法。
我们可以将留一法交叉验证看作是每折只包含单个样本的k折交叉验证。对于每次划分,选择单个数据点作为测试集。这种方法可能非常耗时,特征是对于大型数据,但是小型数据集上有时可以给出更好的估计结果:
from sklearn.datasets import load_iris
from sklearn.model_selection import cross_val_score
from sklearn.linear_model import LogisticRegression
from sklearn.model_selection import LeaveOneOut
iris=load_iris()
logreg=LogisticRegression()
loo=LeaveOneOut()
scores=cross_val_score(logreg,iris.data,iris.target,cv=loo)
print('number of cv iterations:{}'.format(len(scores)))
print('mean accuracy:{:.2f}'.format(scores.mean()))