Aleatoriedade em Ciência de Dados
Computação

Aleatoriedade em Ciência de Dados

Como heurísticas e aproximações podem melhorar a precisão de modelos em cenários complexos e aleatórios.

Em meu último artigo, abordei a importância dos métodos heurísticos dentro do contexto de Ciência de Dados. Como foi visto, eles desempenham um papel importante na definição dos cenários e na caracterização das hipóteses durante a resolução de problemas. Uma das vantagens da heurística é a possibilidade de empregar abordagens práticas baseadas em aproximações na resolução de problemas complexos, que podem até não garantir uma solução ótima, mas auxiliam na busca de uma solução satisfatória em curto espaço de tempo.

Métodos heurísticos são muito utilizados em aprendizado de máquina e Inteligência Artificial, sobretudo nos processos de otimização de busca dos hiperparâmetros dos modelos. Essas técnicas aceleram a pesquisa da melhor configuração do modelo dentro de um espaço de solução complexo, atualizando os parâmetros de forma direcionada a minimizar o erro. Com isso, é possível determinar o conjunto de parâmetros de forma significativamente mais rápida, sem deixar de buscar uma solução satisfatória. Esse método pode representar um enorme ganho em relação ao processo tradicional de busca exaustiva para se alcançar uma solução ótima global.

Outro ponto abordado foram os métodos determinísticos e o quão importante é a definição do problema, de suas características e das condições envolvendo o cenário analisado. Essa definição detalhada é um fator crucial em projetos de Ciência de Dados. O exemplo do matemático Edward Lorenz, que no início da década de 60 desenvolvia modelos de previsão do tempo utilizando cálculos computacionais em suas simulações, retrata bem essa importância. A simples substituição da representação numérica de seis para três dígitos impactou drasticamente os resultados, gerando previsões climáticas completamente distintas. Lorenz chamou esse fenômeno de efeito borboleta, como que se o simples bater de asas de uma borboleta pudesse desencadear um tornado em um outro lugar. Apesar de catastrófica, essa metáfora utilizada por Lorenz representa bem a ideia de que pequenas variações na definição dos problemas e de suas hipóteses podem ter grandes efeitos nos resultados.

Este artigo foca em outro ponto que também afeta significativamente o desempenho dos modelos analíticos: a aleatoriedade dos eventos estudados e das características que descrevem os cenários onde esses eventos ocorrem. Se a ideia de uma borboleta provocar um tornado parece um pouco devastadora, talvez seja a hora de relaxar um pouco. Imagine-se servindo uma cerveja, então. Ao colocar a cerveja no copo, você começa a observar as bolhas dançando de forma um tanto desordenada, desde o fundo até o topo. Se realmente prestar atenção ao processo, poderá observar que não há um padrão de colisões entre as bolhas enquanto elas sobem até a superfície do copo. E ainda mais importante: que as colisões pregressas entre as bolhas não ajudam a determinar as próximas colisões. Ou seja, os eventos passados não determinam um padrão de comportamento de como eles ocorrem e, portanto, de como eles poderiam ser preditos. Contudo, os modelos de aprendizado de máquina dependem exatamente dessa característica, de capturar o comportamento passado de forma a estimar os eventos futuros.

Quando eventos passados não ajudam a prever eventuais ocorrências, denominamos esse fenômeno de processo estocástico. Isso significa que os eventos observados são quase uma sequência de fatos aleatórios, tornando impossível predizer a próxima ocorrência simplesmente estudando o comportamento histórico. Esse fenômeno é também conhecido como passeio aleatório, ou caminhada do bêbado. Essa última denominação dá bem a ideia da dificuldade de prever um evento futuro por simples observação das ocorrências pregressas de forma aleatória.

Problemas não lineares não são resolvidos com equações lineares

Esta aleatoriedade ocorre em grande parte dos problemas reais, sejam em cenários de negócios ou pesquisas acadêmicas. Uma abordagem comum para lidar com ela é a definição clara das aproximações aceitáveis na resolução dos problemas, seja em modelos de classificação e estimação, de prognóstico ou de otimização.

Por exemplo, gostaríamos sempre de poder descrever os problemas com base em equações lineares. Contudo, a maioria dos problemas reais com os quais nos deparamos são, na verdade, problemas não lineares. Queremos considerar o problema como linear, pois assim sua resolução seria mais simples, rápida e, normalmente, interpretável. Porém, se olharmos profundamente, na maioria das vezes, o problema a ser descrito requer uma solução não linear.

