-1

我正在使用过去的数据集创建一个程序来预测任何工作的员工薪水。我收到错误“警告: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)

这是我尝试拆分并收到错误的地方。我对机器学习很陌生,所以如果有人能指导我如何解决这个问题,我将不胜感激。

4

1 回答 1

0

GridSearchCV文档:

对于整数/无输入,如果估计器是分类器并且 y 是二元或多类,则使用 StratifiedKFold。在所有其他情况下,使用 KFold。

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

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

于 2019-07-11T18:25:21.283 回答