Сравнение R с Matlab для интеллектуального анализа данных

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

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

Я провел различные сравнения Matlab и R с различными показателями, но мне особенно интересно получить ответ на вопрос о его применимости в Data Mining и ML. Поскольку оба языка для меня довольно новы, мне просто интересно, будет ли R хорошим выбором или нет.

Я ценю любые предложения.


person iinception    schedule 27.01.2011    source источник
comment
См.: stackoverflow.com/questions/3125527/   -  person Matti Pastell    schedule 27.01.2011


Ответы (8)


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

Я был эксклюзивным пользователем Matlab, когда учился в университете; в то время я думал, что это отличный набор инструментов/платформы. Уверен, что и сегодня.

Наборы инструментов Neural Network Toolbox, Optimization Toolbox, Statistics Toolbox и Curve Fitting Toolbox крайне желательны (если не необходимы) для тех, кто использует MATLAB для работы с машинным обучением/интеллектуальным анализом данных, однако все они отдельны от базовая среда MATLAB, другими словами, их необходимо приобретать отдельно.

Мой список 5 лучших для изучения машинного обучения/интеллектуального анализа данных в R:

Это относится к нескольким вещам: во-первых, к группе пакетов R, которые начинаются с arules (доступно в CRAN); полный список (arules, aruluesViz и т. д.) можно найти на домашней странице проекта. Во-вторых, все эти пакеты основаны на методе интеллектуального анализа данных, известном как Market-Basked Analysis или, как альтернатива, как Правила ассоциации. Во многих отношениях это семейство алгоритмов представляет собой суть интеллектуального анализа данных — исчерпывающий обход больших баз данных транзакций и поиск ассоциаций или корреляций выше среднего среди полей (переменных или признаков) в этих базах данных. На практике вы подключаете их к источнику данных и позволяете им работать всю ночь. Центральный пакет R в упомянутом выше наборе называется arules; На странице пакета CRAN для arules вы найдете ссылки на пару отличных вторичных источников (виньетки в лексиконе R) по пакету arules и технике правил ассоциации в целом. .

Самое последнее издание этой книги доступно в цифровой форме бесплатно. Точно так же на веб-сайте книги (ссылка на него чуть выше) доступны для бесплатного скачивания все наборы данных, используемые в ESL. (Кроме того, у меня есть бесплатная цифровая версия; я также купил версию в твердом переплете на BN.com; все цветные схемы в цифровой версии воспроизведены в версии в твердом переплете.) ESL содержит подробное введение по крайней мере к одному образцу из большинство основных рубрик ML, например, нейронные сети, SVM, KNN; неконтролируемые методы (LDA, PCA, MDS, SOM, кластеризация), многочисленные разновидности регрессии, CART, байесовские методы, а также методы агрегирования моделей (Boosting, Bagging) и настройки модели (регуляризация). Наконец, получите пакет R, который сопровождает книгу, из CRAN (что избавит вас от необходимости загружать наборы данных).

  • CRAN Представление задач: машинное обучение

Более 3500 пакетов, доступных для R, разделены по доменам примерно на 30 семейств пакетов или «представления задач< /а>'. Машинное обучение — одно из таких семейств. Представление задач машинного обучения содержит около 50 пакетов. Некоторые из этих пакетов являются частью основного дистрибутива, в том числе e1071 (обширный пакет машинного обучения, включающий рабочий код для довольно многих обычных категорий машинного обучения).

Особое внимание уделяется сообщениям, помеченным Predictive Analytics

  • ML в R учебник, состоящий из набора слайдов и кода R от Джоша Райха

Тщательное изучение кода само по себе станет отличным введением в машинное обучение в R.

И последний ресурс, который я считаю отличным, но не попал в топ-5:

опубликовано в блоге A Beautiful WWW

person doug    schedule 27.01.2011
comment
Нет никаких сомнений в том, что MATLAB стоит недешево, по крайней мере, для большинства людей. В своей работе я стараюсь избегать использования дополнительных наборов инструментов от MathWorks. Как вы сказали, они требуют дополнительных затрат, но также ограничивают мобильность. Одна из замечательных особенностей MATLAB — это то, что входит в базовый продукт: например, для загрузки изображений не требуются специальные библиотеки, поэтому мой код будет работать на любом MATLAB. - person Predictor; 27.01.2011
comment
О, еще одна моя мысль заключалась в том, что существует большое количество бесплатного программного обеспечения для сбора статистики и интеллектуального анализа данных от значительного онлайн-сообщества MATLAB. См., например, файловый обмен MATLAB Central. Университеты — еще один хороший источник кода MATLAB. - person Predictor; 27.01.2011
comment
Спасибо за ответ. Я очень ценю это. Я посмотрю книгу, которую вы упомянули. - person iinception; 27.01.2011
comment
Кроме того, люди, пишущие книгу, не только внедрили свои методы в R, но и сами внесли свой вклад! - person Jay; 27.01.2011
comment
@Predictor, самое замечательное в R то, что он всегда будет работать на каждой машине, независимо от того, сколько пакетов расширений вы установите. - person Paul Hiemstra; 18.11.2011
comment
MATLAB также будет работать на любой машине, и я считаю, что все наборы инструментов (от производителя MATLAB) будут поддерживаться на всех платформах. Ограничение переносимости любой надстройки, независимо от базового программного обеспечения, заключается в том, что надстройка потребуется любому программисту, которому вы хотите передать свой код, поскольку ваш код будет зависеть от надстройки. - person Predictor; 19.12.2011

Ознакомьтесь с представлениями задач CRAN и, в частности, с Представление задач CRAN по машинному обучению и статистическому обучению, в котором это хорошо обобщается.

