Сравнение R с Matlab для интеллектуального анализа данных - PullRequest
35 голосов
/ 27 января 2011

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

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

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

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

Ответы [ 8 ]

61 голосов
/ 27 января 2011

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

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

Набор инструментов нейронной сети, набор инструментов оптимизации, набор инструментов статистики и набор инструментов подгонки кривой очень желателен (если не необходим) для тех, кто использует MATLAB для работы над ML / Data Mining.Тем не менее все они отделены от базовой среды MATLAB - другими словами, их необходимо приобретать отдельно.

Мой Топ-5 списка для изучения ML / Data Mining вR :

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

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

  • CRAN Вид задачи: Машинное обучение

Пакеты, доступные для R, насчитывающие +3 500, подразделяются по доменам примерно на30 семейств пакетов или ' Представления задач '.Машинное обучение является одним из таких семейств.Представление «Машинное обучение» содержит около 50 пакетов.Некоторые из этих пакетов являются частью основного дистрибутива, включая e1071 (обширный пакет ML, включающий рабочий код для довольно многих обычных категорий ML).

С особым вниманием к сообщениям, отмеченным с помощью Predictive Analytics

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

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

опубликовано в блоге Красивая WWW

9 голосов
/ 27 января 2011

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

2 голосов
/ 04 октября 2012

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

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

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

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

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

1 голос
/ 18 ноября 2011

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

1 голос
/ 26 марта 2011

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

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

1 голос
/ 28 февраля 2011

Вчера я нашел две новые книги о Data Mining.Эти серии книг, озаглавленные «Data Mining», посвящены этой потребности, представляя подробное описание новых алгоритмов майнинга и многих полезных приложений.В дополнение к глубокому пониманию каждого раздела, в двух книгах представлены полезные советы и стратегии для решения проблем в следующих главах. Прогресс технологии интеллектуального анализа данных и широкая общественная популярность устанавливают необходимость всестороннего текста по этому вопросу.Книги: «Новые фундаментальные технологии в интеллектуальном анализе данных» здесь 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 Это книги открытого доступа, так что вы можете скачать их бесплатно или просто прочитатьна онлайн-платформе для чтения, как я.Ура! * * 1005

0 голосов
/ 08 февраля 2011

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

0 голосов
/ 27 января 2011

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

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

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

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

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

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

...