Openbravo-rus.ru

Образование по русски
0 просмотров
Рейтинг статьи
1 звезда2 звезды3 звезды4 звезды5 звезд
Загрузка...

Языки машинного обучения

Топ-5 языков для машинного обучения

Существует великое множество языков программирования, однако не все они подходят для машинного обучения (МО). Портал Techopedia рассказывает о наиболее подходящих языках, их преимуществах и недостатках.

Специалист по вычислительной техники Стэнфордского университета Эндрю Нгом дал МО следующее определение: «наука, которая работает над тем, как научить компьютеры функционировать без явного программирования». Предпосылки к рождению науки появились в 1950-х, однако вплоть до начало 2000-х они носили лишь теоретический характер. Настоящий прорыв произошел десятилетие назад, когда МО стало катализатором развития нескольких прорывных технологий, особенно это касается искусственного интеллекта. МО можно разбить на несколько категорий, включая контролируемое (supervised), неконтролируемое (unsupervised), полууправляемое (semi-supervised ) и обучение с подкреплением (reinforcement learning).

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

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

Python. Это высокоуровневый язык программирования, который имеет множество различных способов применений, включая науку о данных и внутреннюю веб-разработку. Он был создан Python Foundation в начале 1990-х и является мощным инструментом для анализа данных, широко используется в технологии больших данных. Особый статус ему придает многочисленное сообщество разработчиков МО, которое в основном сосредоточено на быстрорастущем ИИ-направлении.

Благодаря активному сообществу для Python появилось множество готовых библиотек МО. Этот язык — платформенно независимый, поэтому его можно адаптировать практически к любой операционной системе. Еще одно преимущество Python связано с его открытостью — он построен на базе технологий Open Source, поэтому разработчики могут получить доступ к любому стеку языка.

Что касается минусов Python, то поскольку это динамически типизированный язык, работа с ним в среде МО может вызывать проблемы. Одной из них является сложность отслеживания ошибок в коде, что связано с разрастанием кодовой базы программы и, соответственно, с ее сложностью. В некоторых случаях (сложные проекты для крупных организаций) аудит кода может выливаться в значительные финансовые затраты, отнимать много времени и сказываться на продуктивности проекта.

R. Этот язык программирования появился в начале 1990-х и является частью проекта GNU. Он широко применяется в анализе данных и, как правило, является целевым для решения общих задач МО, таких как регрессия, классификация и формирование дерева решений. R помимо прочего пользуется популярностью среди статистиков. Как и Python, R обладает открытым исходным кодом и широко известен как язык, пакеты для работы с которым относительно легко установить, настроить и применять.

R — платформенно независимый, он хорошо интегрируется с другими языками программирования. Наряду с анализом данных, R приспособлен для визуализации данных.

Несмотря на относительную простоту интеграции с другими инструментами, R обладает рядом особенностей, которые усложняют его изучение. К ним, например, можно отнести нетрадиционные структуры данных и индексирование (которое начинается с 1 вместо 0).

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

JavaScript. Этот язык появился в середине 1990-х как инструмент для улучшения практики веб-разработки и является одним из наиболее востребованных в этой области. JavaScript — высокоуровневый и динамически типизированный язык, гибкий и мультипарадигмальный. Применение языка в МО получило ограниченное применение, но, тем не менее, такие известные проекты, как Google Tensorflow.js, основаны на JavaScript.

Что касается плюсов JavaScript в области МО, то он открывает возможности проще вступить на неизведанную тропу для веб-разработчиков и разработчиков приложений, которые в значительной степени уже хорошо с ним знакомы. Однако нынешняя JavaScript-экосистема для МО все еще выглядит незрелой, поэтому поддержка этого типа разработки в настоящее время ограничена. Помимо этого ей недостает функций для работы с данными, которые в таких языках, как R и Python, присутствуют по умолчанию.

