Python “如何修复”;y中填充最少的类只有一个成员;Scikit学习

Python “如何修复”;y中填充最少的类只有一个成员;Scikit学习,python,csv,machine-learning,scikit-learn,train-test-split,Python,Csv,Machine Learning,Scikit Learn,Train Test Split,我正在创建一个程序,使用过去的数据集来预测任何工作的员工工资。我收到错误“警告:y中填充最少的类只有1个成员,这太少了。任何类中的最小成员数不能小于n_splits=5。” 这里是我尝试拆分并收到错误的地方。我对机器学习非常陌生,如果有人能指导我如何解决这个问题,我将不胜感激。来自文档: 对于整数/无输入,如果估计器是分类器,y是 使用二元或多类分层折叠。在所有其他方面 在案例中,使用KFold 您一定有多类分类问题。由于使用了,您需要在数据中至少有每个类的5个示例。如果至少有一个类的示例数小于

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

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

来自文档:

对于整数/无输入,如果估计器是分类器,y是 使用二元或多类分层折叠。在所有其他方面 在案例中,使用KFold

您一定有多类分类问题。由于使用了,您需要在数据中至少有每个类的5个示例。如果至少有一个类的示例数小于5个,则会抛出此错误


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

参数
target
是一个输入错误吗?是的,我的错。实际的代码没有这个。我该怎么做?你在使用熊猫吗?假设是,作为起点,您可以按类列分组,并计算每个类有多少行。例如:df[“CLASS_COUNT”]=df.groupby(“TARGET_COL”).transform(“COUNT”)。然后过滤数据帧,其中“CLASS_COUNT”>=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)