问题原因
当使用scikit-learn中的一些分类算法(如RandomForestClassifier,DecisionTreeClassifier,KNeighborsClassifier等)时,如果训练数据集中的目标变量类别数目过多(大于等于分类算法中设置的参数n_classes),就会报错"ValueError: Number of labels is {n_labels}. Valid numbers of labels are 2 to n_classes - 1 (inclusive) "。
意思是说目标变量的类别数目不在算法分类上下限内,无法完成训练。
解决办法
1.查看数据集中的目标变量类别数目,如果类别数目大于等于算法参数n_classes的设定值,可以考虑调整n_classes的值,重新进行模型训练。
2.如果目标变量确实存在大于分类算法上限的类别数目,在这种情况下,可以使用多分类算法(如One-vs-Rest和One-vs-One)或者将数据集中的目标变量进行合并,然后再进行二元分类。