Assim, para facilitar a resolução de problemas complexos, aceitamos determinadas aproximações que não afetam substancialmente os resultados alcançados. Chegamos, dessa forma, em soluções satisfatórias por meio de resoluções mais simples, rápidas e explicáveis. Isso acaba fornecendo mais confiabilidade na aplicação dos modelos, os quais serão colocados em produção para apoiar ações de negócios, como prevenção ao churn, identificação de fraude e de risco de não pagamento, probabilidade de compra, previsão de vendas, definição de estoque, determinação de preço, distribuição em cadeias de suprimentos, maximização de lucro ou proteção de volatilidade em portfolios no mercado de ações e em um interminável leque de aplicações de negócios.

Considerar os efeitos aleatórios existentes nos eventos e cenários analisados, definir aproximações pertinentes às possíveis soluções e aceitar os erros inerentes aos modelos faz parte dos projetos de Ciência de Dados. Se a definição do problema for incompleta, se as hipóteses forem imprecisas, se as aproximações forem incorretas, os resultados dos modelos serão, provavelmente, insatisfatórios. Mesmo quando todos esses fatores são levados em consideração de forma adequada, o efeito aleatório pode impactar no resultado dos modelos ou, ao menos, quando da aplicação dos modelos em produção ao suportar ações de negócio.

Imagine, por exemplo, um modelo de classificação de compra que estima uma probabilidade de conversão de 99% para um determinado cliente. Uma ação de negócio é, então, executada com base nessa probabilidade. O cliente é contactado, uma oferta é feita, mas ele recusa a ação. Talvez esse cliente tenha tido um péssimo dia e, ainda que ele fosse extremamente propenso a aceitar a oferta e adquirir o produto, segundo o modelo, um evento absolutamente aleatório, como brigar com a namorada ou o time perder, determinou a recusa da oferta. Essa não conversão será dada como um erro do modelo. Mas o modelo, teoricamente, estava certo. Nas condições normais de temperatura e pressão, esse cliente iria, sim, aceitar a oferta e adquirir o produto. Mas a vida não é tão simples assim. Existem eventos aleatórios e externos à definição do problema que afetam o resultado do modelo ou de sua aplicação.

Por isso existe também uma variabilidade no que o modelo alcança durante o treinamento e o teste, e o que ele produz durante sua aplicação, no processo produtivo. As características do cenário podem mudar entre o desenvolvimento e a produção e, assim, as condições de contorno e as aproximações do problema serão distintas nesses dois momentos, fazendo com que o modelo cometa mais erros em casos futuros.

Como é praticamente impossível considerar todas as situações possíveis, ou seja, todos os cenários aplicáveis a um problema, o processo heurístico passa a ter papel fundamental no desenvolvimento de modelos analíticos, especialmente considerando a aleatoriedade dos eventos e cenários representados.

Com as corretas aproximações, mesmo problemas extremamente complexos podem ser resolvidos de forma mais simples, implicando em soluções mais robustas do ponto de vista de acuracidade em previsões futuras. Por vezes, robustez significa um modelo menos complexo, mas que pode generalizar melhor em ocorrências futuras, pois, sendo mais simples, pode ser menos suscetível a pequenas variações nos cenários.

Essa abordagem é frequentemente utilizada em Ciência de Dados, sobretudo nos modelos de aprendizado de máquina. Os modelos estatísticos também são afetados pelos eventos aleatórios. Contudo, a estatística possui um rigor inicial na modelagem. A forma da função — relação algébrica entre a variável dependente e seus preditores — é avaliada, a distribuição da variável resposta é identificada, a colinearidade das variáveis descritoras é estudada etc. Essa avaliação inicial, anterior ao treinamento, é importante na escolha da técnica a ser utilizada, se um modelo linear, polinomial, aditivo, generalizado etc.

Tentativa e erro

Os modelos de aprendizado de máquina são menos rigorosos nas avaliações iniciais. Eles são considerados aproximadores universais, pois independem da forma da função. Porém, são extremamente dependentes das características dos dados de entrada e, por consequência, mais suscetíveis às variações dos dados ao longo do tempo.

