Как исправить «наименее населенный класс в y имеет только одного члена» Scikit learn - PullRequest
0 голосов
/ 11 июля 2019

Я создаю программу с использованием прошлых наборов данных для прогнозирования заработной платы сотрудников за любую работу.Я получаю сообщение об ошибке: «Предупреждение: наименее населенный класс в 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 голосов
/ 11 июля 2019

Из документации GridSearchCV :

Для целочисленных / нулевых входов, если оценщик является классификатором, а у - либо бинарный, либо мультиклассовый, используется StratifiedKFold. Во всех остальных случаи, KFold используется.

У вас должна быть проблема мультиклассовой классификации. Поскольку используется StratifiedKFold , вам необходимо иметь как минимум 5 примеров каждого класса в ваших данных. Если у вас есть хотя бы один класс с <5 примерами, эта ошибка будет выдана. </p>

Простым решением было бы исключить классы с <5 примерами или уменьшить количество сгибов. </p>

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...