Scikit-Learn Оценки Прогноза классификатора голосования всегда 0 - PullRequest
0 голосов
/ 13 марта 2020

Я пытаюсь сравнить производительность набора проверки классификатора ансамбля с отдельными предикторами, которые составляют ансамбль.

Я следовал коду для Упражнение 8 из этого ноутбука , чтобы собрать жесткий VotingClassifier с LinearSVC, RandomForestClassifier, ExtraTreesClassifier и MLPClassifier для версии 1 набора данных MNIST Digits с использованием sklearn s fetch_openml API.

Я обучил ансамбль и оценил его, вызвав его функцию score с данными проверки, и получил оценку 0,97. Так что я уверен, что ансамбль и, соответственно, отдельные предикторы были обучены / подходят.

Но когда я пытаюсь использовать списочное понимание, чтобы вызвать score для индивидуума, вписанного estimators_ в этот ансамбль, например, так:

[estimator.score(X_val, y_val) for estimator in voting_clf.estimators_]

Я всегда получаю результат 0,0 для каждого предиктора , даже если я оцениваю на тренировочных данных.

Я подтвердил, что подоценки в estimators_ были выполнены с использованием метода predict, как описано в в этом сообщении StackOverflow .

Я также тренировал одни и те же оценщики индивидуально и оценивал их тем же методом. Похоже, это работает, так как результаты похожи на результаты в учебном пособии.

Я ссылаюсь на неправильный список подоценок в объекте ансамбля?

1 Ответ

0 голосов
/ 02 апреля 2020

Вы можете попробовать добавить

mnist.target = mnist.target.astype(np.uint8)

после загрузки набора данных MNIST.

Это работает для меня.

...