Составление выражений
У меня две модели, $m_1$ и $m_2$, и я хочу объединить их в окончательную модель. Я хочу иметь возможность более взвешивать одно или другое в соответствии с поиском по сетке. При этом мне приходят в голову две основные идеи:
- Определите семейство моделей $m_1 \cdot a + m_2 \cdot (1 - a)$, где $0 < a < 1$, Найди $a$ это дает лучший результат.
- Определите семейство моделей $m_1^a \cdot m_2^{1 - a}$, где $0 < a < 1$, Найди $a$ это дает лучший результат.
Однако в некоторых случаях я видел, как топ-модели на соревнованиях Kaggle делали совершенно разные вещи, например, имели окончательную модель вида$m_1^a + m_2^b$.
Мой вопрос: каковы преимущества и недостатки каждого решения? Когда они работают лучше, а когда хуже? Когда подходит третий вид ансамбля и есть ли эвристика для настройки?$a$ и $b$?
Ответы
Это эмпирический вопрос. Ответ будет меняться для разных моделей и разных наборов данных.
Наилучшим подходом будет использование перекрестной проверки, чтобы увидеть, какой метод ансамбля имеет лучший результат по метрике оценки для заданных данных.
Вы можете задать один и тот же вопрос для каждого алгоритма машинного обучения, и все равно ответ останется очень похожим.
В чем преимущество линейной регрессии перед деревьями решений? Чтобы ответить на этот вопрос, вы можете определить их математически. В вашем случае математическое определение кажется простым: средневзвешенное или среднее геометрическое.
Когда какая-либо модель лучше работает с любой другой моделью? Попробуйте перекрестную проверку.
К сожалению, научная методология машинного обучения основана на пробах и ошибках. Сказать, каким будет значение гиперпараметра до подбора модели, ненадежно.
Вы «доказываете», что алгоритм работает в ML, когда вы запускаете его через набор наборов данных, и он работает лучше, чем остальные.
Возвращаясь к вашему вопросу, то, что происходит в kaggle, обычно является наиболее продвинутым с технической точки зрения вещью. Так что, если он есть, стоит попробовать.
Я согласен с Брэйном. Решение, которое будет работать лучше, будет лучше соответствовать вашим данным.
Обратите внимание, что если у вас есть только один параметр, вы можете получить оптимальное значение вместо поиска по сетке. Ваше семейство решений ограничено, поэтому я не ожидаю значительного выигрыша, но нет причин не использовать его.