У меня есть группа функций для воспроизведения каждого игрока и целевое значение в разных временных срезах. Я занимаюсь классификацией Scikit-learn. Чтобы сделать кросс-валидацию, я должен установить ограничение таким образом, что если образец повтора находится в наборе поезда, тогда не должно быть другого образца из этого повтора в тестовом наборе. Должен ли я определить функцию разделения данных, или я мог бы настроить функцию проверки сумасшествия в Scikit-learn?Настройка перекрестной проверки в scikit learn
Edit 1
Пусть моя матрица данных выглядит следующим образом: replayID, квант времени, и возможности для этого ряда. Также у меня есть массив, который включает метки классов.
replayID Time_slice Features
data=array([[ 100, 0., 1.5,...],
[ 100, 1., 3.7,...],
[ 100, 0., 1.2,...],
[ 100, 1., 1.8,...],
[ 100, 2., 2.9,...],
[ 101, 0., 1.5,...],
[ 101, 1., 3.7,...],
[ 101, 0., 1.2,...],
[ 101, 1., 1.8,...],
[ 101, 2., 2.9,...]])
мне требуется, если образец с replayID = 100 в обучающих данных, то нет никаких других образцов с replayID = 100 в тестовых данных. Кроме того, данные обучения должны составлять 80% данных и данных теста, 20%.
X = data[:, 1:]
y = targets
labels = data[:, 0]
cv = LabelKFold(labels, n_folds=10)
est = GradientBoostingClassifier(**params)
for train, test in cv:
X_train = X[train]
y_train = y[train]
X_test = X[test]
est.fit(X_train, y_train)
Пожалуйста, укажите вашу проблему более четко, таким образом, что она не до интерпретации потенциальных, что вы отвечающие пытаетесь сделать. Как правило, пример кода был бы потрясающим, но здесь он может и не понадобиться. – eickenberg