Рубрики
Без рубрики

Предпочтительные инструменты для машинного обучения – Python – MatLab – R

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

Автор оригинала: Mohammed Innat.

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

“Что лучше” ; вопросы обычно сильно зависят от контекста. И это не исключение.

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

Если кто-то захочет заняться машинным обучением, чтобы сделать что-то более конкретное, будут различия. Включает ли ваша задача машинного обучения изображения? Используйте Matlab или Python , потому что вы также можете использовать обработку изображений. Если кто-то хочет углубиться в теорию машинного обучения и использовать причудливые статистические методы для любого нового алгоритма? Тогда лучше выбрать R

Тем не менее, всегда хорошо иметь больше оружия в нашем арсенале.

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

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

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

Если учащиеся из undergrand , хорошо начать с Python – так как он может получить преимущества языка общего назначения. Если из исследования, хорошо начать с R и исследовать Октаву . Позже , когда Matlab получит доступ, учащийся также сможет использовать свои навыки/| Octave . А для сотрудников лучше всего освоить как Python , так и R . Потому что , чтобы создать продукт в корпоративном сценарии, ему может потребоваться взаимодействовать с несколькими сущностями, которые могут говорить на разных языках. И снова для технарей-энтузиастов, которые любят исследовать или изучать новые вещи, узнайте Джулия – убийственной особенностью является скорость выполнения.

Тем не менее , давайте подробно рассмотрим каждый из них-

ПИТОН

Python – это тип языка программирования. Наиболее распространенной реализацией этого языка программирования является реализация в C (также известная как CPython). Python не только является языком программирования, но и состоит из большой стандартной библиотеки. Эта библиотека структурирована таким образом, чтобы сосредоточиться на общем программировании и содержать модули для конкретных ОС, потоков, сетей и баз данных.

MATLAB

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

R

R-это программное обеспечение, предназначенное для выполнения статистического анализа и вывода графики. R-это бесплатное статистическое программное обеспечение с открытым исходным кодом. Коллеги из Оклендского университета в Новой Зеландии Роберт Джентльмен и Росс Ихака создали программное обеспечение в 1993 году, потому что они оба видели необходимость в лучшей программной среде для своих занятий. R, безусловно, перерос свои истоки и теперь может похвастаться более чем двумя миллионами пользователей, согласно веб-сайту сообщества R (“Что такое R?”, 2014).

Давайте вкратце поговорим о преимуществах и недостатках каждого из них.

Преимущества Matlab

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

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

Недостатки Matlab

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

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

Преимущества R

R – это статистический пакет, который пытается решить проблемы статистики в природе. В R есть много готовых программ, которые пытаются решить различные проблемы аналитики. Однако MatLab используется для обучения различным аспектам математики, таким как исчисление или построение графиков уравнений. В области аналитики R предпочтительнее, чем MatLab, когда дело доходит до выполнения статистического анализа.

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

Недостатки укоренения

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

Преимущества Python

Язык Python имеет разнообразное применение в компаниях по разработке программного обеспечения, таких как игры, веб-фреймворки и приложения, разработка языков, прототипирование, приложения для графического дизайна и т.д.

– Удобный и простой в освоении – Поддержка кросс-платформы – Обширная поддержка сообщества – Очень мощный – Открытый исходный код

– Индекс пакетов Python ( PyPI ) – содержит тысячи сторонних модулей для python.

Приложения

  • Разработка веб-сайтов и Интернета
  • Доступ к базе данных
  • Графические интерфейсы рабочих столов
  • Научные и числовые
  • Образование
  • Сетевое программирование
  • Разработка программного обеспечения и игр

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

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

Функция интеграции Python интегрирует интеграцию корпоративных приложений, которая упрощает разработку веб-служб путем вызова компонентов COM или CORBA. Он обладает мощными возможностями управления, поскольку он вызывает непосредственно через C, C++ или Java через Jython. Python также обрабатывает XML и другие языки разметки, поскольку он может работать во всех современных операционных системах с помощью одного и того же байтового кода.

