BT

Disseminando conhecimento e inovação em desenvolvimento de software corporativo.

Contribuir

Tópicos

Escolha a região

Início Artigos Resolvendo problemas de negócio com data science

Resolvendo problemas de negócio com data science

Favoritos

Data science vem rapidamente se tornando uma habilidade crítica para desenvolvedores e gerentes em muitas indústrias, além de parecer uma área de atuação bem interessante e divertida. Entretanto sua aplicação é bem complexa - existem muitas opções de engenharia e análise para navegar e é difícil de saber se você está no caminho certo ou se vai cair numa armadilha logo a frente. Nesta série, exploramos maneiras de compreensão de data science, incluindo o entendimento de onde sua aplicação é ou não é necessária e como torná-la um ativo para você. O conteúdo dessa série é produzido por pessoas que já viveram e resolveram muitos dos desafios da aplicação de data science.

Este artigo do InfoQ é parte da Série " Entendendo data science". Você pode assinar o RSS para receber notificações.

Pontos Principais

  • Data science é um termo que captura um conjunto de técnicas interdisciplinares que trabalham dados para extrair insights úteis, realizar previsões ou obter conhecimento.
  • Um dos maiores fatores determinantes de sucesso para um projeto de data science é a escolha de definição de um bom problema para se trabalhar.
  • Atualmente existem muitas boas bibliotecas de código aberto para data science, a maioria delas escrita em Python, Java ou C++.
  • O contexto de negócio vai determinar o limite que qualquer modelo preditivo necessita alcançar para efetivamente resolver o problema.
  • A validação cruzada é uma boa forma de verificação e garantia de que você utilizou um modelo sensível e que nada de ruim vai acontecer quando ele entrar em produção.

As empresas vêm cada vez mais percebendo que muito das pressões que recebem para resolução de seus problemas de negócio podem ser tratadas com a aplicação de um pouco de data science. Enquanto a alguns anos atrás você pode ter ameaçado substituir algum por um shell script muito pequeno, agora você pode substituir algumas pessoas com um modelo preditivo muito pequeno.

Se você está lendo o InfoQ, talvez você seja um desenvolvedor experiente ou um arquiteto, acostumado a lidar com dados mas talvez você não utilize muito data science no momento. Eu quero lhe convencer que data science é uma área que vale a pena explorar, não somente pelos desafios técnicos interessantes mas também porque ela lhe habilita a causar impactos significativos nas organizações em que você atua.

Data science é um termo que captura um conjunto de técnicas interdisciplinares que trabalham dados para extrair insights úteis, realizar previsões ou obter conhecimento e para isto se utiliza de elementos de estatística, programação, mineração de dados e aprendizado de máquina. Ele se apresenta em uma grande variedade de áreas, algumas delas envolvendo tecnologias de ponta e outras tecnologias já consolidadas e consideradas comuns no dia a dia. Data science está por trás de funções como o sistema de recomendações de livros da Amazon ou a funcionalidade "pessoas que talvez você conheça" do LinkedIn. Data science está por trás de novidades como carros autônomos, que se utilizam destas técnicas para aprender a dirigir de maneira segura. E também está por trás de aplicações práticas no nosso cotidiano como o seu programa de fidelidade de supermercados, que seleciona quais cupons de desconto devem ser disponibilizados a você.

A teoria por trás da maioria destas aplicações existe há décadas. Entretanto, foi somente nos últimos dez anos, com o surgimento de servidores acessíveis no modelo de computação em nuvem com cobrança por hora, coleta de dados ubíquota, armazenamento e processamento de dados distribuídos, além de bibliotecas de aprendizado de máquina validadas em grandes projetos e produtos que a aplicação de data science nos negócios se tornou uma escolha viável. É uma época excelente para resolver problemas antigos usando novas abordagens de data science.

Entretanto, problemas de negócio frequentemente são definidos de forma vaga e complicada, apresentando condições de sucesso e dependências que significam que somente certos tipos de modelos ou níveis de precisão (fração de previsões positivas que se confirmam corretas) e sensibilidade (fração de verdadeiros positivos que foram encontrados pelo modelo) vão resolvê-los. Este artigo explora alguns dos desafios mais comuns e seus melhores ângulos de ataque por pessoas que tentaram trabalhar a aplicação dos dados da melhor maneira possível.

