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

Это вопрос, с которым в какой-то момент своей карьеры сталкивалось большинство специалистов по обработке и анализу данных и специалистов по машинному обучению. Выбор правильного алгоритма машинного обучения для применения к конкретному набору данных всегда был сложной задачей. Доступен широкий спектр алгоритмов машинного обучения, начиная от линейных моделей, таких как линейная или логистическая регрессия, машины опорных векторов (SVM), древовидных моделей, таких как деревья решений, случайные леса и деревья решений с градиентным усилением (GBDT) и, наконец, нейронные модели. Сети, которые представляют собой совершенно другой класс алгоритмов.

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

Q1. Размер обучающих данных. Сколько обучающих примеров есть в вашем наборе данных?

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

Вопрос 2. Количество объектов — сколько объектов присутствует в вашем наборе данных?

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

Вопрос 3. Интерпретируемость. Должна ли ваша модель объяснять каждый из своих прогнозов?

Интерпретируемость модели важна, потому что она позволяет нам предпринимать конкретные действия для решения основной проблемы. Некоторые точные алгоритмы, такие как нейронные сети и ансамблевые модели, известны как «черные ящики», поскольку их работа сложна, и очень трудно понять, почему они сделали определенный прогноз. Поэтому эти алгоритмы не поддаются интерпретации, в то время как такие алгоритмы, как K-ближайший сосед (KNN), логистическая регрессия и машины опорных векторов (SVM), считаются вполне интерпретируемыми, и способ, которым они делают свои прогнозы, очень прост.

Q4. Линейные и нелинейные данные. Являются ли ваши данные линейно разделимыми?

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

В5. Скорость обучения. Сколько времени вы можете выделить на обучение модели?

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

Вопрос 6. Скорость прогнозирования. Насколько быстрой должна быть ваша модель при прогнозировании? Ваша модель требует высокой пропускной способности?

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

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

Так что продолжайте практиковаться и решать!!!