Повышение производительности программиста Язык имеет обширные библиотеки поддержки и чистые объектно-ориентированные проекты, которые увеличивают производительность программиста в два-десять раз при использовании таких языков, как Java, VB, Perl, C, C++ и C#.

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

Недостатки Python

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

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

Трудности в использовании других языков Любители Python настолько привыкли к его функциям и обширным библиотекам, что сталкиваются с проблемами при изучении или работе на других языках программирования. Эксперты Python могут рассматривать объявление приведенных “значений” или переменных “типов”, синтаксические требования добавления фигурных скобок или точек с запятой как обременительную задачу.

Слабый в мобильных вычислениях Python появился на многих настольных и серверных платформах, но он рассматривается как слабый язык для мобильных вычислений. Именно по этой причине в него встроено очень мало мобильных приложений, таких как Carbonnelle.

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

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

Слаборазвитые уровни доступа к базам данных По сравнению с популярными технологиями, такими как JDBC и ODBC, уровень доступа к базам данных Python оказывается немного слаборазвитым и примитивным. Однако он не может быть применен на предприятиях, которые нуждаются в плавном взаимодействии сложных устаревших данных.

Давайте составим небольшую комбинацию из них – следование может быть невероятно полезным –

MATLAB

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

Питон

– Очень фрагментированный, но всеобъемлющий стек научных вычислений – Панды, scikit.learn, numpy, scipy, ipython и matplotlib-мои наиболее используемые научные вычислительные библиотеки – IPython notebook делает хороший интерактивный инструмент анализа данных – Все преимущества языка программирования общего назначения – К сожалению, медленно, если вы не перейдете на C – Часть стека научных вычислений все еще застряла в Python 2.7 – Очень хорошо подходит для проблем, которые не являются простой матрицей функций, между такими инструментами, как pandas и nltk – Невероятная экосистема с открытым исходным кодом

R

– Как правило, если он оказывается интересным для статистиков, он был реализован в R – Высококачественных библиотеках с хорошим акцентом на модульное тестирование – Хороший интерактивный инструмент анализа данных с помощью таких вещей, как RStudio – Язык в целом медленный и требует много памяти-Сам язык вызывает у меня желание выколоть себе глаза – Процесс предоставления библиотек является излишне ручным и, как правило, занозой в заднице – Невероятный рост Python – Рекомендация для прикрепленных блогов

Python-самый популярный язык в области искусственного интеллекта.

Почему? Потому что –

Python поставляется с огромным количеством библиотек. Многие библиотеки предназначены для искусственного интеллекта и машинного обучения. Некоторые из библиотек-Tensorflow (библиотека нейронных сетей высокого уровня), scikit-learn (для интеллектуального анализа данных, анализа данных и машинного обучения), pylearn2 (более гибкая, чем scikit-learn) и т. Д. Список продолжается и никогда не заканчивается.

Для других языков студентам и исследователям необходимо познакомиться с языком, прежде чем переходить на ML или AI с этим языком. Это не относится к python. Даже программист с очень базовыми знаниями может легко справиться с python.

Кроме того, время, которое кто-то тратит на написание и отладку кода на python, намного меньше по сравнению с C, C++ или Java. Это именно то, чего хотят студенты ИИ и мл. Они не хотят тратить время на отладку кода для синтаксических ошибок, они хотят тратить больше времени на свои алгоритмы и эвристику, связанные с ИИ и ML. Не только библиотеки, но и их учебные пособия, обработка интерфейсов легко доступны в Интернете. Люди создают свои собственные библиотеки и загружают их на GitHub или в другое место для использования другими

Python имеет солидные претензии на то, чтобы быть самым быстрорастущим основным языком программирования . Рекомендуется проверить новаторскую статистику по невероятному росту python и почему python растет так быстро из-за переполнения стека.

Преимущества Python перед Matlab

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

