Entendi que é preciso usar o LinearSVC porque o OneVsRest tem suporte para ele. Mas fiquei com dúvida sobre como ele funciona por baixo dos panos. É da mesma forma que o MultinomialNB?
Entendi que é preciso usar o LinearSVC porque o OneVsRest tem suporte para ele. Mas fiquei com dúvida sobre como ele funciona por baixo dos panos. É da mesma forma que o MultinomialNB?
Olá, Lucas! Tudo bom com você? Espero que sim!
Primeiro, desculpe a demora em te responder.
O LinearSVC faz parte de um conjunto de modelos de máquina de vetor de suporte, do inglês Support Vector Machine (SVM), que é um modelo de aprendizado de máquina supervisionado que soluciona problemas de classificação de grupos. Exemplificando, imagine uma situação com 2 grupos distintos e queremos um classificador que, dadas as coordenadas, ele classifique qual grupo pertence um objeto. Dados distribuídos no plot:
O SVM coleta os pontos de cada variável e gera um hiperplano que melhor vai separar os dois grupos.
Podemos notar que a reta cinza é o limiar de separação entre o grupo azul e verde, e assim, tudo que está na parte direita a partir da reta cinza são objetos bola-vermelho e tudo que está na esquerda são triângulo-verde. Note que ela realiza uma separação linear entre os grupos, mas existem outros tipos de separação, como a não linear, que é um conteúdo um pouco mais avançado.
Aprofundando mais na classificação, como explica a própria documentação, o LinearSVC é um SVM com kernel definido como linear e sua classificação se dá por uma estratégia multiclasse que compara um contra o resto (em inglês, One-Vs-Rest Classifier), ajustando o classificador por classes, de modo que, para cada classificador, a classe é ajustada em relação a todas as outras classes. Se quiser saber mais sobre o One-Vs-Rest Classifier vou deixar a explicação do funcionamento na documentação do SKlearn. Já a função de decisão do LinearSVC tem a formulação matemática baseada no conceito de Hinge Loss, conforme explica a documentação.
O algoritmo MultinomialNB implementa o algoritmo Naive Bayes que se baseia no teorema de Bayes com a superposição ingênua entre cada par de características dado o valor da variável de classe, para saber mais sobre esse método, você pode ver o guia da documentação do método MultinomialNB. Então, MultinomialNB e Linear SVC são duas formas de classificação distintas, principalmente se olharmos por debaixo dos panos.
Se tiver mais dúvidas, você pode consultar o guia da documentação para modelos SVM. OBS: Infelizmente todos os links para a documentação estão em inglês, então, caso tenha dificuldade em relação a este idioma, indico que tente utilizar o tradutor do navegador, para conseguir efetuar a leitura em português, mas qualquer dúvida ou dificuldade estarei à disposição
Eu espero ter te ajudado! Qualquer outra dúvida estarei disposta a ajudar ;-)
Bons estudos!