C++. Это самый старый среди наиболее распространенных на сегодняшний день языков программирования. Он был создан в недрах Bell Labs в начале 1980-х как научно-исследовательский проект, направленный на расширение возможностей языка Си. Обладая возможностями одновременно как низкоуровневого, так и высокоуровневого языка программирования, в контексте МО C++ обеспечивает более высокий уровень контроля и эффективности, чем другие языки программирования.

Гибкость языка хорошо подходит для ресурсоемких приложений, и подмножество программ МО здесь — не исключение. Учитывая, что C++ — статически типизированный язык, он может выполнять задачи с относительно высокой скоростью.

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

Java. За созданием Java стоит Sun Microsystems. Появившийся в середине 1990-х, он изначально замышлялся как высокоуровневый и объектно-ориентированный язык программирования, который во многом напоминает по структуре C++. Обладая огромной популярностью, Java может похвастаться широким спектром алгоритмов, которые очень полезны для сообщества разработчиков софта МО. Во многом Java считается одним из самых безопасных языков программирования благодаря использованию байт-кода и песочниц.

Его можно обозначить как удачную инкарнацию C++ (Java обладает большинством функционала, заложенным в C++), которая лишена недостатков последнего — проблем с безопасностью кодовой базы и сложностью компиляции.

Несмотря на все свои преимущества, Java имеет репутацию более медленного языка, чем многие другие языки программирования и в том числе C++. Кроме того, начиная с 2019 г. для написания определенных бизнес-приложений на Java требуется коммерческое лицензирование, что выльется в дополнительные расходы для предприятий.

Выводы

Python — самый популярный из всех языков программирования, применяемых в МО. Тем не менее, сбрасывать со счетов JavaScript и ряд некоторых других языков, может быть непредусмотрительно. Это связано с тем, что со временем их популярность будет расти, отражая изменения бизнес-ландшафта. Что касается тенденций программирования, то можно с уверенностью сказать, что в ближайшие несколько лет написание кода останется востребованной функцией, однако оно станет менее ориентированным на код и больше на функционал, поскольку машины сами научатся писать код.

R или Python для машинного обучения

Каждый эксперт по аналитическим данным задает себе вопрос, какой язык программирования выбрать R или Python, — пишут TI? Для поиска лучшего ответа на этот вопрос в большинстве случаев используется наиболее популярный поисковик Google. Не находя подходящих ответов, потенциальные кандидаты так и не становятся экспертами по технологиям машинного обучения или по аналитическим данным. В данной статье предпринята попытка объяснить специфику языков R и Python для их использования в разработке технологий машинного обучения.

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

Читать еще:  Обучение в инстаграм

В развитии библиотек машинного обучения лидерские позиции занимают такие языки программирования как R и Python. Многие эксперты и аналитики тратят время на выбор необходимого языка. Какой же язык программирования более предпочтителен для целей машинного обучения?

В чем сходство R и Python

  • Оба языка R и Python являются языками программирования с открытым исходным кодом. Огромное число членов сообщества программистов внесло вклад в разработку документации и в развитие данных языков.
  • Языки могут быть использованы для анализа данных, аналитики и в проектах машинного обучения.
  • Оба имеют продвинутые инструменты для выполнения проектов в сфере науки о данных.
  • Оплата труда экспертов по аналитическим данным, предпочитающих работать в R и Python, практически одинакова.
  • Текущие версии Python и R x.x

R и Python – борьба конкурентов

Исторический экскурс:

  • В 1991 году Guido Van Rossum, вдохновленный разработками языков C, Modula-3 и ABC, предложил новый язык программирования — Python.
  • В 1995 году Ross Ihaka и Robert Gentleman создали язык R, который разрабатывался по аналогии с языком программирования S.
  • Цель разработки Python – создание программных продуктов, упрощение процесса разработки и обеспечение читаемости кода.
  • Тогда как язык R разрабатывался в основном для проведения дружественного к пользователю анализа данных и для решения сложных статистических задач. Это язык, главным образом, статистической ориентированности.