2. В то время как большинство языков программирования, включая Python, используют индексацию на основе нуля, Matlab использует индексацию на основе одного, что делает перевод более запутанным для пользователей.

3. Объектно-ориентированное программирование (ООП) в Python-это простая гибкость, в то время как схема ООП в Matlab сложна и запутанна

4. Python свободен и открыт – В то время как Python-это программирование с открытым исходным кодом, большая часть Matlab закрыта – Разработчики Python поощряют пользователей вводить предложения для программного обеспечения, в то время как разработчики Matlab не предлагают такого взаимодействия

5. Нет аналога Matlab для оператора импорта Python 6. Python предлагает более широкий выбор графических пакетов и наборов инструментов

В исследовании Стива Хэнли о тесте скорости между Python и MATLAB для анализа вибрации

Python против R

Некоторые действительно важные различия, которые следует учитывать, когда кто-то выбирает R или Python друг над другом:

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

– Production : Реальная разница между Python и R заключается в готовности к производству. Python, как таковой, является полноценным языком программирования, и многие организации используют его в своих производственных системах. R-это программное обеспечение для статистического программирования, пользующееся популярностью у многих академических кругов, и в связи с ростом науки о данных, наличием библиотек и открытым исходным кодом отрасль начала использовать R. Многие из этих организаций имеют свои производственные системы либо на Java, C++, C#, Python и т.д. Таким образом, в идеале они хотели бы иметь систему прогнозирования на одном языке, чтобы уменьшить задержки и проблемы с обслуживанием. Python 2, R 1.

– Библиотеки : Оба языка имеют огромные и надежные библиотеки. R имеет более 5000 библиотек, обслуживающих многие домены, в то время как Python имеет несколько невероятных пакетов, таких как Pandas, NumPy, SciPy, Scikit Learn, Matplotlib. Python 3, R 2.

– Разработка : Оба языка являются интерпретируемыми языками. Многие говорят, что python легко выучить, это почти то же самое, что читать по-английски (проще говоря), но R требует больше первоначальных усилий для изучения. Кроме того, у обоих из них есть хорошие IDE (Spyder etc для Python и RStudio для R). Python 4, R 2.

– Скорость : У программного обеспечения R изначально были проблемы с большими вычислениями (скажем, с умножением матриц nxn). Но эта проблема решается с введением R компанией Revolution Analytics. Они переписали интенсивные вычислительные операции на языке Си, который невероятно быстр. Python, будучи языком высокого уровня, относительно медленный. Python 4, R 3.

– Визуализация : В науке о данных мы часто склонны отображать данные, чтобы продемонстрировать пользователям шаблоны. Поэтому визуализация становится важным критерием при выборе программного обеспечения, и R полностью убивает Python в этом отношении. Спасибо Хэдли Уикхему за невероятный пакет ggplot2. Р выигрывает, опустив руки. Python 4, R 4.

– Работа с большими данными : Одним из ограничений R является хранение данных в системной памяти (ОЗУ). Таким образом, объем оперативной памяти становится ограничением при обработке больших данных. Python работает хорошо, но я бы сказал, что, поскольку и R, и Python имеют разъемы HDFS, использование инфраструктуры Hadoop даст существенное повышение производительности. Итак, Python 5, R 5.

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

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

Использование Python

Python набирает обороты как язык программирования для начинающих пользователей. Высокорейтинговые кафедры компьютерных наук в Массачусетском технологическом институте и Калифорнийском университете в Беркли используют Python для обучения своих начинающих студентов языку программирования. Все три крупнейших поставщика массовых открытых онлайн-курсов (MOOC) (edX, Coursera и Udacity) используют Python в качестве языка программирования для своих начальных курсов по программированию. Множество профессоров в других дисциплинах теперь используют необходимость для начинающих студентов понимать Python и его ключевые особенности.

Вывод

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

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

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

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

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

С уважением Мир пустоты

.

Свяжитесь со Мной: