Multilabel Adaboost para Matlab
-
26-09-2019 - |
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.
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