Come scegliere gli algoritmi di Azure Machine Learning

Una domanda comune è "Quale algoritmo di Machine Learning devo usare?" L'algoritmo scelto dipende principalmente da due aspetti diversi dello scenario di data science:

  • Cosa si vuole fare con i dati? In particolare, qual è la domanda aziendale a cui si vuole rispondere in base a quanto imparato dai dati storici?

  • Quali sono i requisiti dello scenario di data science? Nello specifico, cosa si sa sull'accuratezza, il tempo di training, la linearità, il numero di parametri e il numero di caratteristiche che la soluzione supporta?

Considerations for choosing algorithms: What do you want to know? What are the scenario requirements?

Nota

La finestra di progettazione supporta due tipi di componenti, ovvero i componenti predefiniti classici (v1) e i componenti personalizzati (v2). Questi due tipi di componenti NON sono compatibili.

I componenti predefiniti classici forniscono componenti predefiniti principalmente pensati per l'elaborazione dei dati e le attività tradizionali di Machine Learning, ad esempio regressione e classificazione. Questo tipo di componente continua a essere supportato, ma non avrà nuove aggiunte future.

I componenti personalizzati consentono di eseguire il wrapping del codice personalizzato come componente. Questa opzione supporta la condivisione di componenti tra aree di lavoro e la creazione semplice nelle interfacce di studio, CLI v2 e SDK v2.

Per i nuovi progetti, è consigliabile usare un componente personalizzato che sia compatibile con AzureML V2 e continui a ricevere nuovi aggiornamenti.

Questo articolo si applica ai componenti predefiniti classici e non compatibili con CLI v2 e SDK v2.

Foglio informativo sui scenari di business e gli algoritmi di Machine Learning

Il foglio informativo sugli algoritmi di Azure Machine Learning consente di rispondere alla prima domanda: cosa si vuole fare con i dati? Nel foglio informativo sugli algoritmi di Machine Learning, cercare l'attività da eseguire, quindi trovare un algoritmo della finestra di progettazione di Azure Machine Learning per la soluzione di analisi predittiva.

La finestra di progettazione di Machine Learning offre un portfolio completo di algoritmi, ad esempio la foresta delle decisioni multiclasse, i sistemi di raccomandazione, la regressione della rete neurale, la rete neurale multiclassee il clustering K-Means. Ogni algoritmo è progettato per risolvere un tipo diverso di problema di Machine Learning. Per un elenco completo, vedere le informazioni di riferimento sull'algoritmo e i componenti della finestra di progettazione di Machine Learning e la documentazione relativa al funzionamento di ogni algoritmo e all'utilizzo dei parametri per ottimizzare l'algoritmo.

Oltre alle indicazioni contenute nel foglio informativo sugli algoritmi di Azure Machine Learning, ci sono altri requisiti da prendere in considerazione nella scelta di un algoritmo di Machine Learning per la soluzione. Di seguito sono riportati altri fattori importanti, come l'accuratezza, il tempo di training, la linearità, il numero di parametri e il numero di caratteristiche.

Confronto tra algoritmi di Machine Learning

Alcuni algoritmi di apprendimento fanno ipotesi particolari sulla struttura dei dati o sui risultati desiderati. Se è possibile trovarne uno adatto alle proprie esigenze, può fornire risultati più utili, previsioni più accurate o tempi di addestramento più rapidi.

La tabella seguente riepiloga alcune delle caratteristiche più importanti degli algoritmi di classificazione, regressione e clustering:

Algoritmo Precisione Tempo di addestramento Linearità Parametri Note
Gruppo di classificazione
Regressione logistica a due classi Bene Veloce 4
Foresta delle decisioni a due classi Eccellente Moderato No 5 Mostra tempi più lenti per l'assegnazione dei punteggi. Suggeriamo di non usare One-vs-All Multiclass, perché il blocco dei thread nell'accumulo di previsioni dell'albero comporta tempi più lenti per l'assegnazione dei punteggi
Albero delle decisioni incrementato a due classi Eccellente Moderato No 6 Footprint della memoria di grandi dimensioni
Rete neurale a due classi Bene Moderato No 8
Percettrone medio a due classi Bene Moderato 4
Macchina a vettori di supporto a due classi Bene Veloce 5 Particolarmente valido per set di funzioni di grandi dimensioni
Regressione logistica multiclasse Bene Veloce 4
Foresta delle decisioni multiclasse Eccellente Moderato No 5 Mostra tempi più lenti per l'assegnazione dei punteggi
Albero delle decisioni incrementato a più classi Eccellente Moderato No 6 Tende a migliorare l'accuratezza con un piccolo rischio di minore copertura
Rete neurale multiclasse Bene Moderato No 8
One-vs-All Multiclass - - - - Visualizzare le proprietà del metodo a due classi selezionato
Gruppo di regressione
Regressione lineare Bene Veloce 4
Regressione foresta delle decisioni Eccellente Moderato No 5
Regressione albero delle decisioni incrementato Eccellente Moderato No 6 Footprint della memoria di grandi dimensioni
Regressione rete neurale Bene Moderato No 8
Gruppo di clustering
Clustering K-means Eccellente Moderato 8 Algoritmo di clustering

Requisiti per uno scenario di data science

Una volta deciso cosa si vuole fare con i dati, è necessario definire dei requisiti aggiuntivi per la soluzione.

Compiere scelte ed eventualmente trovare compromessi per i requisiti seguenti:

  • Accuratezza
  • Tempo di addestramento
  • Linearità
  • Numero di parametri
  • Numero di caratteristiche

Accuratezza

L'accuratezza di Machine Learning misura l'efficacia di un modello come percentuale dei risultati effettivi rispetto al numero totale di casi. Nella finestra di progettazione di Machine Learning, il componente Valuta modello calcola un set di metriche di valutazione standard del settore. È possibile usare questo componente per misurare l'accuratezza di un modello sottoposto a training.

Ottenere la risposta più precisa possibile non è sempre necessario. Talvolta un'approssimazione è sufficiente, a seconda di ciò per cui si desidera utilizzarla. In tal caso, è possibile ridurre drasticamente il tempo di elaborazione utilizzando più metodi approssimativi. Anche i metodi approssimativi tendono naturalmente ad evitare l'overfitting.

Esistono tre modi per usare il componente Valuta modello:

  • Generare i punteggi dei dati di training per valutare il modello
  • Generare i punteggi del modello, ma confrontarli con quelli ottenuti in un set di test riservati
  • Confrontare i punteggi per due modelli diversi ma correlati, usando lo stesso set di dati

Per un elenco completo delle metriche e degli approcci che è possibile usare per valutare l'accuratezza dei modelli di Machine Learning, vedere il componente Valuta modello.

Tempo di addestramento

Nell'apprendimento supervisionato, il training prevede l'utilizzo di dati storici per creare un modello di Machine Learning che riduca al minimo gli errori. Il numero di minuti o ore necessarie per eseguire l’addestramento di un modello varia notevolmente tra gli algoritmi. Il tempo di training è spesso strettamente correlato all'accuratezza, con cui va di pari passo.

Inoltre, alcuni algoritmi sono più sensibili al numero di punti dati rispetto ad altri. È possibile scegliere un algoritmo specifico per un periodo di tempo limitato, soprattutto con set di dati di grandi dimensioni.

Nella finestra di progettazione, la creazione e l'uso di un modello di Machine Learning costituiscono in genere un processo in tre fasi:

  1. Configurare un modello scegliendo un particolare tipo di algoritmo, quindi definirne parametri o iperparametri.

  2. Specificare un set di dati etichettato e contenente dati compatibili con l'algoritmo. Connettere sia i dati che il modello al componente Esegui il training del modello .

  3. Al termine del training, usare il modello sottoposto a training con uno dei componenti di assegnazione dei punteggi per eseguire previsioni sui nuovi dati.

Linearità