Легкость обучения:

  • Благодаря читаемости кода, языку Python легко научиться. Это дружественный для начинающих программистов язык, которому можно научиться, не имея предыдущего опыта в программировании.
  • Язык R труден, но, чем дольше использовать этот язык в программировании, тем легче идет обучение и тем выше его результативность в решении сложных статистических формул. Для опытных программистов язык R – это опция go to.

Сообщества:

  • Python имеет поддержку различных сообществ, члены которых занимаются развитием языка для перспективных приложений. Программисты и разработчики являются, подобно членам StackOverflow, активными участниками сообщества Рython.
  • Язык R также поддерживается членами разнообразных сообществ через листы рассылки, документацию о вкладе пользователей и др. Большинство статистиков, исследователей и экспертов по аналитическим данным принимают активное участие в развитии языка.

Гибкость:

  • Python – это язык, акцентирующий внимание на продуктивности, поэтому он достаточно гибок при разработке различных приложений. Для разработки крупномасштабных приложений Python содержит разные модули и библиотеки.
  • Язык R также гибок в разработке сложных формул, при проведении статистических тестов, визуализации данных и др. Включает разнообразные и готовые к использованию пакеты.

Применение:

  • Python является лидером в разработке приложений. Он используется для поддержки при развитии сайтов и разработке игр, в науке о данных.
  • Язык R, главным образом, используется при разработке проектов в области анализа данных, которые сфокусированы на статистике и визуализации.

Оба языка – R и Python – имеют преимущества и недостатки. В большинстве случаев, это специфично-центричные языки, поскольку R сфокусирован на статистике и визуализации, а Рython – на простоте в разработке любого приложения.

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

10 лучших языков программирования для машинного обучения

В январе 2019 года сервис для хостинга ИТ-проектов и их совместного развития GitHub опубликовал рейтинг самых популярных языков программирования, используемых для машинного обучения (МО). Список составлен на основе количества репозиториев, авторы которых указывают, что в их приложениях используются МО-алгоритмы.

Самым популярным языком программирования среди разработчиков МО-программ в GitHub назвали Python во многом за набор предварительно настроенных инструментов для внедрения МО-моделей и алгоритмов. Благодаря этому программисты могут задействовать Python для реализации машинного обучения без глубоких познаний в нем и создания, например, чат-ботов с нуля.

Это стало возможным после появления отлично документированной библиотеки Scikit-Learn, в которой предусмотрено большое количество алгоритмов машинного обучения. Также отмечается присутствие библиотеки ChatterBot, предназначенной для обработки речи и обучения на наборах данных в формате диалогов.

C++ занял второе место среди языков программирования, применяемых пользователями GitHub для машинного обучения. Высокая позиция обусловлена созданием МО-библиотеки Google TensorFlow , в которой акцент сделан на нейросетях . Хотя основная часть разработчиков и исследователей, которые используют TensorFlow, работают в Python, иногда бывает необходимо отказаться от этой схемы. Например, когда необходимо использовать обученную модель в мобильном приложении или роботе .

Кроме того, популярность C++ на GitHub обусловлена развитием распределенной высокопроизводительной платформы для градиентного бустинга Microsoft LightGBM (повышает скорость и эффективность обучения МО-модели) и библиотеки Turi Create (упрощает разработку пользовательских моделей машинного обучения для начинающих разработчиков).

Тройку лидеров в рейтинге GitHub замкнул JavaScript. У него есть WYSIWYG-редактор, который позволяет создавать модели машинного обучения путем простого перетаскивания объектов. Кроме того, на пользу JavaScript в рейтинге сыграл проект ml5.js, призванный сделать машинное обучение пригодным для использования художниками и студентами нетехнических специальностей, предлагая доступ к алгоритмам и моделям машинного обучения в браузере.

На Java создан такой популярный проект, как Smile (Statistical Machine Intelligence and Learning Engine). Это быстрая комплексная система, предназначенная для реализации машинного обучения, НЛП, линейной алгебры, графа, интерполяции и визуализации в Java и Scala.

