web-dev-qa-db-fra.com

Comparaison de R à Matlab pour l'exploration de données

Au lieu de commencer à coder dans Matlab, j'ai récemment commencé à apprendre R, principalement parce qu'il est open-source. Je travaille actuellement dans le domaine de l'exploration de données et de l'apprentissage automatique. J'ai trouvé de nombreux algorithmes d'apprentissage automatique implémentés dans R, et j'explore toujours différents packages implémentés dans R.

J'ai une question rapide: comment comparez-vous R à Matlab pour l'application d'exploration de données, sa popularité, ses avantages et ses inconvénients, l'acceptation par l'industrie et les universités, etc.? Lequel choisiriez-vous et pourquoi?

J'ai parcouru diverses comparaisons pour Matlab vs R avec diverses mesures, mais je suis particulièrement intéressé à obtenir une réponse pour son applicabilité dans l'exploration de données et le ML. Étant donné que les deux langages sont assez nouveaux pour moi, je me demandais simplement si R serait un bon choix ou non.

J'apprécie toutes sortes de suggestions.

35
iinception

Au cours des trois dernières années, j'ai utilisé R quotidiennement, et la plus grande partie de cette utilisation quotidienne est consacrée à des problèmes d'apprentissage automatique/d'exploration de données.

J'étais un utilisateur exclusif de Matlab pendant mes études à l'Université; à l'époque, je pensais que c'était un excellent ensemble d'outils/plateforme. Je suis sûr que c'est également le cas aujourd'hui.

La boîte à outils du réseau neuronal, la boîte à outils d'optimisation, la boîte à outils de statistiques et la boîte à outils d'ajustement de courbe sont chacune hautement souhaitables (sinon essentielles) pour quelqu'un qui utilise MATLAB pour le travail ML/Data Mining, mais elles sont toutes séparées à partir de l'environnement MATLAB de base - en d'autres termes, ils doivent être achetés séparément.

Ma liste des 5 meilleurs pour l'apprentissage du ML/exploration de données en R :

Cela fait référence à quelques éléments: Tout d'abord, un groupe de packages R qui commencent tous arules (disponible auprès du CRAN) ; vous pouvez trouver la liste complète (arules, aruluesViz, etc.) sur le Page d'accueil du projet . Deuxièmement, tous ces packages sont basés sur une technique d'exploration de données connue sous le nom de Analyse basée sur le marché et alternativement sous la forme Règles d'association. À bien des égards, cette famille d'algorithmes est l'essence même de l'exploration de données - parcourez de manière exhaustive les grandes bases de données de transactions et trouvez des associations ou des corrélations supérieures à la moyenne entre les champs (variables ou caractéristiques) de ces bases de données. En pratique, vous les connectez à une source de données et les laissez s'exécuter pendant la nuit. Le paquet R central dans l'ensemble mentionné ci-dessus est appelé arules; Sur la page du package CRAN pour arules, vous trouverez des liens vers quelques excellentes sources secondaires ( vignettes dans le lexique de R) sur le package arules et sur Association Technique des règles en général.

L'édition la plus récente de ce livre est disponible sous forme numérique pour gratuit. De même, sur le site Web du livre (lié à juste au-dessus), tous les ensembles de données utilisés en ESL sont disponibles en téléchargement gratuit. (En passant, j'ai la version numérique gratuite; j'ai également acheté la version cartonnée de BN.com; tous les tracés de couleur dans la version numérique sont reproduits dans la version cartonnée.) ESL contient des introductions détaillées à au moins un exemplaire de la plupart des principales rubriques ML - par exemple, les réseaux de neurones, SVM, KNN; techniques non supervisées (LDA, PCA, MDS, SOM, clustering), nombreuses saveurs de régression, CART, techniques bayésiennes, ainsi que des techniques d'agrégation de modèles (Boosting, Bagging) et de tuning de modèles (régularisation). Enfin, obtenez le package R qui accompagne le livre auprès de CRAN (ce qui vous évitera d'avoir à télécharger l'entrée des jeux de données).

  • CRAN Vue des tâches: Machine Learning

Les +3 500 packages disponibles pour R sont divisés par domaine en environ 30 familles de packages ou " Task Views ". L'apprentissage automatique fait partie de ces familles. La vue des tâches d'apprentissage automatique contient environ 50 packages. Certains de ces packages font partie de la distribution principale, y compris e1071 (un package ML tentaculaire qui inclut du code de travail pour un certain nombre des catégories ML habituelles.)

Avec un accent particulier sur les publications marquées avec Predictive Analytics

