【发布时间】:2018-11-21 02:31:56
【问题描述】:
我正在使用带有 LeaveOneOut 函数的 cross_val_score 函数,因为我的数据有 60 个样本。
我对 cross_val_score 如何计算 Leave One Out 交叉验证 (LOOCV) 中每个估计的结果感到困惑。
在 LOOCV 中,例如,它适合使用 59 个样本进行训练的模型,比如说决策树分类器 (DTC),并预测剩下的单个样本。
那么主要的问题是: 它是否适合 cross_val_score 中每个实例的新模型(即 60 种不同的拟合)?
如果是这样,事情就会变得混乱。
然后我可以获得一个平均准确度(满分 60)分数来进行性能评估。但总的来说,我需要提出一个最佳 DTC 模型,而不仅仅是针对我自己的数据,尽管它是基于我的数据。
如果我使用整个数据,它完全适合,但该模型只是过度适合。
我想要一个基于我的数据通常效果最佳的单一 DTC 模型。
如果有意义的话,这是我的代码:
model = DecisionTreeClassifier(random_state=27, criterion='gini', max_depth=4, max_features='auto' )
loocv = LeaveOneOut()
results = cross_val_score(model, X, y, cv=loocv)
【问题讨论】:
标签: machine-learning scikit-learn cross-validation