Еще одним популярным репозиторием на GitHub, в котором код написан на Java, является H20. Эта библиотека машинного обучения предназначена как для локальных вычислений, так и с использованием кластеров, создаваемых непосредственно средствами H2O или же работая на кластере Spark и Hadoop .

Одним из самых популярных МО-проектов, написанных на C#, на GitHub является ML Agents. Этот открытый плагин для игрового движка Unity, который позволяет играм и моделированным пространствам выступать в качестве сред для обучения интеллектуальных агентов.

Здесь наиболее популярными проектами являются MachineLearning.jl, MLKernels.jl и LightML.jl.

У этого языка программирования стоит отметить скрипты Dl-machine, предназначенные для настройки графического процессора для вычислений с использованием CUDA с библиотеками для глубокого обучения.

Язык программирования R популярен в МО-проектах благодаря большому сообществу и библиотек для анализа данных.

TypeScript — это надмножество JavaScript, то есть, любой код на JS является правильным с точки зрения TypeScript. Однако TypeScript обладает некоторыми дополнительными возможностями, которые не входят в JavaScript

В GitHub есть несколько репозиториев, способствующих популяризации Scala. Среди них — Microsoft Machine Learning for Apache Spark. [1]

Алгоритмы машинного обучения простым языком. Часть 1

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

В этой статье я поделюсь тем, как я рассказал бы об этих алгоритмах своей бабушке. В некоторых объяснениях я зайду довольно глубоко, в некоторых лишь пройдусь поверхностно по алгоритму. Надеюсь, что всё из этого будет понятно и полезно тем, кто никогда в жизни не занимался анализом данных. Рассмотрим три темы:

  • Градиентный спуск и линия наилучшего соответствия.
  • Линейная регрессия (включая регуляризацию).
  • Логистическая регрессия.

Прежде всего, давайте разберёмся, в чём разница между алгоритмом и моделью. Хорошее объяснение есть на Quora:

Модель — как автомат с едой, который получает что-то за вход (деньги) и выдаёт какие-то выходные значения (например, газировку)… Алгоритм — это то, как обучается модель принимать решение в зависимости от входных данных. Например, алгоритм на основе ценности денег, которыми вы расплатились в автомате, и стоимости выбранного продукта будет определять, достаточно ли денег для покупки и какую сдачу вы должны получить.

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

Читать еще:  Python 3 обучение

Градиентный спуск и линия наилучшего соответствия

(Хоть первое и не считается алгоритмом машинного обучения, его понимание важно для понимания того, как происходит оптимизация алгоритмов)

И вот объяснения:

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

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

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

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

Но как найти эту идеальную линию? Возможно, ты могла бы построить ее вручную, но это заняло бы кучу времени. Здесь и нужен градиентный спуск!

Мы ищем эту линию при помощи минимизации так называемой “остаточной суммы квадратов”. Это просто сумма квадратов разности между значением нашей линии и точек, то есть то, насколько точки далеки от линии. Мы получаем всё меньшие значения суммы квадратов, меняя положение линии на графике: нам надо поместить нашу линию куда угодно, главное, чтобы она была как можно ближе к большинству точек.

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

У градиентного спуска есть ещё множество параметров, например, размер шага (то есть насколько быстро мы хотим достичь низа скейтбордной рампы) или скорость обучения (то, в каком направлении мы хотим достичь низа). В общем, суть такова: градиентный спуск позволяет найти линию наилучшего соответствия при помощи минимизации расстояния между точками графика и линией. Линия же, в свою очередь, позволяет предсказывать необходимое.

Линейная регрессия

Всё просто: линейная регрессия — это то, как мы анализируем силу зависимости между одной переменной (“результирующая переменная”) и одной или несколькими другими переменными (“независимыми переменными”).

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

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

Ещё одна важная деталь: результирующая переменная или то, что меняется с изменением наших других переменных, непрерывна. Что это значит?

