Facebook pixel
>Blog>Ciência de Dados
Ciência de Dados

Algoritmos de Classificação: o que são e como funcionam

Esse artigo pretende mostrar como conceitos de machine learning não são necessariamente complexos.

Esse artigo pretende mostrar como conceitos de machine learning não são necessariamente complexos. Pelo contrário, alguns conceitos são fáceis de entender e de aplicar.

Quando você possui um conjunto de dados divididos em grupos ou classes e deseja prever a classe de novos objetos adicionados a base, isto é classificar.

Veja este exemplo de classificação na prática: imagine que você deseja catalogar uma lista de filmes por gênero. Neste caso, as classes seriam algo como terror, drama, comédia, etc. O trabalho de compreender o padrão existente entre os filmes de uma determinada classe e determinar a qual classe outros filmes pertencem, é classificar. Neste artigo, focaremos em algoritmos de classificação. Mas o que é isso? Segue lendo que você já vai entender! 🙂

O que são algoritmos de classificação?

Algoritmo, também chamado de método, nada mais é do que um passo-a-passo a ser seguido para realizar alguma tarefa específica. E você pode executar esse passo-a-passo como quiser: fazendo as contas na mão, usando uma calculadora. Agora, quando um computador é capaz de fazer estas tarefas com base nas informações fornecidas a ele, isso é chamado de machine learning. Além do tempo de automatizarem estes processos, os algoritmos já estão programados e prontos para serem usados. O trabalho de um cientista de dados em projetos deste tipo consiste em:

  • Entender as especificidades do problema em questão;
  • Encontrar ou construir uma base de dados adequada para esta tarefa;
  • Escolher o melhor algoritmo para cada um dos casos.

Abordaremos em maior profundidade o primeiro e o terceiro ponto, a seguir.

Qual a diferença entre classificação e clusterização?

Essa é uma dúvida bem comum entre quem está começando a estudar ciência de dados. Para compreender melhor a diferença entre estes conceitos, responda a seguinte pergunta: você quer agrupar os dados já presentes no seu conjunto, ou quer usá-los para construir um modelo capaz de classificar novos dados?

Isso vai determinar se você está lidando com aprendizagem não supervisionada (agrupar os dados), ou aprendizagem supervisionada (gerar um modelo capaz de classificar dados futuros).

O método de classificação precisa ser ajustado de acordo com os dados, para entender os padrões e poder classificá-los. Este conceito é chamada de treinamento.

Depois desse treino, o modelo pode ser utilizado para prever a classe dos novos dados de classe desconhecida. Por isso, os métodos de aprendizagem supervisionada precisam de um conjunto de dados previamente classificados no momento do treinamento. Já os modelos de aprendizagem não supervisionada, como os utilizados para clusterizar dados, são capazes de traçar inferências sem classificações prévias nos dados.

Métodos de aprendizagem supervisionada

Como dito anteriormente, estes algoritmos são utilizados quando um conjunto de dados já classificados é utilizado para construir um modelo capaz de prever a classificação de outros dados futuros e, por isso, também são conhecidos como modelos preditivos.

Nossa metodologia de ensino tem eficiência comprovada
Nossa metodologia de ensino tem eficiência comprovada Aprenda uma nova língua na maior escola de idiomas do mundo! Conquiste a fluência no idioma que sempre sonhou com uma solução de ensino completa. Quero estudar na Fluency
Nossa metodologia de ensino tem eficiência comprovada

Na prática, algoritmos como este são utilizados para prever uma aumento ou uma queda no preço de ações específicas na bolsa de valores, por exemplo.

Um detalhe importante ao escolher um algoritmo de aprendizagem supervisionada: alguns deles são para classificação binária (apenas duas classes) enquanto outros são generalizáveis para múltiplas classes. Vamos apresentar alguns a seguir.

k-vizinhos mais próximos

Um método para múltiplas classes bastante simples, o k-vizinhos mais próximos (do inglês, k-nearest neighbours ou kNN) baseia-se na distância entre pontos para classificar valores.

Uma nota importante: em uma, duas ou três dimensões, é possível plotar nossos pontos em um gráfico, traçar um segmento que liga dois pontos e medir fisicamente a distância entre eles. Acima de três dimensões, a distância deve ser percebida como um conceito mais abstrato: a fórmula é basicamente a mesma, mas perde-se o sentido físico.

Na prática, é bem comum utilizarmos mais do que 3 atributos, ou dimensões, para construir um modelo, mas na figura usada como exemplo, há somente dois atributos sendo considerados, x1 e x2.

Para construir um modelo usando kNN você só precisa escolher um número e averiguar qual classe mais se repete entre os k vizinhos mais próximos (e já classificados) do valor analisado. Observe na figura abaixo, onde queremos classificar o dado vermelho:

Representação visual do método. Fonte: Ítalo José

Para k=3, temos 2 vizinhos na classe roxa e 1 na classe amarela. Nesse caso, a classe do dado vermelho seria roxa. Já para k=6, são 4 amarelos contra 2 roxos, logo, o dado vermelho passaria a ser amarelo.

A arbitrariedade na escolha do valor K é uma desvantagem deste método de classificação, contribuindo para sua complexidade.

Empates também são uma preocupação quando este algoritmo é utilizado: e se para k=6 tivéssemos 3 vizinhos em uma classe e 3 em outra? É melhor escolher um número que não permita isso.

Caso queira se aprofundar na classificação por kNN, aqui você encontra uma explicação mais detalhada sobre o funcionamento deste algoritmo.

Máquina de vetores de suporte

Muito conhecido pela sigla em inglês (SVM, de support vector machine), esse algoritmo é usado para classificação binária, ou seja, é usado em problemas nos quais existem apenas duas classes. Ele propõe traçar uma linha que divide o conjunto de dados em dois:

  • Os dados de um lado da linha são classificados de uma forma.
  • Os valores do outro lado são classificados de outra forma.

A partir de 4 dimensões, estas linhas passam a ser um hiperplano, usualmente representadas no plano visual por linhas tracejadas.

Diversos hiperplanos podem ser traçados, todos eles separando nossos dados de treinamento por classe. A questão é: como equacionar o melhor hiperplano possível para cada caso?

A resposta está nos vetores de suporte, que dão nome ao algoritmo. Vetores de suporte é o nome que damos aos pontos que estão mais próximos da fronteira entre as classes. Observe na figura abaixo:

Nossa metodologia de ensino tem eficiência comprovada
Nossa metodologia de ensino tem eficiência comprovada Aprenda uma nova língua na maior escola de idiomas do mundo! Conquiste a fluência no idioma que sempre sonhou com uma solução de ensino completa. Quero estudar na Fluency
Nossa metodologia de ensino tem eficiência comprovada
SVM. Fonte: Código fluente

O algoritmo tenta maximizar a margem entre os vetores de suporte e o hiperplano que serve de fronteira entre as classes.

Regressão Logística

Esse algoritmo é um classificador binário, assim como o SVM.

A equação logística é dada por:

Ao plotarmos essa equação para valores de x entre -10 e 10, por exemplo, temos o seguinte gráfico:

A ideia da regressão logística é ajustar essa equação com múltiplas variáveis, a partir de uma combinação linear dos vários atributos que os nossos dados possuem. O ? da equação torna-se a1?1+a2?2+⋯+a?x?+b.

O treinamento do modelo serve para encontras os valores desses parâmetros (a1, a2… a?, b) que melhor se adequem aos dados. Com a equação pronta, o modelo consegue prever um valor de y (saída) entre 0 e 1, a depender dos valores de (x1, x2, …, x?) fornecidos como entrada.

  • Se a saída for menor que 0,5: o modelo classifica o elemento na classe 0.
  • Se a saída for maior que 0,5: o modelo classifica o elemento na classe 1.

Árvore de decisão

Esse algoritmo é relativamente próximo do processo de tomada decisão natural do ser humano. Quando você decide o que fazer em um sábado qualquer, por exemplo, seu processo decisório parece com algo assim:

  • Se o tempo estiver chuvoso, vou ficar em casa e assistir um filme.
  • Se estiver nublado, sem chuva, vou sair para correr no parque.
  • Se estiver ensolarado e a temperatura estiver muito alta, vou à praia.
  • Se estiver ensolarado, mas não muito quente, vou sair para correr no parque.

Isso é uma árvore de decisão bem simples. Note que a quantidade de variáveis é ilimitada (no nosso caso, usamos temperatura e tempo, mas outras variáveis como dinheiro disponível também por ser consideradas se assim desejássemos), assim como a quantidade de classes (aqui, usamos filme/praia/parque).

Representação gráfica da árvore de decisão

A tecnologia, no entanto, proporciona, torna modelos de Machine Learning muito mais eficientes que árvores mentais na hora de tomar decisões: com um computador, podemos construir e avaliar diversas árvores, usando os chamados métodos de comitê (ensemble).

Métodos de comitê

Nesses métodos, diferentes árvores são geradas, a partir de amostragens do conjunto de dados original, tanto em colunas quanto linhas. Com vários processos decisórios ocorrendo simultaneamente, decisões erradas tendem a se diluir e, em média, obtemos resultados mais confiáveis do que com uma árvore só. Além disso, evitamos que variáveis de maior peso deixem o modelo enviesado, e que dados com valores estranhos (outliers) atrapalhem a modelagem. No final, a categoria de um objeto é aquela atribuída pela maioria das árvores do comitê.

Eu escrevi um pouco mais sobre árvores de decisão e detalhei os métodos de comitê mais conhecidos nesse artigo aqui. Nele, também falo de um outro algoritmo chamado Naïve Bayes.

Aprenda mais sobre Machine Learning!

A Awari é uma plataforma completa com mentorias individuais, cursos com aulas ao vivo e suporte de carreira para você dar seu próximo passo profissional.

Conheça nossos cursos, que vão desde Trilhas de Data Science, Gestão de Produtos, Design e Programação. Saiba mais sobre a nossa jornada personalizada e materiais complementares feitos por especialistas no mercado.

Nossa metodologia de ensino tem eficiência comprovada
Nossa metodologia de ensino tem eficiência comprovada Aprenda uma nova língua na maior escola de idiomas do mundo! Conquiste a fluência no idioma que sempre sonhou com uma solução de ensino completa. Quero estudar na Fluency
Nossa metodologia de ensino tem eficiência comprovada
Nossa metodologia de ensino tem eficiência comprovada
Nossa metodologia de ensino tem eficiência comprovada

Aprenda uma nova língua na maior escola de idioma do mundo!

Conquiste a fluência no idioma que sempre sonhou com uma solução de ensino completa.

+ 400 mil alunos

Método validado

Aulas

Ao vivo e gravadas

+ 1000 horas

Duração dos cursos

Certificados

Reconhecido pelo mercado

Quero estudar na Fluency

Sobre o autor

A melhor plataforma para aprender tecnologia no Brasil

A Awari é a melhor maneira de aprender tecnologia no Brasil.
Faça parte e tenha acesso a cursos com aulas ao vivo e mentorias individuais com os melhores profissionais do mercado.