Изучение алгоритмов машинного обучения: глубина понимания против количества алгоритмов


13

Недавно я познакомился с областью науки о данных (прошло около 6 месяцев), и я начал свой путь с курса по машинному обучению Эндрю Нга и поста, который начал работать над специализацией по науке данных в JHU.

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

Моя основная дилемма:

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

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

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

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

Ответы:


9

Я бы порекомендовал ограничиться несколькими проверенными и проверенными алгоритмами. Я бы не рекомендовал Элементы статистического обучения (как первую книгу). Это слишком теоретически, нацелено на аспирантов, с упражнениями, спрашивающими, как доказать X или Y ... Я думаю, что ISL более уместен, с большим количеством практических советов (в любом случае обе книги бесплатны для скачивания в формате pdf).

Помимо статистики, я бы позаботился о том, чтобы вы были довольны экспериментальным проектированием / тестами AB, а также бизнес-аналитикой / визуализацией.


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

2
Я бы сказал, почти все алгоритмы в ISL: линейная регрессия, логистическая регрессия, методы на основе дерева, SVM; Кластеризация и уменьшение размеров, например, PCA. Прочитайте книгу и посмотрите соответствующий онлайн-курс ( online.stanford.edu/course/statistical-learning-winter-2014 - может быть, на YouTube?).
seanv507

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

Извините, но это ужасный совет. Специалист по данным никогда не должен полагаться на несколько алгоритмов. Вы должны полагаться на свои собственные навыки обработки данных и анализа, и ни одна из этих проблем не похожа. Некоторые из них будут решены с помощью X, другие с Y. Просто не разумно ожидать, что юниверс данных будет соответствовать вашим нескольким алгоритмам. Будьте любопытны, будьте гибкими, знайте и используйте правильный инструмент для работы, а не только те, которые вы знаете.
I_Play_With_Data

5

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

Вам, вероятно, понравится читать Hastie et al. (2009), Элементы статистического обучения .


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

«что влияет на скорость сходимости алгоритма скоринга Фишера в GLM» - я полагаю, вы потеряли 99% исследователей данных здесь.

@Momo: Ну, «ученый данных» - это один из тех злополучных терминов, который едва заработал валюту, прежде чем начать обесцениваться.
Scortchi - Восстановить Монику

2

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

Я проработал в области аналитики около 11 лет, а специалист по данным - 2,5 года, и я говорю по своему опыту. С другой стороны, вам определенно следует знать о других вещах (более поздних алгоритмах, таких как глубокое обучение, SVM, XGboost и т. Д.), Которые могут быть более применимы к вашей проблеме.

Я думаю, что в курсе доктора Эндрю Нга подробно рассматриваются некоторые алгоритмы, и это хорошее начало. Как отмечали другие, http://statweb.stanford.edu/~tibs/ElemStatLearn/ - хорошая книга, в которой есть видео, которые можно дополнить.

Это мое личное мнение, алгоритмы, которые вы не должны пропустить: (Знайте это подробно):

1) Множественная линейная регрессия 2) Логистическая регрессия 3) Общие методы уменьшения размерности, такие как PCA 4) Кластеризация K-средних 5) Нелинейная регрессия 6) Методы оптимизации: методы поиска на основе градиента, линейное программирование и дискретная оптимизация 7) Концепции и алгоритмы 8) Простые методы прогнозирования временных рядов.

Еще эзотерические алгоритмы:

1) Случайные леса 2) SVM 3) глубокое обучение 4) Другие методы уменьшения размерности, такие как LDA 5) Другие методы, основанные на ядре 6) Генетические алгоритмы 7) XgBoost 8) Динамическая регрессия 9) Методы GARCH / ARCH 10) Моделирование структурных уравнений 11) Методы Бокса Дженкинса в прогнозировании временных рядов 12) Теория информации: получение информации, взаимная выгода и т. Д.


0

Я был в похожей ситуации. Я начал с каждого алгоритма здесь (и очень подробно).

введите описание изображения здесь

Тем не менее, вскоре я обнаружил, что научное сообщество в области машинного / глубокого обучения движется очень быстро и всегда разрабатывает более быстрые и современные алгоритмы, которые значительно превосходят традиционные алгоритмы во многих реальных приложениях. , Поэтому всегда желательно быть в курсе последних тенденций. Я предлагаю (как я обычно это делаю сам) получить подписку на хорошую новостную ленту (например, Medium) или удивительный, современный исследовательский журнал и следить за ним. Часто удивительные алгоритмы приходят из исследовательских работ, посвященных конкретной проблеме (вероятно, похожей на вашу).

Дело в том, что для того, чтобы быть хорошим специалистом по данным (или инженером по ML), вам необходимо сочетание глубины и ширины. Мне лично полезно знать множество алгоритмов на их поверхности (просто то, что они делают, когда они используются, плюсы и минусы). Я возвращаюсь к ним, когда чувствую ( чувствую только ), что они могут помочь мне решить конкретную проблему. Я читаю их подробно и проверяю, подходят ли они. Они могут или не могут быть. Но думать о деталях очень важно, чтобы не упустить изумительный подход к вашей проблеме из-за отсутствия понимания этого подхода. Например, однажды я работал над чем-то, что требовало обнаружения объектов (хотя и очень просто). Я где-то читал о R-CNN, Fast-CNN, YOLO. Я немедленно повернулся к ним, чтобы посмотреть, хорошо ли они подходят. В тот день я знал их более подробно.

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

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

Учите вещи, когда это необходимо. А при необходимости изучите их подробно. Вы должны быть в состоянии применить вещи, если вы чувствуете, что они могут работать. И это понимание приходит из знания.

Удачи.

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.