Скажем, мы хотим измерить зависимость количества осадков от высоты над уровнем моря в штате Нью-Йорк. Тогда наша результирующая переменная — дождливость, независимая переменная — высота над уровнем моря. Если будем использовать линейную регрессию, то результирующую переменную нужно сформулировать как, например, “сколько дюймов осадков выпадает за определённое количество времени”, а не “дождливо/не дождливо”. Наша результирующая переменная должна быть непрерывной — значит она может быть любым числом (даже дробным).

Самое классное в линейной регрессии — это то, что она может предсказывать, используя линию наилучшего соответствия! Если мы запустим линейную регрессию на нашей задаче, мы можем найти эту линию, как и в градиентном спуске. Затем мы можем применять обученную модель для того, чтобы узнать количество осадков на определённой высоте.

Какой лучший язык программирования для машинного обучения? — Машинное Обучение — 2020

Table of Contents:

Сайты вопросов и ответов и форумы по науке о данных снова и снова задают одни и те же вопросы: Я новичок в науке о данных, какой язык я должен изучать? Какой язык лучше подходит для машинного обучения?

Существует множество статей, в которых можно найти ответы на эти вопросы, основываясь на личном опыте или данных о предложениях работы. Тем не менее, в сфере машинного обучения гораздо больше активности, чем могут предложить предложения о работе на Западе, и мнения коллег, конечно, очень ценны, но часто противоречивы и, как таковые, могут сбить с толку новичков. Вместо этого мы обратились к нашим точным данным от 2000+ ученых и разработчиков машинного обучения, которые ответили на наше последнее исследование о том, какие языки они используют и над какими проектами они работают, а также о многих других интересных вещах об их действиях в области машинного обучения и обучения. Тогда, будучи самими специалистами по данным, мы не могли не запустить несколько моделей, чтобы увидеть, какие из них являются наиболее важными факторами, связанными с выбором языка. Мы сравнили 5 лучших языков, и результаты доказывают, что простого ответа на вопрос «какой язык?» Нет. Это зависит от того, что вы пытаетесь создать, каков ваш опыт и почему вы вообще занялись машинным обучением.

Какой язык машинного обучения наиболее популярен?

Во-первых, давайте посмотрим на общую популярность языков машинного обучения. Python возглавляет пакет: 57% ученых-данных и разработчиков машинного обучения используют его и 33% отдают предпочтение его для разработки. Неудивительно, учитывая всю эволюцию глубокого изучения Python-фреймворков за последние 2 года, включая выпуск TensorFlow и широкий выбор других библиотек. Python часто сравнивают с R, но они нигде не сопоставимы по популярности: R занимает четвертое место по общему использованию (31%) и пятое по приоритетности (5%). R на самом деле является языком с самым низким отношением приоритетов к использованию среди пяти, и только 17% разработчиков, использующих его, устанавливают его приоритеты. Это означает, что в большинстве случаев R является дополнительным языком, а не первым выбором. Такое же соотношение для Python составляет 58%, что является самым высоким показателем среди пяти языков, что является явным свидетельством того, что тенденции использования Python прямо противоположны тенденциям R. Не только Python является наиболее широко используемым языком, но также основной выбор для большинства его пользователей. C / C ++ занимает второе место после Python, как по использованию (44%), так и по приоритетам (19%). Java очень близко следует за C / C ++, в то время как JavaScript занимает пятое место в использовании, хотя с немного лучшей производительностью приоритетов, чем R (7%). Мы спросили наших респондентов о других языках, используемых в машинном обучении, включая обычных подозреваемых в Julia, Scala, Ruby, Octave, MATLAB и SAS, но все они упали ниже 5% отметки приоритетов и ниже 26% использования. Поэтому мы сосредоточили наше внимание на топ-5 языков.

Приоритет Python в приложениях, где нет Java.

