SKLERN中的Kfold交叉验证每个tim提供不同的折叠

2024-06-09 16:16:51 发布

您现在位置:Python中文网/ 问答频道 /正文

我想在我的模型上实现KFold交叉验证。因为我想和其他人分享我的结果,所以我希望每次都有固定的结果。我使用xgboost模型作为我的分类模型。但是,每次运行代码时,我的性能指标每次都会给出不同的结果,我很困惑,因为我将shuffle参数设置为False。另外,我不确定random_state参数的作用(我阅读了文档),但是不管怎样,我尝试用shuffle=False将其设置为一个固定的数字,但这没有帮助。在

kf = KFold(n_splits=5, shuffle = False)

for train_index, test_index in kf.split(X, y):
    X_train, X_test = X.iloc[train_index], X.iloc[test_index]
    y_train, y_test = y.iloc[train_index], y.iloc[test_index]
    xgb = XGBClassifier(max_depth = 4)
    ...fit, predict, and compute performance metrics

Tags: 代码模型testfalseindex分类train交叉
1条回答
网友
1楼 · 发布于 2024-06-09 16:16:51

在参数random_state中传递一个数字时,您正在修复内部随机数生成器的种子。以后如果你再把它设成同一个数,随机数的序列总是一样的。这样你就可以保证结果的可重复性,就像你想要的那样。在

相关问题 更多 >