person Dirk Eddelbuettel    schedule 27.01.2011

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

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

И как только вы доберетесь до организации данных, R и Matlab станут проблемой. Попробуйте реализовать R*-дерево в R или Matlab, чтобы перевести алгоритм O(n^2) во время выполнения O(n log n). Во-первых, это полностью противоречит тому, как спроектированы R и Matlab (используйте массовые математические операции везде, где это возможно), во-вторых, это убьет вашу производительность. Интерпретируемый код R, например, кажется, работает примерно на 50% быстрее кода C (попробуйте встроенное R k-means против flexclus k-means); и библиотеки BLAS оптимизированы до безумного уровня, используя размеры кэша, выравнивание данных, расширенные функции ЦП. Если вы предприимчивы, попробуйте реализовать ручное умножение матриц в R или Matlab и сравните его с родным.

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

Если вы хотите в долгосрочной перспективе масштабироваться до «размера Hadoop», вам придется также подумать о расположении и организации данных, если только вам не требуется линейное сканирование данных. Но тогда вы могли бы и просто сэмплировать!

person Has QUIT--Anony-Mousse    schedule 04.10.2012

Вчера я нашел две новые книги о интеллектуальном анализе данных. Эта серия книг, озаглавленная «Интеллектуальный анализ данных», направлена ​​на удовлетворение потребности путем предоставления подробного описания новых алгоритмов интеллектуального анализа данных и множества полезных приложений. В дополнение к глубокому пониманию каждого раздела, две книги содержат полезные советы и стратегии для решения проблем в следующих главах. Прогресс технологии интеллектуального анализа данных и большая общественная популярность обуславливают потребность в подробном тексте по этому вопросу. Книги: «Новые фундаментальные технологии интеллектуального анализа данных» здесь http://www.intechopen.com/books/show/title/new-fundamental-technologies-in-data-mining и «Приложения, ориентированные на знания, в интеллектуальном анализе данных» здесь http://www.intechopen.com/books/show/title/Knowledge-Oriented-Applications-in-Data-Mining Это книги с открытым доступом, поэтому вы можете скачать их бесплатно или просто читать на онлайн-платформе для чтения, как я. Ваше здоровье!

person Jonny    schedule 28.02.2011

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

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

person Leo5188    schedule 26.03.2011

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

person Paul Hiemstra    schedule 17.11.2011

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

person Ralph Winters    schedule 08.02.2011

Я признаю, что предпочитаю MATLAB для задач интеллектуального анализа данных, и я привожу здесь некоторые свои рассуждения:

Почему MATLAB для интеллектуального анализа данных?

Я признаю лишь поверхностное знакомство с R/S-Plus, но сделаю следующие наблюдения:

  1. R определенно больше ориентирован на статистику, чем MATLAB. Я предпочитаю создавать свои собственные инструменты в MATLAB, чтобы точно знать, что они делают, и иметь возможность настраивать их, но в MATLAB это более необходимо, чем в R.

  2. Код для новых статистических методов (пространственная статистика, надежная статистика и т. д.) часто появляется в начале S-Plus (я предполагаю, что он переносится на R, по крайней мере, некоторые).

  3. Несколько лет назад я обнаружил, что коммерческая версия R, S-Plus имеет чрезвычайно ограниченный объем данных. Я не могу сказать, в каком состоянии R/S-Plus сегодня, но вы можете проверить, удобно ли ваши данные помещаются в такие инструменты.

person Predictor    schedule 27.01.2011
comment
S-Plus не является коммерческой версией R. - person Marek; 27.01.2011
comment
Обычно новые статистические методы писались на R, а затем затем переносились на S-Plus. - person hadley; 27.01.2011
comment
Марек, можете ли вы прокомментировать объем данных R? - person Predictor; 27.01.2011
comment
В R есть несколько способов работы с данными и различными структурами данных. Основные методы находятся в памяти, но одно изменение: чтение строк/фрагментов, работа непосредственно с интерфейсами баз данных, ряд различных типов файлов и структур HPC для больших данных. - person Jay; 27.01.2011
comment
Мне нравится R, потому что R поставляется с бесконечно большим количеством предварительно запеченных, чем Matlab, в моем личном случае использования, и, как и Matlab, я могу расширять его так, как мне нравится, с помощью языка. - person Jay; 27.01.2011
comment
Может ли кто-нибудь дать более конкретное представление о емкости данных R? Например, если кто-то строит модели, сколько наблюдений и предикторов-кандидатов мы можем использовать? - person Predictor; 29.01.2011
comment
Это во многом зависит от того, какие столбцы, что вы делаете с данными, ваше оборудование и т. д. Чтобы дать очень грубый ответ, у меня не было проблем с работой со случаями 1e6 - 1e7 с переменными от 10 до 100+. ... но я не уверен, насколько значим этот ответ. R бесплатен, попробуйте. Будучи знакомым с Matlab, все должно быть в порядке. Существует даже пакет эмуляции Matlab для некоторых наиболее часто используемых синтаксисов. - person Jay; 31.01.2011
comment
Объем данных R не меньше и не больше, чем (ну, ладно, может быть, больше) любого другого языка. Как сказал @Dirk, просто ознакомьтесь с большими пакетами данных. - person Iterator; 08.09.2011
comment
Я работал с наборами данных объемом 35 ГБ, пытаясь вычислить из них ковариационную матрицу. В итоге я прочитал данные кусками. Поэтому я думаю, что умение работать с большими наборами данных — это тоже вопрос правильного программирования. Что касается S-plus, они используют систему упаковки R. Думаю, этого достаточно о том, кто лидирует с точки зрения статистических методов :). - person Paul Hiemstra; 18.11.2011