data
Compartilhar no facebook
Compartilhar no twitter
Compartilhar no linkedin
Diurno

Agile Data Science

Há poucos dias atrás fui em um de nossos clientes para explanar sobre como abordamos data science de maneira ágil e resolvi estender tal apresentação para este post. Então aqui vai um apanhado sobre o ciclo de vida de ciência de dados, padrão de estrutura e ferramentas.

“Ciência é muito mais uma maneira de pensar do que um corpo de conhecimentos.” – Carl Sagan

A primeira vista pode parecer trivial abordar um processo científico sistematizado. Mas, os cientistas requerem um tempo de internalização e amadurecimento do tão famoso método científico descrito por René Descartes. Só que agora, eles precisam aplicar esse “modo de pensar” em um ambiente colaborativo e dinâmico. Muitas vezes, envolvendo parceiros importantes para o desenvolvimento do produto que ainda não conservam esse “modo de pensar” de maneira autônoma.

Em contrapartida, uma verdadeira exploração não é compatível com indisciplina.

A ciência de dados deve ser disciplinada e mesmo assim sem restrições, usando muita imaginação e com menor burocracia possível

É por isso que podemos encontrar atualmente vários frameworks e metodologias. Que, se adaptem as etapas de observação, hipótese, previsão, teste e análise de maneira a incorporá-las em ações bem curtas e iterativas que incitam decifrações constantes. Isso produz quase espontaneamente um pensamento cético e analítico em todo o processo de ciência de dados, como deveria de fato ser qualquer processo de descoberta científico. Mas não se engane. Não se trata de nada essencialmente novo. Essas etapas foram descritas ainda no século XVII por Descartes. Mas, com registros históricos que remetem ao século XI nos relatos de Abu Ali al-Hasan Ibn Al-Haitham , o pioneiro do estudo em Óptica.

I am not accustomed to saying anything with certainty after only one or two observations.
— Andreas Vesalius, (1546)

Na minha opinião, o framework mais genérico, flexível e apropriável é o DataOps Manifesto que diz que:

“Quer se trate de ciência de dados, engenharia de dados, gerenciamento de dados, big data, business intelligence ou algo semelhante, através do nosso trabalho, passamos a valorizar em Analytics”

• Indivíduos, interações sobre processos e ferramentas.
• Trabalho de análise sobre uma documentação abrangente.
• Colaboração do cliente sobre negociação de contratos.
• Experimentação, iteração, e resposta sobre um projeto detalhado e extenso.
• Propriedade de toda a equipe nas operações sobre silos de responsabilidades.

Esses valores se desdobram em 12 princípios que poderão ser vistos no próprio sítio do manifesto. Não sei se acontece o mesmo com vc leitor, mas sinto muita falta nesse framework de alguma metodologia, no sentido de articular quais são os passos que devemos seguir. E, para atingir esse objetivo, a queda de braço entre as metodologias é grande!

As principais metodologias propostas na atualidade são IBM ASUM (Analytics Solutions Unified Method), CRISP-DM (CRoss Industry Standard Process for Data Mining) e o Microsoft TDSP (Team Data Science Process). Mas, não podemos esquecer que elas foram baseadas nas metodologias de décadas passadas como SEMMA (Sample, Explore, Modify, Model, and Assess), Processo KDD (Knowledge Discovery in Databases) e o EDA (Exploratory Data Analysis) de Tukey.

Cada qual possui seus elementos e características próprias e buscam focar em determinados aspectos do processo de descoberta científica realizada por um time heterogêneo de maneira iterativa. No entanto, nenhuma dessas metodologias atuais consegue abordar todos os aspectos da ciência de dados moderna. Por isso usamos como referência principalmente o ASUM, que foi idealizado no paradigma Agile, mas sem deixar de nos situar nas outras metodologias para tentar convergir de maneira mais eficiente e eficaz para uma solução.

“Good judgment comes from experience. And experience comes from bad judgment.” Rita Mae Brown

Acreditamos muito no poder das metodologias colaborativas para concepção de novas ideias e na co-criação com o cliente e usuários da solução

