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.
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.
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.
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.
Nell'altro input di Train Model connettere un set di dati di training etichettato con più valori di classe.
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.