Наши данные показывают, что наиболее решающим фактором при выборе языка для машинного обучения является тип проекта, над которым вы будете работать, — область применения. В нашем опросе мы спросили разработчиков о 17 различных областях применения, а также дали нашим респондентам возможность сказать нам, что они все еще изучают варианты, не активно работая над какой-либо областью. Здесь мы представляем три верхние и нижние три области для каждого языка: те, в которых разработчики отдают приоритет каждому языку больше всего и меньше всего.

Ученые машинного обучения, работающие над анализом настроений, отдают приоритет Python (44%) и R (11%) больше, а JavaScript (2%) и Java (15%) меньше, чем разработчики, работающие в других областях. Напротив, Java больше отдается приоритет тем, кто работает над сетевой безопасностью / кибератаками и обнаружением мошенничества, двумя областями, где Python имеет наименьший приоритет. Алгоритмы сетевой безопасности и обнаружения мошенничества создаются или используются в основном в крупных организациях, особенно в финансовых учреждениях, где Java является фаворитом большинства внутренних групп разработчиков. В областях, которые менее ориентированы на предприятие, таких как обработка естественного языка (NLP) и анализ настроений, разработчики выбирают Python, который предлагает более простой и быстрый способ создания высокопроизводительных алгоритмов благодаря обширной коллекции специализированных библиотек, которые поставляются с ним. ,

Читать еще:  Машинное обучение взаимодействие со средой

Искусственный интеллект (ИИ) в играх (29%) и локомоция роботов (27%) — это две области, где C / C ++ предпочитают больше всего, учитывая требуемый уровень контроля, высокую производительность и эффективность. Здесь естественным выбором является язык программирования более низкого уровня, такой как C / C ++, который поставляется с очень сложными библиотеками AI, а R, предназначенный для статистического анализа и визуализации, считается в основном нерелевантным. ИИ в играх (3%) и локомоция роботов (1%) — это две области, где R имеет наименьший приоритет, за которым следует распознавание речи, когда случай аналогичен.

Помимо анализа настроений, R также имеет относительно высокий приоритет — по сравнению с другими областями применения — в биоинженерии и биоинформатике (11%), где Java и JavaScript не являются предпочтительными. Учитывая давнее использование R в биомедицинской статистике, как внутри, так и за ее пределами, неудивительно, что это одна из областей, в которой он используется чаще всего. Наконец, наши данные показывают, что разработчики, плохо знакомые с наукой о данных и машинном обучении, которые все еще изучают варианты, отдают приоритет JavaScript больше, чем другим (11%), и Java меньше, чем другим (13%). Во многих случаях это разработчики, которые экспериментируют с машинным обучением с помощью стороннего API машинного обучения в веб-приложении.

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

Во-вторых, в области прикладных программ профессиональный опыт также играет ключевую роль в выборе языка машинного обучения: разработчики, которые ставят в пятерку приоритетных языков больше, чем другие, имеют пять разных профессий. Python является наиболее приоритетным среди тех, для кого наука о данных является первой профессией или областью обучения (38%). Это указывает на то, что Python к настоящему времени стал неотъемлемой частью науки о данных — он превратился в родной язык ученых-данных. То же самое нельзя сказать о R, который в первую очередь ставится на первое место аналитиками данных и статистиками (14%), поскольку язык был изначально создан для них, заменив S.

Разработчики интерфейсных веб-сайтов расширяют использование JavaScript для машинного обучения, 16% отдают ему приоритетное значение для этой цели, оставаясь в стороне от громоздкого C / C ++ (8%). С противоположной стороны — инженеры аппаратного и электронного оборудования, которые предпочитают C / C ++ больше других, избегая JavaScript, Java и R больше других. Учитывая их вклад в освоение C / C ++ в их инженерной жизни, не имело бы смысла соглашаться на язык, который поставил бы под угрозу их уровень контроля над своим приложением. Инженеры аппаратного обеспечения встраиваемых вычислений также, скорее всего, будут работать над проектами машинного обучения, близкими к оборудованию, такими как проекты по граничной аналитике IoT, где аппаратное обеспечение может форсировать выбор языка. Наши данные подтверждают, что их участие значительно выше среднего в промышленном обслуживании, классификации изображений и проектах передвижения роботов среди других.

