Я пытаюсь решить регрессионную задачу. Я обнаружил, что 3 модели прекрасно работают для разных подмножеств данных: LassoLARS, SVR и Gradient Tree Boosting. Я заметил, что когда я делаю прогнозы, используя все эти 3 модели, а затем составляю таблицу «истинного результата» и выходных данных моих 3 моделей, я вижу, что каждый раз, по крайней мере, одна из моделей действительно близка к истинному результату, хотя 2 другие может быть относительно далеко.
Когда я вычисляю минимально возможную ошибку (если я беру прогноз от «лучшего» предиктора для каждого тестового примера), я получаю ошибку, которая намного меньше, чем ошибка любой отдельной модели. Поэтому я подумал о том, чтобы попытаться объединить предсказания этих трех разных моделей в какой-то ансамбль. Вопрос в том, как это сделать правильно? Все мои 3 модели построены и настроены с использованием scikit-learn. Предоставляет ли он какой-то метод, который можно использовать для упаковки моделей в ансамбль? Проблема в том, что я не хочу просто усреднять прогнозы по всем трем моделям, я хочу сделать это с взвешиванием, где взвешивание должно определяться на основе свойств конкретного примера.
Даже если scikit-learn не предоставляет такую функциональность, было бы неплохо, если бы кто-то знал, как правильно решить эту задачу - вычислить вес каждой модели для каждого примера в данных. Я думаю, что это может быть сделано с помощью отдельного регрессора, построенного поверх всех этих 3 моделей, который попытается вывести оптимальные веса для каждой из 3 моделей, но я не уверен, что это лучший способ сделать это.