Partilhar via


Multiclasse One-vs-One

Este artigo descreve como usar o componente One-vs-One Multiclass no designer do Azure Machine Learning. O objetivo é criar um modelo de classificação que possa prever várias classes, usando a abordagem um contra um .

Este componente é útil para criar modelos que predizem três ou mais resultados possíveis, quando o resultado depende de variáveis preditoras contínuas ou categóricas. Esse método também permite que você use métodos de classificação binária para problemas que exigem várias classes de saída.

Mais sobre modelos um contra um

Alguns algoritmos de classificação permitem o uso de mais de duas classes por design. Outros restringem os resultados possíveis a um de dois valores (um modelo binário ou de duas classes). Mas mesmo algoritmos de classificação binária podem ser adaptados para tarefas de classificação multiclasse através de uma variedade de estratégias.

Este componente implementa o método um-versus-one, no qual um modelo binário é criado por par de classes. No momento da previsão, a classe que recebeu mais votos é selecionada. Uma vez que requer o ajuste n_classes * (n_classes - 1) / 2 de classificadores, este método é geralmente mais lento do que um-versus-todos, devido à sua complexidade O(n_classes^2). No entanto, este método pode ser vantajoso para algoritmos, como algoritmos do kernel, que não se dimensionam bem com n_sampleso . Isso ocorre porque cada problema de aprendizagem individual envolve apenas um pequeno subconjunto dos dados, enquanto que, com um contra todos, o conjunto de dados completo é usado n_classes vezes.

Em essência, o componente cria um conjunto de modelos individuais e, em seguida, mescla os resultados, para criar um único modelo que prevê todas as classes. Qualquer classificador binário pode ser usado como base para um modelo um contra um.

Por exemplo, digamos que você configure um modelo de máquina vetorial de suporte de duas classes e forneça isso como entrada para o componente Multiclasse One-vs-One. O componente criaria modelos de máquina vetorial de suporte de duas classes para todos os membros da classe de saída. Em seguida, aplicaria o método um contra um para combinar os resultados para todas as classes.

O componente usa OneVsOneClassifier do sklearn, e você pode aprender mais detalhes aqui.

Como configurar o classificador One-vs-One Multiclass

Este componente cria um conjunto de modelos de classificação binária para analisar várias classes. Para usar esse componente, você precisa configurar e treinar um modelo de classificação binária primeiro.

Você conecta o modelo binário ao componente One-vs-One Multiclass. Em seguida, você treina o conjunto de modelos usando Train Model com um conjunto de dados de treinamento rotulado.

Quando você combina os modelos, One-vs-One Multiclass cria vários modelos de classificação binária, otimiza o algoritmo para cada classe e, em seguida, mescla os modelos. O componente executa essas tarefas mesmo que o conjunto de dados de treinamento possa ter vários valores de classe.

  1. Adicione o componente One-vs-One Multiclass ao seu pipeline no designer. Você pode encontrar esse componente em Machine Learning - Initialize, na categoria Classificação .

    O classificador Multiclasse One-vs-One não tem parâmetros configuráveis próprios. Todas as personalizações devem ser feitas no modelo de classificação binária fornecido como entrada.

  2. Adicione um modelo de classificação binária ao pipeline e configure esse modelo. Por exemplo, você pode usar a máquina vetorial de suporte de duas classes ou a árvore de decisão impulsionada de duas classes.

  3. Adicione o componente Modelo de trem ao seu pipeline. Conecte o classificador não treinado que é a saída de One-vs-One Multiclass.

  4. Na outra entrada de Train Model, conecte um conjunto de dados de treinamento rotulado que tenha vários valores de classe.

  5. Envie o pipeline.

Resultados

Após a conclusão do treinamento, você pode usar o modelo para fazer previsões multiclasse.

Como alternativa, você pode passar o classificador não treinado para o modelo de validação cruzada para validação cruzada em relação a um conjunto de dados de validação rotulado.

Próximos passos

Consulte o conjunto de componentes disponíveis para o Azure Machine Learning.