Pergunta

Atualmente, estou procurando uma implementação multilabel adaboost para o MATLAB ou uma técnica para usar com eficiência uma implementação de dois rótulos para o caso Multilabel. Qualquer ajuda nesse assunto seria apreciada.

Foi útil?

Solução

Você pode usar a mesma abordagem usada em Suportar máquinas vetoriais. Os SVMs são originalmente classificadores binários, várias abordagens foram propostas para lidar com dados multiclasse:

  • um contra-tudo: Construa um classificador binário por classe e treine com instâncias nesta classe como casos positivos e todas as outras instâncias como casos negativos (isto é: 1-VS-NOT1, 2-VS-NOT2, 3-VS-NOT3). Finalmente, use a probabilidade posterior de cada classificador para prever a classe.

  • um contra-um-um: Construa vários classificadores binários para cada par de classes (isto é: 1-VS-2, 1-VS-3, 2-VS-3, ..) simplesmente treinando nas instâncias de ambas as classes. Em seguida, você pode combinar os resultados individuais usando um voto majoritário.

  • Erro corrigindo códigos de saída: Com base na teoria da correção de erros (Hamming Code e outros), ele depende da codificação da saída de vários classificadores binários usando alguma redundância para aumentar a precisão.

Observe que estes são métodos genéricos e podem ser aplicados a qualquer classificador binário.

Caso contrário, você pode procurar uma implementação específica de adaboost multiclasse, que tenho certeza de que existem muitas por aí. Uma pesquisa rápida revelou esta: GentleadLeadaboosting multiclasse

Outras dicas

Você pode usar adaboost.m2, é um adaboost multiclasse, você pode encontrar uma implementação na caixa de ferramentas BALU aqui o comando é Bcl_adaboost Esta caixa de ferramentas tem outras coisas úteis, lembre -se de fazer referência. Espero que ajude.

Teoricamente falando, o único aumento correto de várias classes é o definido em Uma teoria do aumento de multiclasse

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top