Multiclasse Um-vs-Um

Este artigo descreve como utilizar o componente One-vs-One Multiclass no estruturador do Azure Machine Learning. O objetivo é criar um modelo de classificação que possa prever múltiplas classes com a abordagem um-para-um .

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

Mais informações sobre modelos um-para-um

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

Este componente implementa o método um-contra-um, no qual é criado um modelo binário por par de classes. No momento da predição, a classe que recebeu mais votos está selecionada. Uma vez que é necessário ajustar n_classes * (n_classes - 1) / 2 classificadores, este método é normalmente mais lento do que um contra todos, devido à sua complexidade O(n_classes^2). No entanto, este método pode ser vantajoso para algoritmos como algoritmos de kernel que não se dimensionam bem com n_samples. Isto acontece porque cada problema de aprendizagem individual envolve apenas um pequeno subconjunto dos dados, ao passo que, com um versus todos, o conjunto de dados completo é utilizado n_classes vezes.

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

Por exemplo, digamos que configura um modelo de Máquina de Vetor de Suporte de Duas Classes e o fornece como entrada para o componente Multiclasse Um-vs-Um. O componente criaria modelos de máquina de vetor 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 utiliza OneVsOneClassifier do sklearn e pode obter 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 múltiplas classes. Para utilizar este componente, primeiro tem de configurar e preparar um modelo de classificação binária .

Pode ligar o modelo binário ao componente One-vs-One Multiclass. Em seguida, vai preparar o conjunto de modelos com a opção Preparar Modelo com um conjunto de dados de preparação etiquetado.

Quando combina os modelos, a Multiclasse One-vs-One cria vários modelos de classificação binária, otimiza o algoritmo para cada classe e, em seguida, intercala os modelos. O componente faz estas tarefas mesmo que o conjunto de dados de preparação possa ter vários valores de classe.

  1. Adicione o componente One-vs-One Multiclass ao seu pipeline no estruturador. Pode encontrar este componente em Machine Learning – Inicializar, na categoria Classificação .

    O classificador One-vs-One Multiclass não tem parâmetros configuráveis próprios. Todas as personalizações têm de ser efetuadas 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, pode utilizar a Máquina de Vetor de Suporte de Duas Classes ou a Árvore de Decisões Avançada de Duas Classes.

  3. Adicione o componente Train Model (Preparar Modelo ) ao pipeline. Ligue o classificador não preparado que é a saída da Multiclasse One-vs-One.

  4. Na outra entrada de Preparar Modelo, ligue um conjunto de dados de preparação etiquetado que tenha vários valores de classe.

  5. Submeta o pipeline.

Resultados

Após a conclusão da preparação, pode utilizar o modelo para fazer predições de várias classes.

Em alternativa, pode transmitir o classificador não preparado para o Modelo de Validação Cruzada para validação cruzada num conjunto de dados de validação etiquetado.

Passos seguintes

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