Construir um classificador multiclasse é melhor que vários binários?


18

Preciso classificar os URLs em categorias. Digamos que eu tenho 15 categorias nas quais planejo zerar cada URL.

Um classificador de 15 vias é melhor? Onde eu tenho 15 rótulos e gero recursos para cada ponto de dados.

Ou construindo 15 classificadores binários, digamos: Filme ou Não Filme, e use os números que eu recebo dessas classificações para construir um corretor, escolher a melhor categoria e melhorar?

Respostas:


12

Antes de tudo, você deve se perguntar se o seu problema é de várias etiquetas (ou seja, uma única URL pode pertencer a várias classes) ou não (ou seja, uma única URL pode pertencer a apenas uma classe).

Se for o primeiro, use uma bateria de classificadores binários, porque esta é uma maneira padrão de fazer problemas com vários rótulos.

Nesse último caso, a resposta depende de uma combinação de como os dados são exibidos, qual é o objetivo da sua análise e qual método você está usando - provavelmente você deve apenas tentar os dois e selecionar melhor.
Observe apenas que alguns métodos (como o SVM) não podem realmente fazer a classificação multiclasse por causa de como são definidos e, portanto, usam internamente uma bateria de classificadores binários.


minha declaração do problema está considerando a suposição anterior @mbq. Eu sei que existem vários rótulos. e sim, como você disse, decidi optar por 15 classificadores binários, mas novamente, preciso classificá-los para escolher uma melhor categoria. Então, vou tentar realizar outra classificação de nível superior usando os números que obtive da bateria dos classificadores binários. Você vê algum problema?
— precisa

Os SVMs podem executar a classificação multiclasse. O método é muito semelhante à regressão softmax (consulte "Sobre a implementação algorítmica de máquinas vetoriais baseadas em kernel multiclasse").
— user1149913

4

Isso dependerá de como seus dados são dispersos. Há um belo exemplo que foi dado recentemente a uma pergunta semelhante em que o OP queria saber se uma única função discriminante linear seria um classificador melhor para decidir a população A vs B ou C ou uma baseada em funções discriminantes lineares múltiplas que separam A, B e C. Alguém deu um gráfico de dispersão colorido muito bom para mostrar como o uso de dois discriminantes seria melhor que um nesse caso. Vou tentar vincular a ele.


Espere. Estou tendo problemas para encontrá-lo, mas continuarei procurando.
— Michael R. Chernick

Desculpe por não encontrar o link. Imagine uma nuvem de uma cor para a esquerda, outra no meio e uma terceira na direita. Duas linhas discriminantes lineares fariam um bom trabalho em separar o grupo do meio dos da esquerda e da direita, mas nenhuma linha única faria bem. A imagem valeria mais do que todas essas palavras.
— Michael R. Chernick

1
@MichaelChernick É este o link que você está procurando?

Acho que entendi o que você está dizendo: bit.ly/M1NydS - a imagem que você definiu que me deparei nesta apresentação. Classificação de 4 ou 3 vias .. pode ser direta. Mas ... Gostaria de saber se a precisão / recall seria comprometida se a classificação fosse de 15 vias, Dr. Chernick.
— madCode

@ Procrastinator Obrigado por encontrar isso. eu estava com muita dificuldade para localizá-lo e estava demorando muito tempo procurando! Era um post recente, então eu pensei que tit seria fácil de encontrar.
— Michael R. Chernick

1

Alguns métodos lidam bem com multiclasses, florestas aleatórias e MLPs, por exemplo.

Se você não quiser seguir esse caminho, é possível que o ECOC possa executar o 1-vs-All para o seu problema, apenas os testes indicarão.

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.