如何修复“ y中人口最少的类只有一个成员” Scikit学习

时间:2019-07-11 18:07:42

标签: python csv machine-learning scikit-learn train-test-split

我正在使用过去的数据集创建一个程序,以预测任何工作的员工薪水。我收到错误消息“警告:y中人口最少的类只有1个成员,这太少了。任何类中的最小成员数不能小于n_splits = 5。”

p_train, p_test, t_train, t_test = train_test_split(predictors, target target, test_size=0.25, random_state=1)
model = KNeighborsClassifier()
param_grid = {'n_neighbors': np.arange(1, 25)}
modelGSCV = GridSearchCV(model, param_grid, cv=5)

在这里我尝试拆分并收到错误。我对机器学习非常陌生,因此如果有人可以指导我解决此问题,将不胜感激。

1 个答案:

答案 0 :(得分:0)

GridSearchCV文档中:

  

对于整数/无输入,如果估计量是分类器,y是   无论是二进制还是多类,都使用StratifiedKFold。在其他所有方面   情况下,使用KFold。

您必须遇到多类分类问题。由于使用了StratifiedKFold,因此数据中每个类至少需要有5个示例。如果您至少有一个带有<5个示例的类,则会引发此错误。

一种简单的解决方案是使用<5个示例删除类或减少折叠次数。