MATLAB vs R

Quali sono le differenze tra MATLAB e R?

Sia MATLAB® che R possono essere utilizzati per l’analisi dei dati e il Machine Learning. Consentono di accedere a funzioni matematiche, a un linguaggio, alle statistiche e a una community di utenti. Però MATLAB aiuta ingegneri e scienziati ad accelerare il passaggio al Machine Learning, in quanto MATLAB dispone di app interattive che non richiedono conoscenze approfondite, oltre a strumenti che automatizzano le fasi più lunghe del workflow di Machine Learning.

Diamo un’occhiata ad alcune attività più facili da eseguire in MATLAB vs R:

  1. Fitting dei dati, identificazione di pattern e creazione di modelli di Machine Learning senza codifica

MATLAB mette a disposizione delle app per lo sviluppo di modelli di Machine Learning senza dover scrivere codice. Le app Classification Learner e Regression Learner consentono di esplorare i dati, addestrare modelli di classificazione e di regressione, regolare gli iperparametri e valutare i risultati. Con Distribution Fitter invece è possibile eseguire il fitting delle distribuzioni più conosciute sulla base dei propri dati. Con il comando Train All sarà possibile addestrare tutti i modelli disponibili con grande semplicità, così da concentrare le proprie energie sul miglioramento dei modelli per ottenere i risultati migliori. È possibile addestrare più modelli in base a set di dati di grandi dimensioni in parallelo su più core o un cluster di computer. Inoltre, è possibile esportare il modello e generare codice per l’integrazione in altri sistemi e per la distribuzione.

  1. Creazione di modelli ottimizzati senza l’aiuto di un esperto in Machine Learning

Per garantire la massima efficienza, i modelli devono essere sottoposti ad attività ripetute di regolazione dei parametri, ottimizzazione delle feature e selezione del modello.

AutoML automatizza le fasi più lunghe e complicate di estrazione delle feature dai segnali, selezione dei modelli e ottimizzazione dei relativi iperparametri.

Con MATLAB, è possibile ottimizzare sia il modello che gli iperparametri associati in un unico passaggio, servendosi dell’ottimizzazione bayesiana.

  1. Scalabilità del codice già scritto su set di dati di grandi dimensioni

MATLAB dispone di molte funzioni integrate e algoritmi di Machine Learning per la gestione di set di dati di grandi dimensioni che usano la stessa sintassi dei dati contenuti in memoria. È possibile collegarsi a sistemi di archiviazione dati di grandi dimensioni, compresi i database NoSQL, Hadoop/HDFS e ai fornitori di spazio di archiviazione su Cloud.

Sebbene siano disponibili dei pacchetti per scalare R su cluster Hadoop e Spark, per utilizzarli è necessario imparare a usare nuove funzioni, diverse dalle versioni corrispondenti contenute in memoria.

Pronto all’uso, MATLAB è più veloce di R per le attività tecniche di elaborazione più frequenti, le statistiche e il Machine Learning, come descritto in R Benchmark 2.5 (noto anche come Urbanek), in quanto le chiamate alle librerie di MATLAB sono ottimizzate e il codice viene compilato sul momento. Le funzioni dei toolbox dispongono in gran parte del supporto di elaborazione in parallelo integrato, che sfrutta più core o addirittura più GPU per il Deep Learning. È anche possibile accelerare l’esecuzione con un for-loop parallelo, scalare su cluster di calcolo con MATLAB Parallel Server oppure utilizzare delle risorse di calcolo su richiesta, messe a disposizione da fornitori di servizi Cloud pubblici, come Amazon o Azure.

  1.  Distribuzione su dispositivi edge e sistemi embedded

La distribuzione di applicazioni su sistemi embedded è tutt’altro che semplice perché il codice scritto in linguaggi di alto livello come R spesso devono essere implementati nuovamente per poter funzionare sull’hardware embedded.

Genera automaticamente codice C/C++, HDL, CUDA e altri tipi di codice da usare nei sistemi in tempo reale con MATLAB: MATLAB Coder converte automaticamente il codice predittivo per gran parte delle funzioni statistiche e di Machine Learning in codice C/C++ da distribuire direttamente sui dispositivi embedded e altri hardware specialistici con grosse limitazioni di memoria. Il codice per fare previsioni generato con GPU Coder viene eseguito su hardware NVIDIA specialistico più rapidamente rispetto ai framework di Deep Learning più noti come TensorFlow, soddisfacendo così i requisiti di distribuzione in tempo reale, ad esempio per i sistemi di elaborazione video e di assistenza alla guida.

