У меня есть около 1000 точек данных, и каждая точка данных принадлежит определенному пользователю.Всего у меня 80 пользователей, поэтому у каждого пользователя около 12 точек данных.Я могу оставить одного пользователя без перекрестной проверки, используя LeaveOneGroupOut
из scikit-learn.
Но теперь я хотел бы использовать перекрестную проверку с пропуском, то есть использовать только одну точку данных в наборе тестов (вместо пользователя).Но вместо использования полного оставшегося обучающего набора я хотел бы использовать немного другой обучающий набор: если точка данных n от пользователя x находится в тестовом наборе, то обучающий набор должен состоять из точек данных всех других пользователей плюс данныепункты 1,2, ... n-1 пользователя x.Если точка данных 1 от пользователя x находится в наборе тестов, то ни одна точка данных этого пользователя не находится в наборе обучения.
Как это можно сделать?Я использую Pipeline
с RandomizedSearchCV
и SVM, поэтому я был бы очень рад, если бы было решение, подобное LeaveOneGroupOut
, которое я мог бы передать этим методам.