K-кратное перекрестное подтверждение для повторных наблюдений Sklearn [duplicate]

Пример AlliterativeAlice очень помог мне. В моем случае, однако, сервер, с которым я разговаривал, не любил иметь одинарные кавычки вокруг utf-8 в типе контента. Он потерпел неудачу с общим "Server Error", и потребовалось несколько часов, чтобы выяснить, что ему не понравилось:

request.ContentType = "text/xml; encoding=utf-8";
0
задан infinite-rotations 6 July 2018 в 18:06
поделиться

1 ответ

Установите их как 'group'. Большинство сплиттеров в sklearn поддерживают в них параметр с именем groups, который можно настроить на то, что вы хотите

Пример:

Вы можете использовать GroupKFold или GroupShuffleSplit :

group_kfold = GroupKFold(n_splits=3)
for train_index, test_index in group_kfold.split(df, groups=df.index):
    print("Train", df.iloc[train_index].index)
    print("Test", df.iloc[test_index].index)

Output: 
('Train', Int64Index([1, 1, 1, 2, 2, 3, 4, 4], dtype='int64', name=u'A'))
('Test', Int64Index([5, 6, 6, 6], dtype='int64', name=u'A'))

('Train', Int64Index([2, 2, 4, 4, 5, 6, 6, 6], dtype='int64', name=u'A'))
('Test', Int64Index([1, 1, 1, 3], dtype='int64', name=u'A'))

('Train', Int64Index([1, 1, 1, 3, 5, 6, 6, 6], dtype='int64', name=u'A'))
('Test', Int64Index([2, 2, 4, 4], dtype='int64', name=u'A'))

Вы можете видеть, что последний тест поезда соответствует вашему требованию. Все складки будут иметь данные, которые будут либо тренироваться, либо тестироваться, но не оба.

3
ответ дан Vivek Kumar 16 August 2018 в 10:52
поделиться
  • 1
    Это также применимо для GridSearchCV? – infinite-rotations 6 July 2018 в 16:31
  • 2
    @ бесконечные вращения Да, вы можете указать это как параметр cv для GridSearchCV – Vivek Kumar 7 July 2018 в 04:57
Другие вопросы по тегам:

Похожие вопросы: