我试图了解在 lenskit 中究竟是如何执行交叉验证的。在文档中,它说默认情况下数据是按用户分区的。这是否意味着,在每一折中,测试集中的用户都没有用于训练?这是通过“坚持”选项实现的吗?如果是这样,此选项是否会破坏基于用户的分区并产生每个用户同时出现在训练和测试集中的折叠?
现在,我的评估代码如下所示:
dataset crossfold("data") {
source csvfile(sourceFile) {
delimiter "\t"
domain {
minimum 0.0
maximum 10.0
precision 0.1
}
}
// order RandomOrder
holdoutFraction 0.1
}
我注释掉了“订单”选项,因为在使用它时lenskit eval
会引发错误。
干杯!!!