Modelos de Machine Learning: uma comparação entre os modelos — Parte 1

Bruno Pellanda
gb.tech
Published in
5 min readJul 9, 2021
Metade de um MacBookPro com pastas abertas e um café ao lado | Foto de Artem Sapegin na Unsplash

Introdução

No universo do machine learning temos diversas técnicas e ferramentas para extrair o melhor resultado possível a partir do problema que estamos resolvendo. Mas como podemos saber qual é o melhor algoritmo para aquele problema em específico? Ou ainda, os dados que temos atendem as premissas que o algoritmo pressupõe?

Com base nesses questionamentos, resolvi fazer um levantamento de alguns modelos de machine learning e, para cada um deles, buscar o que eles trazem de premissas de dados, algumas vantagens, desvantagens, como lidam com dados faltantes e outliers além de seus propósitos, tipo de aprendizado e exemplos de uso.

Parte 1

Nesse primeiro artigo, irei abordar 7 modelos, sendo eles:

  • Classificador Naive Bayes
  • Máquina de Suporte Vetorial
  • Regressão Linear
  • Regressão Logística
  • Árvores de Decisão e Classificação
  • Random Forests

Vamos nessa?

Classificador Naive Bayes (Naive Bayes classifier)

Os classificadores Naive Bayes são uma família de classificadores probabilísticos simples, baseados na aplicação do teorema de Bayes, com fortes suposições de independência entre as variáveis. [1]

Premissas

  • Variáveis são independentes

Vantagens

  • Boa performance com variáveis categóricas
  • Convergência rápida: menos tempo de treino
  • Bom com datasets para treino de tamanho médio a grande
  • Bom para datasets com diversas variáveis

Desvantagens

  • Variáveis correlacionadas afetam a performance

Dados Faltantes

  • Não necessita tratamento (ignora os dados faltantes)

Outliers

  • Robusto a outliers

Propósitos

  • Classificação
  • Classificação multiclasse

Tipo de Aprendizado

  • Supervisionado

Exemplos de uso

  • Análise de sentimentos
  • Categorização de documentos
  • Filtragem de spams (e-mail)

Máquinas de Suporte Vetorial (Support Vector Machines) — SVM

Uma máquina de vetores de suporte é um conceito na ciência da computação para um conjunto de métodos de aprendizado supervisionado que analisam os dados e reconhecem padrões, usado para classificação e análise de regressão. Em outras palavras, o que uma SVM faz é encontrar uma linha de separação - mais comumente chamada de hiperplano - entre dados de duas classes. Essa linha busca maximizar a distância entre os pontos mais próximos em relação a cada uma das classes. [2]

Premissas

  • Nenhuma

Vantagens

  • Bom para datasets com mais variáveis que observações
  • Boa performance
  • Bom ‘modelo de prateleira’, em geral, para vários cenários
  • Consegue aproximar funções não lineares complexas

Desvantagens

  • Necessita bastante tempo para treino
  • Necessita conhecimento e ajustes para determinar qual kernel é o melhor para modelos não lineares

Dados Faltantes

  • Sensível a dados faltantes

Outliers

  • Robusto a outliers

Propósitos

  • Classificação
  • Regressão

Tipo de Aprendizado

  • Supervisionado

Exemplos de uso

  • Previsão de preço de ações
  • Análise de risco para crédito

Regressão Linear (Linear Regression)

Em estatística ou econometria, regressão linear é uma equação para se estimar a condicional de uma variável y dados os valores de algumas outras variáveis x. A regressão, em geral, tem como objetivo tratar de um valor que não se consegue estimar inicialmente. [3]

Premissas

  • Relação linear entre variáveis e o target (objetivo)
  • Os erros residuais são distribuídos normalmente
  • Homocedasticidade

Vantagens

  • Interpretabilidade
  • Poucos ajustes necessários

Desvantagens

  • Variáveis correlacionadas afetam a performance
  • Necessário fazer processos de tratamento das variáveis (feature engineering)

Dados Faltantes

  • Sensível a dados faltantes

Outliers

  • Sensível a outliers

Propósitos

  • Regressão

Tipo de Aprendizado

  • Supervisionado

Exemplos de uso

  • Previsão de vendas
  • Precificação de casas

Regressão Logística (Logistic Regression)

