Multiclasse one-vs-one

Questo articolo descrive come usare il componente One-vs-One Multiclass nella finestra di progettazione di Azure Machine Learning. L'obiettivo è creare un modello di classificazione in grado di stimare più classi usando l'approccio uno-a-uno .

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

Altre informazioni sui modelli uno-a-uno

Alcuni algoritmi di classificazione consentono l'uso di più di due classi per impostazione predefinita. Altri limitano i risultati possibili a uno dei due valori (un modello binario o a due classi). Tuttavia, anche gli algoritmi di classificazione binaria possono essere adattati per le attività di classificazione multiclasse tramite un'ampia gamma di strategie.

Questo componente implementa il metodo one-versus-one, in cui viene creato un modello binario per ogni coppia di classi. In fase di stima, viene selezionata la classe che ha ricevuto il maggior numero di voti. Poiché è necessario adattare n_classes * (n_classes - 1) / 2 i classificatori, questo metodo è in genere più lento rispetto a uno-a-tutti, a causa della sua complessità O(n_classes^2). Tuttavia, questo metodo può essere vantaggioso per algoritmi come algoritmi kernel che non sono scalabili correttamente con n_samples. Ciò è dovuto al fatto che ogni singolo problema di apprendimento comporta solo un piccolo subset di dati, mentre, con un solo rispetto a tutti, viene usato n_classes il set di dati completo.

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 uno o uno.

Si supponga, ad esempio, di configurare un modello di macchina a vettori di supporto a due classi e di specificarlo come input per il componente One-vs-One Multiclass. Il componente creerebbe modelli di macchina a vettori di supporto a due classi per tutti i membri della classe di output. Applica quindi il metodo uno-a-uno per combinare i risultati per tutte le classi.

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

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, è prima necessario configurare ed eseguire il training di un modello di classificazione binaria.

Il modello binario viene connesso al componente Multiclasse One-vs-One. 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 multiclasse 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. Questo componente è disponibile in Machine Learning - Inizializza nella categoria Classificazione .

    Il classificatore One-vs-One Multiclasse non ha 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 a vettori di supporto a due classi o un albero delle decisioni con boosting a due classi.

  3. Aggiungere il componente Train Model (Esegui training modello ) alla pipeline. Connettere il classificatore non sottoposto a training che rappresenta l'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 rispetto a un set di dati di convalida etichettato.

Passaggi successivi

Vedere il set di componenti disponibili per Azure Machine Learning.