ML / Data Mining / Big Data: популярный язык для программирования и поддержки сообщества - PullRequest
1 голос
/ 21 июня 2011

Я не уверен, что этот вопрос правильный, но я прошу разрешить мои сомнения.

  • Для Machine Learning/Data Mining нам нужно узнать о данных, что означает, что вам нужно изучить Hadoop, который имеет реализацию в Java для MapReduce (поправьте меня, если я ошибаюсь),
  • Hadoop также предоставляет streaming api для поддержки других языков (например, python)
  • Большинство аспирантов / исследователей, которых я знаю, решают проблемы ML в python
  • мы видим вакансиидля hadoop and Java combination очень часто

Я заметил, что Java и Python (по моим наблюдениям) являются наиболее широко используемыми языками для этой области.

  • У меня вопрос, что такое most popular language для работы на этом домене.
  • Что factors включает в себя при выборе языка / фреймворка, который следует выбрать
  • Я знаю и Java, и Python, но всегда путаюсь:
    • начинаю ли я программировать на Java(because of hadoop implementation)
    • начинаю ли я программировать в Python(because its easier and quicker to write)

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

Ответы [ 5 ]

2 голосов
/ 22 июня 2011

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

Редактировать: Я только что прочитал действительно интересную строку на странице Википедии на R :

Согласно ежегодному исследованию Rexer's Data Miner в 2010 году, R стал инструмент интеллектуального анализа данных, используемый большим количеством майнеров (43%), чем любой другой.

1 голос
/ 25 июня 2011

R является отличным кандидатом для интеллектуального анализа данных (конечно) и машинного обучения.

(Обобщения, конечно.)

Java и Hadoop действительнозначимым в контексте серьезных данных и / или требований к масштабированию.Java дает вам библиотеки и и армию программистов.Hadoop предоставляет вам довольно безболезненное распространение и растущую базу знаний по отображению различных алгоритмов в платформу.

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

Тогда есть R. (Есть намного больше, но это степень моегознание / g /)

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

Тем не менее, можно подумать, что (~) функциональные языки (Scala, Clojure на JVM; Haskell и т. Д.) Вполне подойдут для манипулирования данными и работы с огромными наборами данных.

1 голос
/ 22 июня 2011

У меня нет опыта работы с Java и Hadoop, но я использовал Python и MATLAB для машинного обучения, и теперь я использую MATLAB чаще.На самом деле, важные факторы для моего случая следующие:

  • Почти все мои коллеги используют MATLAB и C ++, и очень немногие из них используют Python.Их использование на Python ограничено общими сценариями, а не конкретным машинным обучением.Поэтому, когда я использую Python, единственный способ получить помощь - это веб, и у нас возникают проблемы с совместным использованием кода в лаборатории.
  • IDE MATLAB и его обширная документация делают его мощным для моего случая.
  • Вы можете обрабатывать большие наборы данных в MATLAB. ссылка 1 ссылка2
  • Существует множество библиотек машинного обучения / интеллектуального анализа данных, написанных на MATLAB, и большинство библиотек, написанных на C ++ / Java, имеют оболочки MATLAB.

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

0 голосов
/ 29 июня 2017

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

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

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

0 голосов
/ 22 июня 2011

Я думаю, что в этой области наиболее популярной комбинацией является Java / Hadoop.Когда для вакансий требуется также python / perl / ruby, это обычно означает, что они переходят с этих языков сценариев (обычно основных языков до этого времени) на java из-за перехода с базы кода запуска на предприятие.Кроме того, в реальных условиях приложение для интеллектуального анализа данных часто используется для создания прототипов при обработке небольших данных.

...