A regressão logística é uma técnica estatística que tem como objetivo produzir, a partir de um conjunto de observações, um modelo que permita a predição de valores tomados por uma variável categórica, frequentemente binária, a partir de uma série de variáveis explicativas contínuas e/ou binárias. [4]

Premissas

  • Relação linear entre variáveis e o logaritmo das probabilidades
  • Os erros residuais são distribuídos normalmente
  • Homocedasticidade

Vantagens

  • Interpretabilidade
  • Poucos ajustes necessários

Desvantagens

  • Variáveis correlacionadas afetam a performance
  • Necessário fazer processos de tratamento das variáveis (feature engineering)

Dados Faltantes

  • Potencialmente sensível a dados faltantes

Outliers

  • Sensível a outliers

Propósitos

  • Classificação

Tipo de Aprendizado

  • Supervisionado

Exemplos de uso

  • Avaliação de risco
  • Prevenção de fraudes

Árvores de Classificação e Regressão (Classification and Regression Trees)

O aprendizado de árvore de decisão é uma das abordagens de modelagem preditiva usadas em estatística, mineração de dados e aprendizado de máquina. Ele usa uma árvore de decisão para ir das observações sobre um item às conclusões sobre o valor-alvo do item. [5]

Premissas

  • Nenhuma

Vantagens

  • Interpretabilidade
  • Podemos avaliar a importância das variáveis
  • Menos pré-processamento dos dados necessário

Desvantagens

  • Não prediz uma saída contínua (para regressões)
  • Não faz predições além do intervalo de respostas utilizadas durante o treino
  • Overfitting

Dados Faltantes

  • Algumas implementações não necessitam tratamento de dados faltantes (Scikit learn necessita)

Outliers

  • Robusto a outliers

Propósitos

  • Classificação
  • Regressão

Tipo de Aprendizado

  • Supervisionado

Exemplos de uso

  • Avaliação de risco
  • Prevenção de fraudes

Random Forest

Random Forest ou random decision forests são um método de aprendizagem em conjunto para classificação, regressão e outros problemas que funcionam construindo uma infinidade de árvores de decisão no momento do treinamento. Para problemas de classificação, a saída do Random Forest é a classe selecionada pela maioria das árvores. Para problemas de regressão, a média ou previsão média das árvores individuais é retornada. [6]

Premissas

  • Nenhuma

Vantagens

  • Interpretabilidade
  • Retorna a importância das variáveis
  • Requer menos pré-processamento dos dados
  • Não tem problema de overfit (em teoria)
  • Boa performance/acurácia
  • Robusta a ruídos
  • Poucos ajustes de parâmetros necessários
  • Apta para quase todos problemas de machine learning

Desvantagens

  • Não prediz uma saída contínua (para regressões)
  • Não faz predições além do intervalo de respostas utilizadas durante o treino
  • Enviesada para variáveis categóricas com várias categorias
  • Enviesada em problemas multiclasse para classes mais frequentes

Dados Faltantes

  • Algumas implementações não necessitam tratamento de dados faltantes (Scikit learn necessita)

Outliers

  • Robusto a outliers

Propósitos

  • Classificação
  • Regressão

Tipo de Aprendizado

  • Supervisionado

Exemplos de uso

  • Avaliação de risco de crédito
  • Prever quebra de peças mecânicas (indústria automobilística)
  • Avaliar a probabilidade de desenvolver uma doença crônica (saúde)
  • Previsão do número médio de compartilhamentos de mídia social

Para quem chegou até aqui, vou deixar um spoiler para o próximo artigo, no qual falaremos dos seguintes algoritmos:

  • Gradient Boosted Trees
  • KNN (K-nearest neighbours)
  • Adaboost
  • Redes Neurais (Neural Networks)
  • Clusterização K-means (K-Means Clustering)
  • Clusters hierárquicos (Hierarchical Clustering)
  • PCA

Referências

[1] https://en.wikipedia.org/wiki/Naive_Bayes_classifier

[2] https://pt.wikipedia.org/wiki/M%C3%A1quina_de_vetores_de_suporte

[3] https://pt.wikipedia.org/wiki/Regress%C3%A3o_linear

[4] https://pt.wikipedia.org/wiki/Regress%C3%A3o_log%C3%ADstica

[5] https://en.wikipedia.org/wiki/Decision_tree_learning

[6] https://en.wikipedia.org/wiki/Random_forest

--

--

Bruno Pellanda
gb.tech
Writer for

Cientista de dados, matemático industrial e enxadrista