Недавно я познакомился с областью науки о данных (прошло около 6 месяцев), и я начал свой путь с курса по машинному обучению Эндрю Нга и поста, который начал работать над специализацией по науке данных в JHU.
Что касается практического применения, я работал над созданием прогностической модели, которая предсказывала бы истощение. До сих пор я использовал glm, bayesglm, rf, чтобы изучить и применить эти методы, но я обнаружил большой пробел в моем понимании этих алгоритмов.
Моя основная дилемма:
Должен ли я сосредоточиться больше на изучении тонкостей нескольких алгоритмов или мне следует использовать подход, позволяющий узнать многие из них, когда и сколько потребуется?
Пожалуйста, направьте меня в правильном направлении, возможно, предлагая книги или статьи или что-нибудь, что, по вашему мнению, поможет.
Я был бы признателен, если бы вы ответили с идеей руководства кем-то, кто только начал свою карьеру в области науки о данных и хочет быть человеком, который решает практические вопросы для делового мира.
Я бы прочитал (как можно больше) ресурсы (книги, статьи), предложенные в этом посте, и предоставил бы личную обратную связь о плюсах и минусах этого, чтобы сделать этот пост полезным для людей, которые сталкиваются с подобным вопросом. в будущем, и я думаю, было бы здорово, если бы люди, предлагающие эти книги, могли сделать то же самое.
источник
Возможно, кто-то, называющий себя ученым данными, должен знать больше о тонкостях алгоритмов, которые он использует - например, что влияет на скорость сходимости алгоритма оценки Фишера в GLM, - чем обычный статистик или садовод, который может быть доволен, просто зная, что решение с максимальной вероятностью будет найдено (возможно, после того, как они сделают чашку кофе). В любом случае, понимание общих понятий статистики и машинного обучения важно в дополнение к знакомству с методами, которые вы используете - теорией, лежащей в их основе, предположениями, которые они делают, какие диагностические проверки вы должны выполнить, как интерпретировать результаты. Избегайте этой пародии .
Вам, вероятно, понравится читать Hastie et al. (2009), Элементы статистического обучения .
источник
Что ж, я бы сказал, что лучше знать тонкости 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) Теория информации: получение информации, взаимная выгода и т. Д.
источник
Я был в похожей ситуации. Я начал с каждого алгоритма здесь (и очень подробно).
Тем не менее, вскоре я обнаружил, что научное сообщество в области машинного / глубокого обучения движется очень быстро и всегда разрабатывает более быстрые и современные алгоритмы, которые значительно превосходят традиционные алгоритмы во многих реальных приложениях. , Поэтому всегда желательно быть в курсе последних тенденций. Я предлагаю (как я обычно это делаю сам) получить подписку на хорошую новостную ленту (например, Medium) или удивительный, современный исследовательский журнал и следить за ним. Часто удивительные алгоритмы приходят из исследовательских работ, посвященных конкретной проблеме (вероятно, похожей на вашу).
Дело в том, что для того, чтобы быть хорошим специалистом по данным (или инженером по ML), вам необходимо сочетание глубины и ширины. Мне лично полезно знать множество алгоритмов на их поверхности (просто то, что они делают, когда они используются, плюсы и минусы). Я возвращаюсь к ним, когда чувствую ( чувствую только ), что они могут помочь мне решить конкретную проблему. Я читаю их подробно и проверяю, подходят ли они. Они могут или не могут быть. Но думать о деталях очень важно, чтобы не упустить изумительный подход к вашей проблеме из-за отсутствия понимания этого подхода. Например, однажды я работал над чем-то, что требовало обнаружения объектов (хотя и очень просто). Я где-то читал о R-CNN, Fast-CNN, YOLO. Я немедленно повернулся к ним, чтобы посмотреть, хорошо ли они подходят. В тот день я знал их более подробно.
Должен ли я сосредоточиться больше на изучении тонкостей нескольких алгоритмов или мне следует использовать подход, позволяющий узнать многие из них, когда и сколько потребуется?
Изучение тонкостей удивительно. Однако мир движется очень быстрыми темпами. Там может быть новый алгоритм, который превосходит тот, кого вы узнали с большой детализацией. Пора, следовательно, избавиться от этого использования и посмотреть, принесет ли новый вам больше пользы.
Учите вещи, когда это необходимо. А при необходимости изучите их подробно. Вы должны быть в состоянии применить вещи, если вы чувствуете, что они могут работать. И это понимание приходит из знания.
Удачи.
источник