Na DTI, aplicamos com muito sucesso a metodologia de Design Sprint para conceber produtos digitais. A partir da nossa experiência com essa dinâmica, desenvolvemos uma versão adaptada para atender Data Science. Percebemos que, muitas vezes, o nosso cliente não compreende bem os conceitos e as etapas envolvidas no processo de tratamento e exploração dos dados e por isso, nessa dinâmica que nomeamos de A.I. Quest, trazemos os termos para a realidade do negócio do cliente de forma que ele mesmo possa identificar, com o nosso apoio claro, as oportunidades e limitações que o seu problema oferece. O resultado desse trabalho é uma série de iniciativas priorizadas. Que, então, iremos explorar ao longo de Sprints. Ao iniciar o trabalho de forma colaborativa, garantimos que os usuários se sintam parte da solução, que ela realmente atenda dores reais e que seja estabelecida uma importante interação e parceria com a nossa equipe.

Dessa forma, em maior detalhe, buscamos explorar os limites do que pode ser aprendido rapidamente, iterando várias hipóteses com agilidade. Levantamos as perguntas, hipóteses iniciais e possíveis soluções de maneira dedutiva em todo encontro de entrega e planejamento com o cliente. As demais etapas são abordadas com método indutivo, uma vez que os resultados devem ser guiados pelos dados.

Cremos que para qualquer ciência e exploração, a agilidade de experimentação a “falha rápida” (fast-fail) é o melhor caminho. Então buscamos criar uma configuração mínima e expansível, usando a estrutura proposta pelo Cookiecutter Data Science. Implementamos dois pipelines na interface do scikit-learn para cada uma das fases de treinamento e predição. O primeiro pipeline realiza o ETL (de Extract Transform Load do inglês) e segundo pipeline constrói, ajusta e pontua o modelo.

Fazemos isso como time, buscando o tempo todo união e integração

Pois como abordado no artigo anterior, acreditamos que esses projetos possuem tantos âmbitos, cada um com seus vários detalhes e isso necessita ser abordado em grupo. Buscamos o quanto antes construir um MVP (Minimum Viable Product – mínimo produto viável/protótipo) de forma que o processo como um todo permita uma melhoria contínua.

Usamos os notebooks do jupyter apenas para documentação, sendo que todas as funções necessárias são implementadas no source e são descritas com testes unitários. Os pipelines também possuem testes de aceitação que validam as transformações que deveriam ser tratadas. A cada sprint e de posse dos resultados, realizamos uma verificação e decidimos se devemos continuar investindo tempo em determinada investigação ou, iniciarmos outras.

Os relatórios de exploração dos dados julgam e determinam se a qualidade dos dados é adequada para responder às perguntas, quais sejam: Quanto custa ou quantos? (regressão), Qual categoria? (classificação), Qual grupo? (clustering), Isso é estranho? (detecção de anomalias) ou Qual opção deve ser escolhida? (recomendação)

“Intelligence is the ability to adapt to change.” (Stephen Hawking)

A abordagem Agile busca evoluir um produto da colaboração de equipes auto-organizadas.

Integrar o método científico maximiza os resultados. Métodos ágeis são aplicáveis a qualquer projeto e têm iteração e foco na comunicação. Identificar os problemas, escolher uma questão e gerar a hipótese. Entender os dados relacionados. Incrementar o modelo preditivo e avaliar os resultados. Sucede a interação, veredito e decide por iterar no laço interior/exterior sucessivamente. Logo a abordagem científica incremental resulta prontamente em benefícios ao cliente e converge evolutiva e continuadamente para o êxito.

http://social.eyeforpharma.com/commercial/experiment-innovate-cultivating-fail-smart-learn-fast-culture

https://www.oreilly.com/data/free/files/ten-signs-of-data-science-maturity.pdf

https://docs.microsoft.com/pt-br/azure/machine-learning/team-data-science-process/

https://journals.plos.org/ploscompbiol/article?id=10.1371/journal.pcbi.1000424

http://www.iadis.net/dl/final_uploads/200812P033.pdf

https://www.kdnuggets.com/2017/01/four-problems-crisp-dm-fix.html