Я только начинаю разрабатывать приложение машинного обучения для академических целей. В настоящее время я использую R и тренируюсь в этом. Тем не менее, во многих местах я видел людей, использующих Python .
Что люди используют в научных кругах и промышленности, и какова рекомендация?
machine-learning
r
python
Peter Mortensen
источник
источник
Ответы:
Некоторые действительно важные различия, которые следует учитывать при выборе R или Python друг над другом:
Итак, оба языка одинаково хороши. Поэтому, в зависимости от вашего домена и места работы, вы должны правильно выбрать правильный язык. Мир технологий обычно предпочитает использовать один язык. Бизнес-пользователи (маркетинговая аналитика, розничная аналитика) обычно используют статистические языки программирования, такие как R, поскольку они часто делают быстрые прототипы и создают визуализации (что быстрее в R, чем в Python).
источник
Нет ничего лучше "python лучше" или "R намного лучше, чем x".
Единственный факт, который я знаю, - это то, что в промышленности многие люди придерживаются Python, потому что это то, что они узнали в университете. Сообщество Python действительно активно и имеет несколько отличных платформ для ML и интеллектуального анализа данных и т. Д.
Но, честно говоря, если у вас есть хороший программист на c, он может делать то же самое, что и люди на python или r, если у вас есть хороший программист на java, он также может делать (почти) все на java.
Так что просто придерживайтесь языка, который вам удобен.
источник
Некоторые дополнительные мысли.
Язык программирования «per se» - это всего лишь инструмент. Все языки были разработаны, чтобы сделать некоторые типы конструкций более легкими для построения, чем другие. А знание и владение языком программирования важнее и эффективнее, чем возможности этого языка по сравнению с другими.
Насколько я вижу, есть два аспекта этого вопроса. Первое измерение - это способность быстро исследовать, создавать концепции или модели, имея в конечном итоге достаточно инструментов для изучения происходящего (например, статистические тесты, графики, инструменты измерения и т. Д.). Этот вид деятельности обычно предпочитают исследователи и исследователи данных (мне всегда интересно, что это значит, но я использую этот термин для его свободного определения). Они склонны полагаться на хорошо известные и проверенные инструменты, которые можно использовать для доказательств или аргументов.
Второе измерение - это способность расширять, изменять, улучшать или даже создавать инструменты, алгоритмы или модели. Для этого вам нужен правильный язык программирования. Примерно все они одинаковы. Если вы работаете в компании, вы сильно зависите от инфраструктуры компании, внутренняя культура и ваш выбор значительно уменьшаются. Кроме того, когда вы хотите реализовать алгоритм для производственного использования, вы должны доверять реализации. А внедрение на другом языке, которым вы не владеете, не очень вам поможет.
Я склоняюсь к первому виду деятельности в экосистеме R. У вас отличное сообщество, огромный набор инструментов, доказательство того, что эти инструменты работают, как и ожидалось. Кроме того, вы можете рассмотреть Python, Octave (чтобы назвать несколько), которые являются надежными кандидатами.
Для второго задания вы должны подумать раньше о том, что вы действительно хотите. Если вам нужны надежные готовые к работе инструменты, то C / C ++, Java, C # являются отличными кандидатами. Я считаю Python вторым гражданином в этой категории вместе со Scala и друзьями. Я не хочу начинать пламенную войну, это только мое мнение. Но после более чем 17-летнего опыта работы разработчиком я предпочитаю строгий контракт и мои знания, а не свободу делать то, о чем вы думаете (как это происходит со многими динамическими языками).
Лично я хочу узнать как можно больше. Я решил, что должен выбрать сложный путь, а значит самому все реализовать. Я использую R в качестве модели и вдохновения. Он имеет большие сокровища в библиотеках и богатый опыт. Однако R как язык программирования для меня - кошмар. Поэтому я решил использовать Java и не использовать дополнительную библиотеку. Это только из-за моего опыта, и ничего больше.
Если у вас есть время, лучшее, что вы можете сделать, это провести некоторое время со всеми этими вещами. Таким образом, вы заработаете для себя лучший ответ, подходящий для вас. Дейкстра однажды сказал, что инструменты влияют на то, как ты думаешь, поэтому желательно знать свои инструменты, прежде чем позволять им моделировать, как ты думаешь. Вы можете прочитать больше об этом в его знаменитой газете «Смиренный программист».
источник
Я бы добавил к тому, что другие говорили до сих пор. Нет единого ответа, что один язык лучше другого.
Сказав это, R имеет лучшее сообщество для исследования данных и обучения. Он имеет широкие возможности визуализации. Python, с другой стороны, стал лучше в обработке данных с момента появления панд. Время обучения и разработки в Python намного меньше по сравнению с R (R - язык низкого уровня).
Я думаю, что это в конечном итоге сводится к экосистеме, в которой вы находитесь, и личным предпочтениям. Для более подробной информации, вы можете посмотреть это сравнение здесь .
источник
Не существует языка «серебряной пули», который можно было бы использовать для решения каждой проблемы, связанной с данными. Выбор языка зависит от контекста проблемы, размера данных, и если вы работаете на рабочем месте, вы должны придерживаться того, что они используют.
Лично я использую R чаще, чем Python, из-за его библиотек визуализации и интерактивного стиля. Но если мне нужно больше производительности или структурированного кода, я определенно использую Python, поскольку он обладает некоторыми из лучших библиотек, такими как SciKit-Learn, numpy, scipy и т. Д. Я использую R и Python в своих проектах взаимозаменяемо.
Поэтому, если вы начинаете работу с данными, я предлагаю вам изучить оба, и это не сложно, поскольку Python также предоставляет интерфейс, аналогичный R с Pandas .
Если вам приходится иметь дело с гораздо большими наборами данных, вы не можете избежать эко-систем, построенных на Java (Hadoop, Pig, Hbase и т. Д.).
источник
Там нет "лучшего" языка. Я попробовал оба из них, и я доволен Python, поэтому я работаю только с Python. Хотя я все еще учусь, но до сих пор я не сталкивался с какими-либо препятствиями на Python. Хорошая вещь о Python - это то, что сообщество слишком хорошо, и вы можете легко получить помощь в Интернете. Кроме этого, я бы сказал, что вы должны использовать язык, который вам не нравится, который люди рекомендуют.
источник
По моему опыту, ответ зависит от проекта под рукой. Для чистого исследования я предпочитаю R по двум причинам: 1) большое разнообразие библиотек и 2) большая часть литературы по науке о данных включает образцы R.
Если проекту требуется интерактивный интерфейс для использования неспециалистами, я считаю, что R слишком ограничен. Блестящий - отличное начало, но он еще недостаточно гибок. В этих случаях я начну смотреть на перенос своей работы с R на Python или js.
источник
Проблема, на которую все остальные ответы не решаются, - это лицензирование .
Большинство из упомянутых замечательных библиотек R являются GPL (например, ggplot2 , data.table ). Это препятствует распространению вашего программного обеспечения в проприетарной форме.
Хотя многие виды использования этих библиотек не подразумевают распространение программного обеспечения (например, для обучения моделей в автономном режиме), GPL сама по себе может заманить компании к их использованию. По крайней мере, по моему опыту.
В области Python, с другой стороны, большинство библиотек имеют лицензии на распространение для бизнеса, такие как BSD или MIT.
В научных кругах вопросы лицензирования обычно не являются проблемой.
источник
Не так много, чтобы добавить к предоставленным комментариям. Единственное, может быть, это инфографика, сравнивающая R с Python для целей науки о данных http://blog.datacamp.com/r-or-python-for-data-analysis/
источник
Одна из реальных проблем, с которой я столкнулся в R, заключается в том, что разные пакеты совместимы с разными версиями .. довольно много пакетов R недоступно для последней версии R .. И R довольно часто выдает ошибку из-за того, что библиотека или пакет были написаны для более старых версия..
источник
Я не пробовал R (ну, немного, но недостаточно, чтобы сделать хорошее сравнение). Тем не менее, вот некоторые сильные стороны питонов:
element in a_list
,for element in sequence
,matrix_a * matrix_b
(для умножения матриц), ...источник
Я предпочитаю Python, а не R, потому что Python - это полноценный язык программирования, поэтому я могу заниматься задачами машинного обучения, такими как сбор данных с использованием HTTP-сервера, написанного на Python, выполнение сложных задач ML и публикация результатов в Интернете. Все это можно сделать в Python. На самом деле я обнаружил, что R сложнее в изучении, а отдача от изучения Python намного выше, потому что его можно использовать практически для любой задачи программирования.
источник
R: R - аналог с открытым исходным кодом. который традиционно используется в научных кругах и научных исследованиях. Благодаря своей природе открытого исходного кода, новейшие методы выпускаются быстро. Есть много документации, доступной через Интернет, и это очень рентабельный вариант. Python: С появлением в качестве языка сценариев с открытым исходным кодом, использование Python со временем возросло. Сегодня это спортивные библиотеки (numpy, scipy и matplotlib) и функции практически для любой статистической операции / построения модели, которую вы можете захотеть сделать. С момента появления панд она стала очень сильной в операциях со структурированными данными.
Код Python
Библиотека импорта
Импортируйте другие необходимые библиотеки, такие как pandas, numpy ...
из sklearn import linear_model
Загрузка поездов и тестовых наборов данных
Определите характеристику и переменную (и) ответа, а значения и значения должны быть числовыми и числовыми массивами
x_train = input_variables_values_training_datasets y_train = target_variables_values_training_datasets x_test = input_variables_values_test_datasets
Создать объект линейной регрессии
linear = linear_model.LinearRegression ()
Тренируй модель, используя тренировочные наборы и проверяй счет
linear.fit (x_train, y_train) linear.score (x_train, y_train)
Коэффициент уравнения и перехват
print ('Коэффициент: \ n', linear.coef_) print ('Перехват: \ n', linear.intercept_)
Прогнозировать выход
прогнозируемый = linear.predict (x_test) R код
Загрузка поездов и тестовых наборов данных
Определите характеристику и переменную (и) ответа, а значения и значения должны быть числовыми и числовыми массивами
x_train <- input_variables_values_training_datasets y_train <- target_variables_values_training_datasets x_test <- input_variables_values_test_datasets x <- cbind (x_train, y_train)
Тренируй модель, используя тренировочные наборы и проверяй счет
линейный <- lm (y_train ~., data = x) сводный (линейный)
Прогнозировать выход
прогнозируемый = прогноз (линейный, x_test)
источник
Я не думаю, что в Python есть графический интерфейс, который превращает его в SPSS и SAS. Играть с ними действительно весело.
источник
Я получил это изображение в посте с вопросом. Всякий раз, когда у меня возникает сомнение в использовании python или R, я смотрю на это, и это оказывается очень полезным.
источник