Condividi tramite


Multiclasse one-vs-One

Questo articolo descrive come usare il componente One-vs-One Multiclass in Progettazione Azure Machine Learning. L'obiettivo è creare un modello di classificazione che può prevedere più classi, usando l'approccio one-versus-one .

Questo componente è utile per la creazione di modelli che stimano tre o più risultati possibili, quando il risultato dipende dalle variabili di previsione continua o categorica. Questo metodo consente inoltre di usare metodi di classificazione binaria per problemi che richiedono più classi di output.

Altre informazioni sui modelli uno e uno

Alcuni algoritmi di classificazione consentono l'uso di più di due classi per progettazione. Altri limitano i possibili risultati a uno dei due valori (un modello binario o a due classi). Ma anche gli algoritmi di classificazione binaria possono essere adattati per le attività di classificazione a più classi tramite una varietà di strategie.

Questo componente implementa il metodo one-vss-one, in cui viene creato un modello binario per ogni coppia di classi. In fase di stima, la classe che ha ricevuto la maggior parte dei voti è selezionata. Poiché richiede di adattare n_classes * (n_classes - 1) / 2 i classificatori, questo metodo è in genere più lento rispetto a uno e a tutti, a causa della complessità O(n_classes^2). Tuttavia, questo metodo può essere vantaggioso per gli algoritmi come gli algoritmi del kernel che non ridimensionano bene con n_samples. Questo perché ogni singolo problema di apprendimento comporta solo un piccolo subset dei dati, mentre, con un solo rispetto a tutti, il set di dati completo viene usato n_classes i tempi.

In sostanza, il componente crea un insieme di singoli modelli e quindi unisce i risultati, per creare un singolo modello che stima tutte le classi. Qualsiasi classificatore binario può essere usato come base per un modello one-vss-one.

Si supponga, ad esempio, di configurare un modello di macchina vettoriale di supporto a due classi e specificarlo come input per il componente One-vs-One Multiclass. Il componente creerebbe modelli di computer vettoriali a due classi per tutti i membri della classe di output. Verrà quindi applicato il metodo one-vss-one per combinare i risultati per tutte le classi.

Il componente usa OneVsOneClassifier di sklearn e qui è possibile ottenere altri dettagli.

Come configurare il classificatore Multiclasse One-vs-One

Questo componente crea un insieme di modelli di classificazione binaria per analizzare più classi. Per usare questo componente, è necessario configurare e eseguire il training di un modello di classificazione binario prima.

Si connette il modello binario al componente One-vs-One Multiclass. Si esegue quindi il training dell'insieme di modelli usando Train Model con un set di dati di training etichettato.

Quando si combinano i modelli, One-vs-One Multiclass crea più modelli di classificazione binaria, ottimizza l'algoritmo per ogni classe e quindi unisce i modelli. Il componente esegue queste attività anche se il set di dati di training potrebbe avere più valori di classe.

  1. Aggiungere il componente One-vs-One Multiclass alla pipeline nella finestra di progettazione. È possibile trovare questo componente in Machine Learning - Inizializzare, nella categoria Classificazione .

    Il classificatore One-vs-One Multiclasse non dispone di parametri configurabili propri. Tutte le personalizzazioni devono essere eseguite nel modello di classificazione binaria fornito come input.

  2. Aggiungere un modello di classificazione binaria alla pipeline e configurare tale modello. Ad esempio, è possibile usare una macchina vettoriale di supporto a due classi o un albero delle decisioni con aumento a due classi.

  3. Aggiungere il componente Train Model alla pipeline. Connettere il classificatore non sottoposto a training che corrisponde all'output di One-vs-One Multiclass.

  4. Nell'altro input di Train Model connettere un set di dati di training etichettato con più valori di classe.

  5. Inviare la pipeline.

Risultati

Al termine del training, è possibile usare il modello per eseguire stime multiclasse.

In alternativa, è possibile passare il classificatore non sottoposto a training al modello di convalida incrociata per la convalida incrociata in un set di dati di convalida con etichetta.

Passaggi successivi

Vedere il set di componenti disponibili per Azure Machine Learning.