python K折验证的典型warning

Warning: The least populated class in y has only 5 members, which is too few. The minimum number of members in any class cannot be less than n_splits=7.% (min_groups, self.n_splits)), Warning)

表示评分的y集合(分别是0,1,2)

[1, 1, 1, 1, 2, 1, 2, 1, 2, 1, 1, 2, 2, 0, 2, 0, 1, 1, 2, 1, 2, 2, 2, 2, 2, 1, 0, 1, 2, 2, 2, 1, 1, 2, 2, 0, 1, 2, 0, 1, 2, 1, 1]

这里我的k设定为7折,也就是说我的1/7作为测试集,另外的6/7作为训练集。

k折验证是保留比例的,0的比例是5/43=0.12,那么在我的测试集里面0平均分成7份,也就是至少要5/7<1的0,我们显然不能给出小数个0样本,所以在k折训练中是不成立的。

对于这样的y集合,数量最少的class就是0,它有5个,所以将k定为5就足够了,如果一定要7折,那就至少要7个0

阅读更多

没有更多推荐了,返回首页