O desbalanceamento dos dados pode enviesar a máquina para os padrões que ocorrem com maior frequência. Embora seja conhecido que balancear os dados antes de apresentá-lo à máquina de aprendizagem seja vantajoso para fins de generalização, tal procedimento é pouco discutido para tarefas de regressão.
Também é importante destacar que não existe um procedimento capaz de encontrar o melhor algoritmo de balanceamento para todos os problemas (referência); e, mais, avaliar todos os algoritmos existentes requer muito esforço computacional. Além disso, a integração ideal entre algoritmos de balanceamento e de aprendizagem de máquina depende dos dados sob análise.
apresenta uma abordagem automática para a escolha da técnica de balanceamento e do algoritmo de aprendizagem mais apropriados por problema. A abordagem chama-se Meta-IR e isenta o usuário de avaliar cada possível par de técnica de balanceamento e de algoritmo de apresentarem por banco de dados. Vale salientar que a abordagem proposta é extensível para outra configurações do pipeline, tais como pré-processamento, detecção de outiliers e parâmetros da máquina de aprendizagem.
Para tanto, a proposta se vale de meta-aprendizagem e de aprendizagem multi-rótulo para extrair informações de várias tarefas com a finalidade de construir uma representação capaz de recomendar os melhores algoritmos por banco de dados.
A figura a seguir explicita vantagens da abordagem proposta em relação aos sistemas tradicionais de AutoML (Automated Machine Learning).
Vê-se que os sistemas tradicionais realizam grande parte do processamento quando recebem o banco de dados (figura (b)); assim, o processamento em tempo de produção (online) é muito alto. Por outro lado, a proposta realiza a maior parte do processamento offline (e o realiza apenas uma vez), agilizando a resposta em tempo de produção.
Os resultados experimentais mostram a vantagem do sistema proposto (Meta-IR) quando comparado a sistemas de AutoML, tais como: Auto-sklearn, H2O, TPOT, FLAML, LightAutoML e Nive AutoML.
Pré-processar os dados, antes de treinar uma máquina de aprendizagem, é uma etapa vital para se conseguir extrair o melhor de cada máquina. São várias as formas de pré-processar os dados e esta tarefa depende da aplicação em investigação. Por exemplo: em processamento de linguagem natural, é comum realizar a tokenization que objetiva separar sentenças em unidades menores, tais como palavras.
O foco desta post é o pré-processamento dos atributos com o objetivo de colocá-los em uma mesma escala, ou dentro de um mesmo critério, com o intuito de minimizar a influência indevida de um atributo sobre o outro. Esta tarefa é realizada por técnicas de scaling, muitas vezes chamadas de normalização.
Min-max scaler é a mais utilizada e difundida técnicas de scaling. Nela, cada um dos atributos é ajustado para caber em um intervalo, geralmente, entre 0 e 1. Outras técnicas de scaling permeiam as aplicações e, entre elas, destaco: standard scaler, maximum absolute scaler, robust scaler e quantile transformer.
Diante desse contexto com várias técnicas de scaling e vários classificadores, alguns questionamentos emergem:
Vale a pena normalizar os dados?
A escolha da técnica de scaling influencia no desempenho dos modelos de aprendizagem?
Qual técnica escolher para um dado classificador?
Quais classificadores são mais sensíveis às escolhas das técnicas de scaling?
Estas e outras questões são abordadas no artigo de Amorim et al. que realiza uma ampla avaliação usando 82 bancos de dados públicos e cinco técnicas de scaling. Foi mostrado que escolher bem a técnica de scaling melhora a precisão de classificadores. Em particular, algoritmos baseados em árvores de decisão são pouco sensíveis à escolha da técnicas de scaling. Logo, em alguns casos, não normalizar pode ser a melhor opção.
O nível de desbalancamento do banco de dados é um fator que influencia a escolha da técnica de scaling. O standard scaler obteve melhor desempenho em bancos de dados com baixos níveis de desbalanceameto, enquanto o quantile transformer apresenta-se como a melhor escolha para os níveis médio e alto de desbalanceamento.
Os autores também ressaltam que a melhor técnica de scaling para um sistema de múltiplos classificadores coincide com a melhor técnica empregada por seu classificador-base. Assim, a definição da melhor técnica de scaling, para um sistema de múltiplos classificadores, pode ser realizada avaliando o comportamento das técnicas em um classificador-base, o que torna todo o processo mais rápido e barato.
Sabendo que o emprego de técnicas de scaling é bastante negligenciado nas mais diversas aplicações, Amorim et al. colocam luz nesta questão e mostram que devemos ficar alertas em relação a esse ponto sensível, pois a escolha da técnica influencia significativamente o desempenho de modelos de classificação.
Algoritmos de redução de instâncias têm o objetivo de representar um conjunto de dados usando poucas instâncias. Dado um conjunto de dados (T), deseja-se obter um conjunto reduzido (S), de forma que o número de instâncias em S seja menor do que o número de instâncias em T, i.e., |S|<|T|. O novo conjunto S substituirá o conjunto T; logo, S não é qualquer subconjunto de T, mas, um conjunto que mantenha as informações do conjunto original e que o represente.
Esses algoritmos de redução são comumente aplicados na etapa de pré-processamento, antes do treinamento de uma máquina de aprendizagem. Ao diminuir o número de instâncias de um conjunto de dados, a quantidade de memória requerida para armazenar esses dados é reduzida. Além disso, máquinas de aprendizagem podem ser treinadas com maior agilidade, pois precisam extrair informações de uma quantidade menor de instâncias. Em especial, os algoritmos de aprendizagem baseados em instância (instance-based learning), tal como o k-Nearest Neighbors (kNN), podem se beneficiar bastante, visto que esses algoritmos são reconhecidamente lentos em operação.
Algoritmos de redução de instância são categorizados em: seleção de instâncias e geração de protótipos. Na seleção, o conjunto reduzido S é um subconjunto de T. Já na geração, o conjunto S é formado por instâncias que não necessariamente existem em T, ou seja, o algoritmo pode criar novas instâncias.
Seleção de instâncias
Essa abordagem busca pelo melhor subconjunto de instâncias (S) em um conjunto de dados (T), de forma que S ⊂ T. Para realizar tal tarefa, uma função de custo que define o que significa “melhor” subconjunto precisa ser definida. Por exemplo, no algoritmo de seleção de instâncias Edited Nearest Neighbors (ENN), a função de custo tem a tarefa de remover todas as instâncias que não são corretamente classificadas por seus vizinhos mais próximos. Outro exemplo é o Condensed Nearest Neighbors (CNN) que foca em remover instâncias que estão mais próximas dos centros das classes.
As figuras acima mostram os subconjuntos gerados pelos algoritmos ENN e CNN, a partir do conjunto de dados mostrado na primeira figura à esquerda. Pode-se notar que o ENN remove poucas instâncias e que a maioria das instâncias removidas pertence a regiões de borda. Logo, o ENN expõe mais claramente as fronteiras entre as classes.
A função de custo do CNN foca na remoção de áreas seguras, ou seja, agrupamentos de instâncias que têm a mesma classe. Por isso, na figura que mostra o resultado da aplicação do CNN, é possível perceber áreas vazias longe das fronteiras entre as classes. Esse algoritmo representa o conjunto de dados original usando bem menos instâncias do que o ENN.
Geração de protótipos
Os algoritmos de geração de protótipos criam instâncias artificiais que são usadas para representar o conjunto de dados original. Assim, ao invés de selecionar instâncias que existem no conjunto original, como os algoritmos de seleção de instâncias, os algoritmos de geração produzem novas instâncias (protótipos) que não existem no conjunto de dados inicial.
Para ilustrar como um protótipo pode ser criado para representar algumas instâncias, é possível se valer da noção de algoritmos de agrupamento (clustering), mesmo sabendo que esses pertencem a um espectro maior de aplicações. Os algoritmos de agrupamento fornecem um conjunto de grupos, e cada grupo pode ser representado por seu centro. Logo, pensando em reduzir as instâncias, pode-se representar todo o conjunto de dados original usando apenas os centros dos grupos. Assim, o número de protótipos no conjunto reduzido S é definido pela quantidade de grupos gerada pelo algoritmo de agrupamento.
A ideia é criar esses novos protótipos de forma que sejam necessários poucos deles para cobrir o espaço de características. Desta forma, o posicionamento desses protótipos nesse espaço é de suma importância. Muitas vezes, esse posicionamento é definido por um processo de otimização, tal como no algoritmo de classificação supervisionada learning vector quantization que é a pedra angular de diversas técnicas de geração de protótipos.
Discussão: Seleção versus Geração
A maioria das técnicas de seleção de instâncias e de geração de protótipos foi desenvolvida tendo como alvo o algoritmo kNN. Mas, vale destacar que essas técnicas podem ser usadas, eficientemente, como pré-processamento em outras abordagens de aprendizagem.
Para algumas aplicações, não é plausível gerar dados artificiais a partir dos dados originais. Logo, as técnicas de seleção seriam mais indicadas para esses casos. De maneira geral, as técnicas de seleção requerem menos poder computacional do que as de geração. Por outro lado, as técnicas de geração conseguem representar os dados originais de maneira mais concisa e, em geral, obtêm melhor precisão do que as de seleção.
Embora os algoritmos de redução de instâncias sejam rotineiramente usados na etapa de pré-processamento, antes do treinamento de uma máquina de aprendizagem, eles podem ser aplicados em outros cenários. Em [Cruz et al. 2018, Cruz et al. 2017], algoritmos de redução foram aplicados no contexto de combinação de classificadores.
A escolha do tema é uma etapa desafiadora e deve ser realizada antes do início da pesquisa. A diversidade de possíveis temas é imensa. Porém, independente da escolha, é importante verificar algumas questões que podem indicar se um caminho promissor será trilhado. Seguem algumas perguntas (figura a seguir) que devem ser levadas em consideração para ajudar nessa escolha:
Afinco e dedicação passam a ser palavras de ordem quando se trabalha em algo que se tem interesse, algo que supõe-se promissor. Essa motivação extra, que advém do prazer associado ao desenvolvimento de algo que lhe é importante, contribuí, uma enormidade, para se atingir o objetivo. Escolha um tema do seu interesse ou se interesse por um tema que lhe foi sugerido.
Caso você ainda não tenha conhecimento amplo sobre o tema, você deve estar disposto a amadurecer rápido. Esse amadurecimento será guiado pelo orientador. Ele lhe indicará referências (artigos, livros, teses, entre outras) que, por sua vez, devem ser de fácil acesso.
Outra questão diz respeito aos dados para realizar a pesquisa. Se os dados estiverem disponíveis, um trabalho a menos. Mas, se você tiver que coletar os dados, tenha o cuidado de analisar a viabilidade e, também, o tempo necessário para essa tarefa. Falando em tempo, averigue se o cronograma cabe no tempo que você dispõe para desenvolver a pesquisa.
Ligue o sinal de alerta se você respondeu não para alguma questão acima, pois o trabalho já é árduo quando essas variáveis estão sob controle. Para os que responderam sim, sucesso na pesquisa.