Взаимная проверка Kfold в sklearn каждый раз дает разные сгибы - PullRequest
0 голосов
/ 13 октября 2018

Я хочу реализовать перекрестную проверку 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

1 Ответ

0 голосов
/ 13 октября 2018

При передаче числа в параметре random_state вы фиксируете начальное число для внутреннего генератора случайных чисел.В будущем, если вы снова установите его на то же число, последовательность генерируемых случайных чисел всегда будет одинаковой.Таким образом, вы можете гарантировать воспроизводимость ваших результатов, так же, как вы хотите.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...