EnsembleVoteClassifier с нейронной сетью - PullRequest
1 голос
/ 07 октября 2019

У меня есть обученные нейронные сети, в которых я пытаюсь усреднить их прогноз, используя EnsembleVoteClassifier из mlxtend.classifier. Проблема в том, что моя нейронная сеть не использует одни и те же входные данные (я выполнял алгоритмы сокращения и выбора функций случайным образом и сохранял результаты в новых переменных), поэтому у меня есть что-то вроде X_test_algo1, X_test_algo2 и X_test_algo3 иY_test).

Я пытаюсь усреднить веса, но, как я уже сказал, у меня нет того же X, и у меня не было никакого примера в документации. Как я могу усреднить прогнозы для моих трех моделей model1, model2 и model3

eclf = EnsembleVoteClassifier(clfs=[model1, model2, model3], weights=[1,1,1], refit=False)
names = ['NN1', 'NN2', 'NN2', 'Ensemble']

eclf.fit(X_train_algo1, Ytrain) #????

Если это невозможно, это нормально. Меня интересует только то, как рассчитать формулы жесткого голосования, жесткого голосования и взвешенного голосования, или есть ли более гибкая библиотека пыльников или могут быть полезны явные выражения формул.

1 Ответ

0 голосов
/ 08 октября 2019

Зачем вам нужна библиотека для этого?

Просто пропустите одни и те же примеры через все ваши нейронные сети и получите прогнозы (логитыши, вероятности или метки).

  • Жесткое голосование. Выберите метку, которую чаще всего предсказывают классификаторы.

  • Мягкое голосование, средние вероятности, предсказанные классификаторами, и выберите метку, имеющую наибольшее значение.

  • Взвешенное голосование - любое из вышеперечисленного может быть взвешено,Просто назначьте веса каждому классификатору и умножьте их прогнозы на них. Веса обычно нормализуются до диапазона (0, 1].

В принципе, вы также можете суммировать логиты и выбирать метки с наивысшим значением.

О, а усреднение по весу - это другой методи требует, чтобы у вас была одна и та же модель, и обычно это делается для одной и той же инициализации, но на разных этапах обучения. Вы можете прочитать об этом в этом блоге .

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