Integra l’analisi per usarla su sistemi IT, OT ed enterprise usando gli strumenti MATLAB senza royalty: è possibile condividere applicazioni MATLAB standalone oppure creare librerie condivise per integrare applicazioni Java, Microsoft .NET, Python ed Excel. A differenza dei servizi di distribuzione basati su Cloud, che addebitano ogni transazione, la distribuzione mediante MATLAB Compiler e MATLAB Coder non prevede royalty.

Con il tempo abbiamo risparmiato generando codice con Embedded Coder, siamo riusciti a sperimentare nuove feature e a completare ulteriori iterazioni in MATLAB, integrando il feedback dei clienti sui primi prototipi.

Marc Blanch, IDNEO
  1. Accesso a tutte le funzioni e funzionalità necessarie

Oltre agli algoritmi di apprendimento di tipo generale, le applicazioni di analisi dei dati e di Machine Learning richiedono strumenti capaci di risolvere sfide relative ai vari domini, come la modellazione dei dati economici, l’elaborazione dei segnali o l’azionamento dei meccanismi di controllo in un robot. R si affida a pacchetti creati dalla community per gli aspetti scientifici, mentre non sono molti i pacchetti destinati a risolvere le problematiche ingegneristiche.

I toolbox MATLAB offrono accesso ai sensori, ai dispositivi mobili, ad altri tipi di hardware e a librerie per l’elaborazione dei segnali, l’elaborazione di immagini e la Computer Vision, l’ottimizzazione, il calcolo simbolico, i sistemi di controllo, i test e le misurazioni, la finanza computazionale e la biologia. I toolbox sono progettati in modo tale da lavorare l’uno con l’altro e vengono aggiornati tutti insieme, così da evitare qualsiasi tipo di problema posto dall’uso di versioni di librerie incompatibili. MathWorks conta oltre 250 ingegneri a tempo pieno addetti alle operazioni di test e controllo qualità, che convalidano la precisione e la qualità dei prodotti e si assicurano che i software passino le ampie suite di test prima dell’uscita.

MATLAB ci ha dato la possibilità di convertire dei dati che prima erano illeggibili in un formato utilizzabile, di automatizzare le operazioni di filtraggio, di analisi spettrale e le fasi di trasformazione per diverse regioni e autocarri. Infine, ci ha permesso di applicare le tecniche di Machine Learning in tempo reale per prevedere il momento ideale in cui procedere alla manutenzione.

Gulshan Singh, Baker Hughes

Sono tutti questi i motivi per cui ingegneri e scienziati scelgono di usare MATLAB vs R

Per le loro applicazioni, ingegneri e scienziati prediligono usare delle funzioni e degli strumenti ben progettati, documentati e sottoposti a rigorosi test. Ecco perché MATLAB viene utilizzato da milioni di ingegneri e scienziati nelle università e nelle aziende di tutto il mondo.

I ricercatori che hanno un background nel campo della statistica potrebbero preferire R. Tuttavia, chi lavora su applicazioni industriali e ingegneristiche di statistica e Machine Learning predilige MATLAB. Tra i motivi possiamo citare i seguenti:

  • Possibilità di creare modelli ottimizzati in app interattive, senza codifica
  • Automazione delle fasi più lunghe e complesse di estrazione delle feature, selezione dei modelli e ottimizzazione degli iperparametri, non solo per i dati numerici ma anche per le applicazioni che coinvolgono segnali e immagini
  • Distribuzione su hardware embedded e applicazioni enterprise senza ricodifica e senza royalty
  • Integrazione dei propri modelli con Simulink per implementare test in tempo reale e la progettazione Model-Based nel processo di sviluppo complessivo della propria applicazione

Chi si trova in un ambiente in cui necessita di utilizzare R insieme a MATLAB, è in grado di scambiare dati tra MATLAB ed R usando i formati standard, oltre a richiamare le funzioni R da MATLAB.

Vedere anche: machine learning with MATLAB, MATLAB plot gallery, data fitting with MATLAB, MATLAB vs. Python, Open Science