Вопрос или проблема
Предыстория
Я промежуточный R программист с некоторым опытом в концепциях машинного обучения и простом моделировании в R. У меня есть возможность сотрудничать с профессиональной командой машинного обучения, которая не против того, чтобы я использовал R, но я считаю, что в конечном итоге мне придется перейти на Python.
Я использую программирование и машинное обучение в основном для научных целей (медицина) и публикаций. Однако существует незначительная вероятность перехода к более основанному на продукте рабочему процессу.
Моя дилемма
У меня есть две задачи:
- Выучить Python (что можно отложить, если я продолжу с R, но я знаю, что в конечном итоге мне придется перейти).
- Освоить инструмент машинного обучения (
Tidymodels
,mlr3
илиscikit-learn
), чтобы произвести впечатление на команду во время собеседования.
Как я уже сказал, задачу 1
можно выполнить позже. Но задачу 2
нужно решить в течение нескольких недель. Поэтому, если вы думаете, что мне стоит перейти на Python, имейте в виду, что у меня собеседование в очень близком будущем, поэтому мне нужно освоить и Python, и машинное обучение.
Я понимаю, что Python более экономичен по использованию памяти и имеет лучший доступ к GPU, но я также слышал хорошие вещи о пакетах машинного обучения R, таких как Tidymodels
и mlr3
.
Учитывая, что R имеет многообещающее будущее в машинном обучении, но Python в настоящее время более широко используется, что мне делать? Каков мой план действий? Если мне следует придерживаться R, какие пакеты мне следует использовать и какие ресурсы учить? Думаете ли вы, что возможно освоить Python и экосистему машинного обучения Python за пару недель?
ps. Кто-то спросил меня, почему мне нужно перейти на Python. На основании консультаций с экспертами они упомянули, что R все еще довольно незрелый и страдает от проблем с памятью и эффективностью GPU, среди прочего. Но я не уверен в этом. Я просто хочу изучить лучший инструмент как можно скорее.
Пакет статистики R представляет собой большую экосистему инструментов, специально созданных и активно поддерживаемых статистиками для выполнения разнообразных статистических, машинных и многих других задач в других областях научных вычислений. Большинство новых разработок в области вероятности и статистики быстро реализуются в пакетах R. Поэтому вам будет полезно продолжать развивать свои знания и навыки в R.
Исследователь в области машинного обучения может реализовать свой инновационный метод на Python и достичь более широкой аудитории, чем разработка его на любом другом языке программирования или платформе. Это создает порочный круг – из-за большего числа пользователей и исследователей, использующих Python, любые новые разработки в области машинного обучения, как правило, ориентированы на пользователей Python, чтобы они были более доступны.
Следовательно, в сегодняшней среде практически все инструменты глубокого обучения и новые разработки в этой области используют библиотеки Python, которые становятся трудными (но не невозможными) для интеграции или совместной работы с другими языками. Поэтому предпочтительно быть знакомым с этими пакетами Python, чтобы вы могли работать с другими командами, а также лучше понимать, улучшать или расширять существующие работы.
Вам следует следовать обоим путям и продолжать развивать свои навыки в R, а также изучать и развивать знания о библиотеках Python для машинного обучения.
Ответ или решение
Вопрос о том, стоит ли вам продолжать изучение языка R или переключиться на Python для работы в области машинного обучения, очень актуален, особенно учитывая вашу текущую ситуацию и цели. Давайте рассмотрим основные аспекты, чтобы вам было легче принять решение.
Фон
Как промежуточному программисту на R с некоторым опытом в машинном обучении, у вас уже есть крепкая база для анализа данных и статистического моделирования. R предлагает мощные инструменты для статистики и визуализации данных, которые особенно ценятся в исследованиях, таких как медицина, где вы работаете. Однако вы также осознаете необходимость освоения Python, поскольку это наиболее популярный язык в области машинного обучения.
Задачи и приоритеты
-
Изучение Python: Вы правильно заметили, что обучение Python можно отложить, однако не стоит забывать, что язык уже активно используется в вашем круге и может понадобиться в ближайшем будущем.
-
Мастерство инструментов машинного обучения: У вас ограниченное время для подготовки к интервью. Это значит, что стоит выбирать инструмент, который вы сможете освоить быстрее и с наибольшей пользой для собеседования.
Оценка языков
R
-
Преимущества:
- Сильный фокус на статистике и анализе данных.
- Наличие пакетов, таких как Tidymodels и mlr3, которые предлагают удобные функции для работы с моделями машинного обучения.
- Хорошая поддержка визуализации данных через ggplot2 и другие библиотеки.
-
Недостатки:
- Ограниченная поддержка в области глубокого обучения и более сложных моделей по сравнению с Python.
- Недостаток в производительности и памяти для работы с большими объемами данных.
Python
-
Преимущества:
- Более широкая поддержка сообществом для новых библиотек и инструментов в области машинного обучения и глубокого обучения (например, TensorFlow, PyTorch, scikit-learn).
- Лучшая производительность и работа с графическими процессорами.
- Широкий спектр применения: от исследований до производства и разработки.
-
Недостатки:
- Для некоторых статистических методов может потребоваться больше времени на изучение и реализацию.
Рекомендации
-
Работа с R:
- Используйте пакеты, такие как Tidymodels и mlr3, для круглосуточного освоения методик работы в машинном обучении. Они обеспечивают современный подход к моделированию и могут быть достаточно мощными в контексте ваших задач.
- Для подготовки к интервью сосредоточьтесь на реализации типичных моделей машинного обучения (регрессия, классификация) и их интерпретации.
-
Параллельное изучение Python:
- Начните с основ синтаксиса и функциональности Python. Используйте онлайн-курсы, такие как Coursera или edX, чтобы изучить библиотеки машинного обучения, например, scikit-learn.
- Уделите внимание практическим примерам. Даже базовое понимание Python и его библиотек поможет вам в общении с командами, использующими этот язык.
Выводы
Если у вас есть ограниченное время до собеседования, рекомендуется сосредоточиться на R и сопутствующих ему библиотек для машинного обучения. Однако выделите немного времени на ознакомление с Python. Это даст вам важные компетенции, которые вам, вероятно, понадобятся в будущем. Возможен ли переход к Python и вхождение в его экосистему за пару недель? Да, это возможно, но только на базовом уровне. Полное овладение этим языком потребует больше времени и практики.
Ваши предпочтения и план карьерного роста должны также повлиять на ваше решение. Если вы ожидаете углубленного вовлечения в машинное обучение и работу в командах, использующих Python, стоит начать изучение этого языка уже сейчас, прикладывая усилия к R.