Сравнение MLP и LightGBM

Рейтинг: 1Ответов: 1Опубликовано: 12.08.2025

Написал MLP c нуля и решил при помощи него задачу классификации, вроде бы результат хороший, примерно 80%, confusion matrix тоже норм, данные сбалансированы и хорошо распознаются.

И вроде бы нейросеть лучше должна справляться с этой задачей, чем ансамблевые методы машинного обучения, но стоило испробовать LightGBM, результаты оказались чуть лучше.

Конечно датасет тоже не большой, но стало интересно почему же нейросети с градиентами слоями и смещениями хуже справился, чем ансамблевый алгоритм (или я, как обычно, провинился где-то хах)?

код и датасет

Ответы

▲ 2

вроде бы нейросеть лучше должна справляться с этой задачей, чем ансамблевые методы

Кто вам такое сказал? Deep Learning, то бишь нейросети, обычно требует очень много данных и хитрую архитектуру самой нейросети, чтобы превзойти современные "обычные" ансамбли, например, те же бустинги в "табличных" задачках. Нейросети однозначно хороши в анализе и генерации контента (картинки, тексты, звук и т.п.), но что касается "табличек", бустинги сейчас являются State of the art, нейросети начинают использовать только когда данных очень-очень много и в них совсем уже не явные зависимости, которые можно поймать только сложной архитектурой нейросети. В остальных случаях бустинги работают точнее и быстрее, и при этом требуют гораздо меньше ресурсов, чем нейросети. Молотить нейросетями таблички данных - это забивать гвозди молотком, практически. Есть гораздо более простые инструменты для этого, гораздо более эффективные по затрачиваемым усилиям.

Если более конкретно - нужно смотреть, какая архитектура у вашего MLP, сколько у него скрытых слоёв, какого они размера и т.д. Ну и вы можете сами провести исследование, взяв готовый MLP из Scikit-learn и погонять его с разным количеством слоёв (в вашем MLP, насколько я вижу, слои жёстко зашиты в код, он не позволяет их легко менять). С какого-то кол-ва слоёв наверняка вы сможете догнать бустинг. Но нужно подбирать архитектуру. Просто взять какую-то нейросеть и ожидать, что она однозначно будет лучше специализированных моделей в какой-то задаче - это довольно наивно.

P.S. Зря вы не посмотрели ROC-AUC для предсказания MLP. Бывает, что threshold оптимален не 0.5 для каких-то моделей, а больше или меньше. Есть вероятность, что ROC-AUC был бы не такой, как Accuracy. Не факт, конечно, но я бы проверил. То, что вы для разных моделей смотрите разные метрики - это довольно небрежный подход. Для бинарной классификации нужно смотреть ROC-AUC для всех моделей.