Awari

Algoritmos de Classificação: uma introdução

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

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. Neste artigo, focaremos em algoritmos de classificação. Mas o que é isso? Segue lendo que você já vai entender!

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.

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.

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:

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!

O programa intensivo de Data Science da Awari aborda aborda diferentes algoritmos de classificação e outros conceitos de Machine Learning em apenas 4 meses!

Nelson Ewert

Escrito por

Nelson Ewert

Foi aluno do curso de Data Science da Awari.