
Вы когда-нибудь спрашивали себя: «Какой алгоритм мне следует использовать для обучения моей модели?». Читайте дальше, чтобы узнать несколько советов, которые могут вам пригодиться в таких ситуациях.
Во-первых, определите проблему, которую собираетесь решать.
Обычно проблемы машинного обучения делятся на три категории.
- Контролируемое обучение: когда вы работаете со структурированным набором данных (помеченные данные), ваша проблема попадает в эту категорию. При обучении с учителем ваша проблема может подпадать под две возможные категории. Если целью (ожидаемый результат) является порядковое числовое значение, вам следует использовать алгоритм регрессии. С другой стороны, если целью является класс или категориальное значение, вам следует использовать алгоритм классификации.
- Неконтролируемое обучение: если ваш набор данных неструктурирован, и вы пытаетесь определить ярлыки, то это неконтролируемое обучение. В этом случае ваша цель - это подмножество ваших входных функций. В этом случае вы будете использовать алгоритм кластеризации.
- Обучение с подкреплением: это тип обучения, при котором программные агенты ожидают, что они будут предпринимать подходящие действия, чтобы максимизировать вознаграждение (ожидаемый результат или поведение).
Во-вторых, анализируйте имеющиеся у вас данные
После первого шага вы должны были сузить выбор алгоритма. Теперь у вас есть представление о том, под какие три основные категории попадает ваша проблема. Но есть много алгоритмов, доступных в каждых трех категориях.
Например, если мы возьмем контролируемое обучение в качестве вашей категории, существуют такие алгоритмы, как линейная регрессия, логистическая регрессия, наивный байесовский метод, деревья решений, k ближайший сосед, обучение по сходству, нейронные сети и т. Д. Итак, теперь вопрос в том, что выбрать?
Чтобы решить, что вам нужно очень хорошо разбираться в своих данных. Создавайте гипотезы, визуализируйте и анализируйте свои данные, узнавайте типы данных. Потому что некоторые алгоритмы, такие как линейная регрессия или логистическая регрессия, работают только с числовыми данными, тогда как такие алгоритмы, как случайный лес, могут работать и с категориальными данными.
В-третьих, определите размер набора данных и функций
Определите, сколько у вас данных. Потому что для меньшего набора данных простые алгоритмы, такие как линейная регрессия, будут прилично работать и производить обобщение, когда сложные алгоритмы, такие как нейронные сети, могут превосходить набор данных.
Что касается количества функций, некоторые сложные алгоритмы также требуют больше времени на обучение и прогнозирование. В таких случаях SVM - лучший алгоритм. И снова линейная регрессия неплохо справляется с огромным количеством функций.
В-четвертых, определите необходимую точность
Точность зависит от приложения. Для некоторых проблем нам может потребоваться адекватный уровень точности, а в деликатных случаях - более высокая точность. Так что это зависит от конечного результата, над которым вы работаете.
Но точность играет важную роль при выборе алгоритма. Если адекватной точности достаточно, вы можете воспользоваться простым алгоритмом, который сэкономит массу вычислительных ресурсов и времени.
В-пятых, Human Insight
Даже после рассмотрения всего вышеперечисленного вы можете выбрать два или три возможных алгоритма (или больше). Начните опробовать алгоритм с низкой сложностью и пробуйте возможности одну за другой, пока не найдете алгоритм, который вам нужен.
Не забывайте, всегда используйте свои человеческие способности. Определите вычислительную мощность, время и ресурсы, которые могут потребоваться для каждого возможного алгоритма для получения необходимой точности.
Для этого вам необходимо понимать концепции, лежащие в основе различных типов алгоритмов, и их сложность.
Надеюсь, вы все поняли, что нужно учитывать при выборе алгоритма.
Аплодируйте и делитесь, если вам это нравится. Пожалуйста, ответьте (прокомментируйте), если я что-то пропустил.