La linearità in termini di statistiche e Machine Learning significa che esiste una relazione lineare tra una variabile e una costante nel set di dati. Ad esempio, gli algoritmi di classificazione lineare ipotizzano che le classi possano essere separate da una linea retta (o dal suo equivalente della dimensione superiore).

Un numero elevato di algoritmi di Machine Learning utilizza la linearità. Nella finestra di progettazione di Azure Machine Learning, comprendono:

Gli algoritmi di regressione lineare ipotizzano che le tendenze dei dati seguano una linea retta. Questa ipotesi funziona discretamente con alcuni problemi, ma in altri casi compromette l'accuratezza. Nonostante i loro svantaggi, gli algoritmi lineari sono i più richiesti come strategia principale. Tendono ad essere algoritmicamente semplici e rapidi da addestrare.

Nonlinear class boundary

Limite di classe non lineare: basarsi su un algoritmo di classificazione lineare riduce l'accuratezza.

Data with a nonlinear trend

Dati con una tendenza non lineare: l'uso di un metodo di regressione lineare genera errori più grandi del necessario.

Numero di parametri

I parametri sono i pulsanti che uno scienziato dei dati deve utilizzare per configurare un algoritmo. Sono numeri che influiscono sul comportamento dell'algoritmo, ad esempio sulla tolleranza degli errori o sul numero di iterazioni, o sulle opzioni tra le varianti del comportamento dell'algoritmo. Il tempo di training e l'accuratezza dell'algoritmo possono talvolta risultare abbastanza cruciali per ottenere le impostazioni corrette. Di solito, gli algoritmi con parametri in numero elevato richiedono molti tentativi ed errori per trovare una combinazione ottimale.

In alternativa, nella finestra di progettazione di Machine Learning, è disponibile il componente Ottimizza iperparametri del modello che ha come obiettivo la definizione di iperparametri ottimali per un modello di Machine Learning. Il componente compila e testa più modelli usando diverse combinazioni di impostazioni. Inoltre, confronta le metriche di tutti i modelli per ottenere le combinazioni di impostazioni.

Sebbene questo sia un ottimo modo per assicurarsi di aver utilizzato al massimo lo spazio di parametri, il tempo necessario per eseguire il training di un modello aumenta in misura esponenziale con il numero di parametri. Il vantaggio è un numero elevato di parametri in genere indica che un algoritmo ha maggiore flessibilità. Ammesso che si trovi la giusta combinazione di impostazioni dei parametri, spesso è possibile raggiungere un buon livello di accuratezza

Numero di caratteristiche

In Machine Learning, una caratteristica è una variabile quantificabile del fenomeno che si sta provando ad analizzare. Per alcuni tipi di dati, il numero di caratteristiche può essere molto grande rispetto al numero di punti dati. Questo accade spesso con i dati testuali o sulla genetica.

L'elevato numero di caratteristiche può rallentare alcuni algoritmi di apprendimento, rendendo il tempo di training esageratamente lungo. Le macchine a vettori di supporto sono particolarmente adatte agli scenari con un numero elevato di caratteristiche. Per questo motivo, sono utilizzate in molte applicazioni, dal recupero di informazioni alla classificazione di testo e immagini. Le macchine a vettori di supporto possono essere utilizzate sia per le attività di classificazione che di regressione.

La selezione delle caratteristiche si riferisce al processo di applicazione di test statistici agli input, in base a un output specifico. L'obiettivo è di determinare quali colonne sono più predittive dell'output. Il componente Selezione caratteristiche basata su filtro nella finestra di progettazione di Machine Learning consente di scegliere tra più algoritmi di selezione delle caratteristiche. Il componente include metodi di correlazione come la correlazione di Pearson e i valori chi quadrato.

È anche possibile usare il componente Importanza della caratteristica di permutazione per calcolare un set di punteggi di importanza della caratteristica per il set di dati. È quindi possibile sfruttare questi punteggi per determinare le caratteristiche migliori da usare in un modello.

Passaggi successivi