Что касается Java, то это разработчики интерфейсных приложений для настольных компьютеров, которые отдают приоритет ему больше, чем другим (21%), что также соответствует его использованию в основном в приложениях, ориентированных на предприятия, как отмечалось ранее. Корпоративные разработчики склонны использовать Java во всех проектах, включая машинное обучение. Директива компании в этом случае также очевидна из третьего фактора, который тесно связан с установкой приоритетов языка — причиной, по которой стоит заняться машинным обучением. Java отдается первоочередное внимание (27%) разработчикам, которые занялись машинным обучением, потому что их начальник или компания попросили их об этом.Это наименее предпочтительный вариант (14%) для тех, кто вышел на поле только потому, что им было любопытно узнать, о чем идет речь, — Java — это не тот язык, который вы обычно изучаете просто для удовольствия! Именно Python ставит перед любопытными более высокий приоритет, чем другие (38%), что является еще одним свидетельством того, что Python признан основным языком, с которым нужно экспериментировать, чтобы выяснить, что такое машинное обучение.

Кажется, что некоторые университеты, преподающие курсы по науке о данных, все еще должны догнать это понятие. Разработчики, которые говорят, что они начали заниматься машинным обучением, потому что наука о данных является / была частью их университетского образования, с наименьшей вероятностью отдают приоритет Python (26%) и с наибольшей вероятностью отдают приоритет R (7%) по сравнению с другими. Очевидно, что в статистических кругах академических кругов — там, где они родились, по-прежнему наблюдается положительный уклон в сторону R, но по мере того, как наука о данных и машинное обучение все больше тяготеют к вычислениям, эта тенденция исчезает. Те, кто имеет высшее образование в области наук о данных, могут предпочесть это больше, чем другие, но в абсолютном выражении это всего лишь небольшая часть этой группы, которая пойдет в первую очередь на R.

C / C ++ больше отдается приоритет тем, кто хочет усовершенствовать свои существующие приложения / проекты с помощью машинного обучения (20%), и меньше тем, кто надеется создавать новые высококонкурентные приложения на основе машинного обучения (14%). Этот шаблон снова указывает на то, что C / C ++ в основном используется в инженерных проектах и ​​приложениях IoT или AR / VR, скорее всего, уже написанных на C / C ++, к которым добавляется функциональность, поддерживаемая ML. При создании нового приложения с нуля, особенно с использованием NLP для чат-ботов, нет особой причины использовать C / C ++, хотя есть множество причин выбрать языки, которые предлагают узкоспециализированные библиотеки, такие как Python. Эти языки могут быстрее и проще создавать высокопроизводительные алгоритмы, которые могут предложить конкурентное преимущество в новых ML-ориентированных приложениях.

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

Не существует такого понятия, как «лучший язык для машинного обучения».

Наши данные показывают, что популярность не является хорошим критерием при выборе языка программирования для машинного обучения и науки о данных. Не существует такого понятия, как «лучший язык для машинного обучения», и все зависит от того, что вы хотите построить, откуда вы родом и почему вы увлеклись машинным обучением. В большинстве случаев разработчики переносят язык, который они уже использовали, в машинное обучение, особенно если они хотят использовать его в проектах, смежных с их предыдущей работой, таких как инженерные проекты для разработчиков на C / C ++ или веб-визуализации для разработчиков JavaScript.

Если вы впервые знакомитесь с программированием через машинное обучение, то ваши коллеги в нашем опросе указывают на Python как лучший вариант, учитывая его богатство библиотек и простоту использования. Если, с другой стороны, вы мечтаете о работе в корпоративной среде, будьте готовы использовать Java. Как бы то ни было, это захватывающее время для машинного обучения, и путешествие гарантированно будет умопомрачительным, независимо от языка, который вы выберете. Наслаждаться поездкой!

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

Ссылка на основную публикацию
Adblock
detector
×
×