Une étude approfondie du code serait, en soi, une excellente introduction au ML dans R.

Et une dernière ressource que je pense être excellente, mais qui n'a pas fait partie du top 5:

publié sur le blog A Beautiful WWW

61
doug
9
Dirk Eddelbuettel

Matlab et R sont bons si vous effectuez des opérations à matrice lourde. Parce qu'ils peuvent utiliser du code de bas niveau hautement optimisé (bibliothèques BLAS et autres) pour cela.

Cependant, l'exploration de données ne se limite pas à la matrice de matrices. Beaucoup de gens négligent totalement l'ensemble organisation des données aspect de l'exploration de données (par opposition à un simple apprentissage automatique).

Et une fois que vous arrivez à l'organisation des données, R et Matlab sont une douleur. Essayez d'implémenter un arbre R * dans R ou matlab pour ramener un algorithme O(n^2) à O(n log n) runtime. Tout d'abord, cela va totalement à l'encontre de la façon dont R et Matlab sont conçus (utilisez des opérations mathématiques en vrac autant que possible), deuxièmement, cela tuera vos performances. Le code R interprété, par exemple, semble fonctionner à environ 50% de la vitesse du code C (essayez R k-means intégré vs flexclus k-means); et les bibliothèques BLAS sont optimisées à un niveau insensé, exploitant les tailles de cache, l'alignement des données, les fonctionnalités avancées du processeur. Si vous êtes aventureux, essayez d'implémenter une multiplication de matrice manuelle dans R ou Matlab, et comparez-la à celle native.

Ne vous méprenez pas. Il y a beaucoup de choses où R et matlab sont juste élégant et excellent pour le prototypage. Vous pouvez résoudre beaucoup de choses en seulement 10 lignes de code et en tirer des performances décentes. Écrire la même chose à la main serait des centaines de lignes, et probablement 10 fois plus lentement. Mais parfois, vous pouvez optimiser par un niveau de complexité, qui pour les grands ensembles de données bat les opérations matricielles optimisées de R et matlab.

Si vous souhaitez passer à la "taille Hadoop" à long terme, vous devrez penser à la disposition et à l'organisation des données, à moins que vous besoin est un balayage linéaire sur les données. Mais alors, vous pourriez aussi simplement échantillonner!

Je pense que cela dépend aussi dans quel domaine d'études vous êtes. Je connais des gens de la recherche côtière qui utilisent beaucoup de Matlab. Utiliser R dans ce groupe vous rendrait la vie plus difficile. Si un collègue a résolu un problème, vous ne pouvez pas l'utiliser car il l'a résolu en utilisant Matlab.

1
Paul Hiemstra

Hier, j'ai trouvé deux nouveaux livres sur l'exploration de données. Ces séries de livres intitulées "Data Mining" répondent au besoin en présentant une description approfondie de nouveaux algorithmes d’exploration et de nombreuses applications utiles. En plus de comprendre chaque section en profondeur, les deux livres présentent des conseils et des stratégies utiles pour résoudre les problèmes dans les chapitres suivants.Les progrès de la technologie d'exploration de données et la grande popularité du public établissent le besoin d'un texte complet sur le sujet. Les livres sont: "Nouvelles technologies fondamentales dans l'exploration de données" ici http://www.intechopen.com/books/show/title/new-fundamental-technologies-in-data-mining & "Knowledge- Applications orientées dans l'exploration de données "ici http://www.intechopen.com/books/show/title/knowledge-oriented-applications-in-data-mining Ce sont des livres en accès libre que vous pouvez télécharger gratuitement ou simplement lire sur la plate-forme de lecture en ligne comme je le fais. À votre santé!

1
Jonny

Il ne faut pas oublier les sources Origin pour ces deux logiciels: le calcul scientifique et aussi le traitement du signal conduisent à Matlab mais les statistiques conduisent à R.

J'ai beaucoup utilisé matlab à l'université car nous en avons un installé sur Unix et ouvert à tous les étudiants. Cependant, le prix de Matlab est trop élevé, en particulier par rapport à R. gratuit. Si votre objectif principal n'est pas le calcul matriciel et le traitement du signal, R devrait bien fonctionner pour vos besoins.

1
Leo5188

J'examinerais également les capacités de chacun lorsque vous traitez de grandes quantités de données. Je sais que R peut avoir des problèmes avec cela et peut être restrictif si vous êtes habitué à un processus d'exploration de données itératif. Par exemple, regarder simultanément plusieurs modèles. Je ne sais pas si MATLAB a une limitation de données.

0
Ralph Winters