首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >K-2交叉验证实质上等于50:50的训练测试分割吗?

K-2交叉验证实质上等于50:50的训练测试分割吗?
EN

Stack Overflow用户
提问于 2018-01-22 07:42:49
回答 1查看 298关注 0票数 1

我正在做一个数据项目任务,我被要求使用50%的数据用于培训,其余的50%用于测试。我想使用交叉验证的魔力,但仍然符合上述标准。

目前,我的代码如下:

代码语言:javascript
复制
clf = LogisticRegression(penalty='l2', class_weight='balanced'

tprs = []
aucs = []
mean_fpr = np.linspace(0, 1, 100)

#cross validation
cv = StratifiedKFold(n_splits=2)
i = 0
for train, test in cv.split(X, y):
    probas_ = clf.fit(X[train], y[train]).predict_proba(X[test])
    # Compute ROC curve and area the curve
    fpr, tpr, thresholds = roc_curve(y[test], probas_[:, 1])
    tprs.append(interp(mean_fpr, fpr, tpr))
    tprs[-1][0] = 0.0
    roc_auc = auc(fpr, tpr)
    aucs.append(roc_auc)
    i += 1

print("Average AUC: ", sum(aucs)/len(aucs),"AUC: ", aucs[-1],)

既然我只使用了两个分裂,是否认为我使用的是50:50的火车测试分割?还是我应该先将数据分割成50:50,然后在培训部分使用交叉验证,最后使用该模型对测试数据进行其余50%的测试?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-01-22 08:25:13

你应该实施你的第二项建议。交叉验证应该用于调整您的方法的参数。在您的示例中,这些参数包括C参数和Logistic回归的class_weight='balanced'的值。所以你应该:

  • 50%的训练,50%的测试
  • 通过交叉验证,使用培训数据选择模型参数的最优值。
  • 基于训练数据的参数优化模型的改进
  • 对测试数据进行预测,并报告所选评估度量的得分。

注意,您应该使用测试数据(只使用)来报告最终得分,而不是调优模型,否则就是作弊。想象一下,在现实中,你可能直到最后一刻才能接触到它们,所以你不能使用它们。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/48376724

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档