Как правильно комбинировать мои классификаторы?

  • Я должен решить проблему классификации 2 классов.
  • У меня есть 2 классификатора, которые выводят вероятности. Оба они являются нейронными сетями различной архитектуры. Эти 2 классификатора обучаются и сохраняются в 2 файла.

Теперь я хочу построить мета-классификатор, который будет принимать вероятности в качестве входных данных и изучать веса этих двух классификаторов. Таким образом, он автоматически решит, насколько я должен "доверять" каждому из моих классификаторов.

Эта модель описана здесь:
http://rasbt.github.io/mlxtend/user_guide/classifier/StackingClassifier/
Я планирую использовать библиотеку mlxtend, но, похоже, StackingClassifier обновляет модели.
Я не хочу ремонтировать, потому что это занимает очень много времени.
С другой стороны, я понимаю, что переоснащение необходимо для "координации" работы каждого классификатора и "настройки" всей системы.

Что мне делать в такой ситуации?

1 ответ

Решение

Я не буду говорить о mlxtend потому что я не работал с этим, но я расскажу вам общую идею.

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

В частности, разделите ваши тренировочные данные на несколько частей (обычно от 3 до 10). Сохраняйте одну часть (т.е. сгиб) в качестве проверочных данных и обучайте обе модели другим сгибам. Затем спрогнозируйте вероятности для данных проверки, используя обе модели. Повторите процедуру, рассматривая каждую складку как набор проверки. В конце у вас должны быть вероятности для всех точек данных в обучающем наборе.

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

Другие вопросы по тегам