Seleção do Problema

Um dos maiores fatores determinantes de sucesso é a escolha e definição de um bom problema para se trabalhar. O que então significa "bom" neste contexto? Significa:

  • Que a solução deve apresentar impacto suficiente para justificar o esforço.

  • Que dados relevantes estão disponíveis em um formato utilizável - arquivos do tipo texto ou CSV geralmente são boas escolhas. Formatos proprietários e estruturas complexas geram maior trabalho para utilização.

  • Que exista abundância de dados para se trabalhar - citando Peter Norvig em sua famosa frase sobre o Google, "Nós não temos algoritmos melhores. Nós apenas temos mais dados".

  • Que especialistas "do negócio" estejam disponíveis e interessados em se engajar no processo de data science - muitas dificuldades serão eliminadas se você tiver especialistas de negócio disponíveis e que possam lhe ajudar a selecionar as melhores fontes de dados, informar onde os dados estão distorcidos e construir bons conjuntos de informação para alimentar seu algoritmo.

Um guia básico

Data science é um termo que captura muitas ideias, mas existem alguns subgrupos específicos de técnicas:

  • Inteligência artificial é o termo mais amplo. Ele se refere às muitas tentativas ao longo dos últimos 60 anos em replicar aspectos da inteligência humana usando computadores. Isto pode incluir todos os tipos de sistemas de aprendizado e raciocínio, usando diferentes tipos de abordagens.

  • Aprendizado de máquina (machine learning) é um subconjunto da inteligência artificial e compreende a maior parte do ferramental de um cientista de dados. Consiste no conjunto de técnicas de utilização de algoritmos em conjuntos de dados para encontrar padrões, realizar previsões e para isso inclui muitos métodos.

  • Aprendizagem profunda (deep learning) é a ramificação de aprendizado de máquina que faz o uso da abordagem de grafos profundos (por exemplo, redes neurais). Os métodos de aprendizagem profunda são muito mais parecidos com o funcionamento do cérebro em sua estrutura que a maioria das abordagens de aprendizado de máquina - o que significa que eles são muito poderosos, mas também são computacionalmente muito intensos e pode ser difícil explicar seus resultados. Eles se tornaram muito populares recentemente em decorrência das novas bibliotecas e de hardware poderoso e acessível, que geraram um cenário favorável a sua aplicação.

Escolhendo suas ferramentas

Atualmente existe um numeroso conjunto de boas bibliotecas de código aberto para data science, a maioria delas nas linguagens python, java ou c++. Durante o último ano houve um grande interesse em ferramentas de aprendizagem profunda, de forma particular pelo TensorFlow da Google, em processamento de aprendizado de máquina sofisticado e de larga escala como reconhecimento de imagens, além de alguns resultados bem impressionantes no campo da inteligência artificial. Tentadores como estes avanços tecnológicos possam parecer, para a maior parte das aplicações, a escolha inicial mais inteligente envolve utilizar um modelo muito mais simples, por exemplo, utilizar o scikit-learn (uma popular biblioteca escrita em Python que inclui ferramentas para a maioria das tarefas e mineração e análise de dados) e modelar técnicas como regressão logística simples - o conceito YAGNI se aplica em dobro no área de data science. É muito mais fácil de se entender e depurar modelos simples e, de maneira geral, obter mais dados e melhores conjuntos de informações vai lhe oferecer uma vantagem muito maior do que escolher uma biblioteca muito sofisticada, e que pode apresentar uma grande chance de lhe gerar alguma confusão no momento em que você precisar ajustar o modelo. O Cross Validated é o equivalente do StackOverflow para data science e é uma ferramenta muito útil para encontrar pequenos exemplos de código.

Condições de sucesso

O contexto de negócio vai determinar o limite que qualquer modelo preditivo precisa atingir para resolver efetivamente o problema. As principais áreas que você deve observar são:

Precisão e sensibilidade: qualquer modelo preditivo possui métricas de sua precisão e sensibilidade. Um passo inicial muito importante é entender os níveis de precisão e sensibilidade exigidos para que o modelo possa resolver o problema. Por exemplo, você pode estar trabalhando em um modelo para entender quais clientes da sua empresa estão considerando utilizar outro fornecedor. Se você tiver apenas os recursos necessários para atuar sobre um pequeno número de clientes de alto risco, você deve buscar alta precisão, de maneira que você tenha confiança de que não está gastando recursos tentando realizar a retenção de clientes que na verdade não estão pensando em buscar outro fornecedor. Entretanto, se existir alguma ação barata que você possa tomar para reter clientes, você provavelmente deve querer priorizar a sensibilidade - de forma que você captura qualquer cliente que esteja pensando em buscar outro fornecedor.

