K сворачивание с использованием склеарна с конкретными кластерами вместо разделения с определенным размером - PullRequest
0 голосов
/ 24 сентября 2019

Я хотел бы провести перекрестную проверку в K-кратном размере с помощью sklearn в python. Мои данные имеют 8 пользователей, и я делаю только K-кратный контроль для данных одного пользователя. Можно ли выполнять перекрестную проверку между пользователями?Например, использовать 7 пользователей в качестве набора поездов и 1 пользователя в качестве тестового набора и делать это для этих 8 различных случаев?

1 Ответ

0 голосов
/ 24 сентября 2019

Да, это возможно.Для этого вы можете использовать перекрестную проверку с группами.Если вы хотите убедиться, что точки данных от одного человека находятся в или обучающем или тестовом наборе, это называется группировка или блокировка .в scikit-learn такого можно добиться, добавив массив со значениями членства в группе к cross_val_scores.Затем вы можете использовать класс GroupKFold scikit-learn с количеством групп в качестве процедуры перекрестной проверки.Смотрите пример ниже.(Простая модель логистической регрессии только для иллюстрации использования класса GroupKFold)

from sklearn.model_selection import GroupKFold
# create synthetic dataset
X, y = make_blobs(n_samples=12, random_state=0)

# the first three samples belong to the same group, etc.
groups = [0, 0, 0, 1, 1, 1, 2, 2, 2, 3, 3, 3]

scores = cross_val_score(logreg, X, y, groups, cv=GroupKFold(n_splits=4))

print("cross_val_score(logreg, X, y, groups, cv=GroupKFold(n_splits=4)")
print("Cross-validation scores :\n{}".format(scores))
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...