我正在使用过去的数据集创建一个程序,以预测任何工作的员工薪水。我收到错误消息“警告: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)
在这里我尝试拆分并收到错误。我对机器学习非常陌生,因此如果有人可以指导我解决此问题,将不胜感激。
答案 0 :(得分:0)
从GridSearchCV文档中:
对于整数/无输入,如果估计量是分类器,y是 无论是二进制还是多类,都使用StratifiedKFold。在其他所有方面 情况下,使用KFold。
您必须遇到多类分类问题。由于使用了StratifiedKFold,因此数据中每个类至少需要有5个示例。如果您至少有一个带有<5个示例的类,则会引发此错误。
一种简单的解决方案是使用<5个示例删除类或减少折叠次数。