我有大约1000个数据点,每个数据点属于特定用户。总共我有80个用户,因此每个用户有大约12个数据点。我可以使用scikit-learn中的LeaveOneGroupOut
让一个用户进行交叉验证。
但是现在我想使用留一法交叉验证,即在测试集中只使用一个数据点(而不是用户)。但是我不想使用完整的剩余训练集,而是使用稍微不同的训练集:如果来自用户x的数据点n在测试集中,那么训练集应该包括所有其他用户的数据点和数据用户x的1,2,... n-1点。如果来自用户x的数据点1在测试集中,则该用户的数据点不在训练集中。
如何做到这一点?我使用Pipeline
和RandomizedSearchCV
以及SVM,所以如果有LeaveOneGroupOut
这样的解决方案,我会非常高兴我可以传递给这些方法。