Оптимизация | Машинное обучение | Наука о данных

Как выбрать лучший алгоритм для вашего проекта машинного обучения

Оптимизация производительности модели машинного обучения: руководство по выбору алгоритма

«Пришел за данными, остался ради науки», — Кирк Борн, главный научный сотрудник DataPrime, Inc.

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

Вы можете решить следующие вопросы из этого блога

Что делать, если я создаю Low code — инструмент автоматизации машинного обучения без кода, и у меня нет оркестратора или системы управления памятью? помогут ли мои данные в этом?

Что делать, если у моего процессора недостаточно памяти и это отнимает много времени в случае случайного поиска при одновременной настройке нескольких гиперпараметров?

как уменьшить сложность и вычислительную дороговизну моделей машинного обучения?

Данные говорят обо всем, вам просто нужно ответить на звонок!!

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

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

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

Правила большого пальца, которые я понял на своем опыте:

Давайте поговорим о классификации

Размер набора данных. Размер набора данных является важным фактором, который следует учитывать при выборе алгоритма классификации. Для небольших наборов данных хорошим выбором могут быть менее сложные алгоритмы с меньшим количеством параметров, такие как Наивный байесовский алгоритм. Для больших наборов данных могут подойти более сложные алгоритмы, такие как случайный лес, метод опорных векторов (SVM) или нейронные сети.

Тип данных. Тип имеющихся у вас данных также может повлиять на выбор алгоритма классификации. Например, если у вас есть двоичные или категориальные данные, вы можете рассмотреть возможность использования таких алгоритмов, как логистическая регрессия, деревья решений или случайные леса. Для непрерывных данных более подходящими могут быть такие алгоритмы, как линейная регрессия или SVM.

Размерность данных. Количество признаков или атрибутов в вашем наборе данных, также известное как размерность, может повлиять на выбор алгоритма классификации. Для наборов данных с высокой размерностью можно использовать такие алгоритмы, как SVM или Random Forest, которые могут обрабатывать большое количество функций. может быть лучшим выбором. Напротив, для наборов данных с низкой размерностью могут быть использованы более простые алгоритмы, такие как Наивный байесовский алгоритм или K-ближайшие соседи. достаточный.

Распределение данных. Распределение данных также может повлиять на выбор алгоритма. Например, если данные распределены нормально, могут работать такие алгоритмы, как логистическая регрессия или линейный дискриминантный анализ. Для ненормальных или искаженных данных более подходящими могут быть такие алгоритмы, как деревья решений или SVM.

Количество классов. Количество классов или категорий в вашем наборе данных является важным фактором при выборе алгоритма классификации. Для наборов данных с только двумя классами можно использовать такие алгоритмы, как логистическая регрессия или машины опорных векторов. Для наборов данных с более чем двумя классами можно использовать такие алгоритмы, как деревья решений, случайные леса или нейронные сети.

Несбалансированные классы: если в вашем наборе данных есть несбалансированные классы, где количество экземпляров в одном классе намного больше или меньше, чем в других, вам может потребоваться использовать специализированные алгоритмы, которые могут справиться с такими ситуациями. Например, для наборов данных с несбалансированными классами можно использовать такие алгоритмы, как случайные леса, усиленные деревья или SVM с различными функциями ядра.

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

⚠ Бонусный совет ⚠

Всегда начинайте с КНН!!!!!!

Удивлен?

Позвольте мне рассказать вам причины.

[1] KNN является ленивым учеником и требует меньше вычислительных затрат, чем древовидные алгоритмы.

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

[3] KNN не работает с границами и напрямую находит расстояния на основе близости, поэтому, даже если точки данных перекрываются, KNN работает хорошо.

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

Линейная регрессия: используйте линейную регрессию, когда связь между независимыми и зависимыми переменными является линейной. Этот алгоритм лучше всего работает, когда число независимых переменных невелико.

Полиномиальная регрессия: используйте полиномиальную регрессию, когда связь между независимыми и зависимыми переменными является криволинейной. Этот алгоритм может фиксировать нелинейные отношения, но может привести к переоснащению, если степень полинома слишком высока.

Регрессия гребня: используйте регрессию гребня, когда данные имеют проблему мультиколлинеарности, что означает, что независимые переменные сильно коррелируют друг с другом.

Лассо-регрессия: используйте лассо-регрессию, когда у вас есть большое количество независимых переменных и вы хотите выбрать наиболее важные из них.

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

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

Регрессия случайного леса: используйте регрессию случайного леса, когда набор данных большой и существует много независимых переменных.

Регрессия опорных векторов: используйте регрессию опорных векторов, когда связь между независимыми и зависимыми переменными нелинейна и когда необходимо зафиксировать выбросы.

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

Я написал аналогичную статью, посвященную выбору правильной архитектуры CNN для вашего проекта. Если интересно, то можете прочитать.



Если вы нашли эту статью полезной

Доказано, что Щедрость делает вас более счастливым человеком; поэтому ставьте хлопки статье, если она вам понравилась. Если вы нашли эту статью полезной, подпишитесь на меня в Linkedin и medium. Вы также можете подписаться, чтобы получать уведомления, когда я публикую статьи. Создадим сообщество! Спасибо за вашу поддержку!

Вы можете прочитать другие мои блоги, связанные с:









СТАНЬТЕ ПИСАТЕЛЕМ на MLearning.ai