Assim, torna-se difícil prever quais modelos desempenharão melhor antes que se realize os treinamentos. Ainda que considerando o mesmo algoritmo, não se sabe previamente quais parâmetros de configuração determinarão um modelo mais acurado. Ainda que esses modelos não demandem muita análise das características dos dados de entrada, a etapa mais onerosa pode ser exatamente a busca pelos hiperparâmetros de cada algoritmo.

Esses parâmetros dependem de cada técnica utilizada, como árvore de decisão, gradient boosting, random forest, redes neurais, máquina de vetores de suporte etc. Esses parâmetros determinam o quão acurado será o modelo e essa busca pela melhor combinação possível é fundamentalmente realizada por um modelo de otimização. O objetivo é encontrar uma combinação de valores para os hiperparâmetros que minimize o erro da previsão.

E nesse processo os métodos heurísticos são importantes novamente. Os modelos de otimização requerem a definição de um estado inicial. Em algoritmos de aprendizado de máquina, esse estado inicial pode ser determinado de forma heurística pelo cientista de dados.

Por exemplo, quantas camadas escondidas a serem utilizadas em um modelo de rede neural? Quantos neurônios em cada camada escondida? Qual a taxa de aprendizado? Quais as taxas de regularização mais apropriadas para evitar um super treinamento? Um bom estado inicial na definição dos hiperparâmetros pode resultar em um conjunto ótimo de pesos da rede neural (que é o modelo propriamente dito) e, por consequência, em uma previsão mais acurada. Em contrapartida, um estado inicial ruim pode direcionar essa busca dos pesos para um ótimo local muito ruim, produzindo um modelo pobre em termos de classificação ou estimação.

A experiencia do cientista de dados, o conhecimento da base utilizada como fonte de treinamento, a definição clara do objetivo, todos esses fatores podem auxiliar na definição apropriada do estado inicial dos algoritmos. Mas isso não é garantia de que o treinamento ocorrerá de forma satisfatória e o modelo irá performar no fim.

Portanto, existem duas abordagens mais comuns nesses casos. O primeiro é estender o processo de tentativa e erro do cientista de dados, treinando diversos modelos e algoritmos diferentes, com parâmetros iniciais distintos. Por exemplo, várias redes neurais com parâmetros iniciais diferentes, várias árvores de decisão com distintas configurações e assim por diante. Com isso, se realiza um torneio entre os modelos. O campeão é aquele que generaliza melhor a previsão em uma base de validação ou teste. Esse modelo é o escolhido para ser colocado em produção e apoiar as ações de negócio.

O segundo método é automatizar o processo de busca dos hiperparâmetros iniciais por meio de algoritmos de otimização. Por exemplo, um algoritmo genético pode realizar uma busca direcionada no espaço de solução gerado pelos possíveis hiperparâmetros. Ao fim da busca, esse algoritmo define os melhores valores para os parâmetros iniciais, que resultarão em um modelo mais acurado ao fim do treinamento.

Pode-se dizer que é um processo de tentativa e erro, mas por meio de uma heurística extremamente bem determinada, com algoritmos de otimização eficientes na busca de um espaço de solução complexo. Ainda assim, seja por ajustes manuais ou automáticos dos hiperparâmetros de cada algoritmo testado, não se sabe de antemão qual será o melhor modelo até que o torneio termine.

No fim das contas, tentativa e erro. O importante é que esse processo seja bem direcionado, e modelos de otimização eficientes com as heurísticas apropriadas podem ajudar nessa tarefa.

Por mais aleatórios que sejam os eventos e cenários analisados, e mais heurísticas tenhamos que utilizar no desenvolvimento dos modelos, a utilização de Ciência de Dados nos processos de negócios e nas pesquisas acadêmicas torna-se cada vez mais imperativa. Esses processos analíticos naturalmente implicam em erros, mas os ganhos obtidos podem ser extremamente significativos, sobretudo se comparados com os processos em que a análise de dados esteja ausente.

A Ciência de Dados é um caminho sem volta para corporações e instituições acadêmicas, seja para solucionar problemas de negócio ou de pesquisa. Quanto mais as decisões são baseadas em análise de dados, mais acuradas elas serão. E no fim, independente da aplicação, todos ganham com isso, as organizações e a sociedade de modo geral.

Último vídeo

Nossos tópicos