Validação dos resultados: É necessário validar qualquer modelo preditivo contra um ou mais conjunto de dados para testes, para verificar que ele continua a funcionar no decorrer do tempo e evitar a provavelmente mais desagradável armadilha de data science - o sobreajuste (overfitting). Se você trabalhou com um conjunto de dados para construir um modelo, sempre existe o risco de você ter construído o modelo perfeito para descrever os dados existentes e assim que você introduz novos dados o sistema deixa de funcionar - pode-se evitar esta situação utilizando validação cruzada do modelo usando dados que foram reservados (não utilizados no processo de criação do modelo) para este propósito - e novamente, estes tipos de funções são muito bem suportadas em bibliotecas como scikit-learn. Validação cruzada é uma boa verificação de sanidade do modelo e garante que você utilizou um modelo com sensibilidade e que nada de ruim vai acontecer quando você movê-lo para o ambiente de produção - isto é algo próximo a um regime formal de testes.

Desempenho: Modelos precisam ser executados utilizando uma quantidade realista de tempo de processamento e recursos para resolver o problema. Alguns tipos de modelos escalam para tratar grandes volumes de dados com melhor desempenho que outros. Por exemplo, nós recentemente investigamos a possibilidade de mudar a utilização do modelo Latent Dirichlet Allocation ( LDA ) para utilizar a nova (e de boa qualidade) biblioteca lda2vec para detecção de tópicos em textos - o que definitivamente apresentou melhores resultados mas aumentou o tempo de execução de minutos para muitos dias. De maneira geral, modelos de aprendizado mais sofisticados como redes neurais e aprendizagem profunda vão apresentar melhores resultados, mas vão exigir muito mais recursos para treinamento e execução comparado a modelos mais simples, e o atraso no tempo de execução pode talvez invalidar a vantagem de se obter melhores resultados (Embora você possa recuperar algum tempo de execução, por exemplo, reduzindo o número de iterações de treinamento ou removendo conjuntos de informação de baixo valor na pré-modelagem de dados). Também deve-se observar que, em comparação com modelos mais simples como uma árvore de decisão, um modelo que "aprende" como, por exemplo, uma rede neural, é algo difícil de explicar e defender para pessoas de negócio que podem querer compreender como o sistema funciona.

Sobre a autora

Francine Bennett é executiva e co-fundadora da Mastodon C. A Mastodon C é uma empresa de especialistas em agile big data que oferece a grandes empresas, tecnologias baseadas nos projetos de código aberto Hadoop e Cassandra, além de habilidades técnicas e analíticas, para auxiliar na realização do potencial de seus dados.

Ela é reconhecida como especialista na aplicação de técnicas de análise e data science. Ela foi uma palestrante convidada pela Royal Society e é conselheira do gabinete do governo para melhores práticas no uso de dados. Ela possui graduação com honras em Matemática e Filosofia e trabalhou como líder de uma equipe de analytics no Google. Ela também participa como membro de uma entidade de caridade que tem como visão a utilização de dados a serviço da humanidade, a DataKind UK.

Data science vem rapidamente se tornando uma habilidade crítica para desenvolvedores e gerentes em muitas indústrias, além de parecer uma área de atuação bem interessante e divertida. Entretanto sua aplicação é bem complexa - existem muitas opções de engenharia e análise para navegar e é difícil de saber se você está no caminho certo ou se vai cair numa armadilha logo a frente. Nesta série, exploramos maneiras de compreensão de data science, incluindo o entendimento de onde sua aplicação é ou não é necessária e como torná-la um ativo para você. O conteúdo dessa série é produzido por pessoas que já viveram e resolveram muitos dos desafios da aplicação de data science.

Este artigo do InfoQ é parte da Série " Entendendo data science". Você pode assinar o RSS para receber notificações.

Avalie esse artigo

Relevância
Estilo/Redação

Conteúdo educacional

BT