Ciência de Dados

Entender o passado, prever o futuro e decidir o presente.

“O objetivo é transformar dado em informação, e informação em ideias.” [Pat Gelsinger]

“Em Deus acreditamos, todos outros precisam trazer dados.” [W. Edwards  Deming]

“O maior desafio tecnológico consiste em criar sistemas inteligentes, e os dados são a matéria prima básica.” [Amod Malviya]

A figura acima sintetiza um conjunto de buzzwords: Machine Learning, Analytics, Big Data, Data Mining, Data Science; todas sustentadas por um único jargão: Reconhecimento de Padrões. Independentemente do quão leigo ou conhecedor do assunto, todo ser humano é especialista em reconhecer padrões; o Homem tem em sua essência identificar objetos, suas características, classifica-los e obter conclusões de suas observações.

Infelizmente, assim como toda inovação tecnológica, o reconhecimento de padrões se tornou algo místico, realizado por magos ou deuses que sobem à montanha, assim como Moisés, para trazer a mensagem divina. Digo infelizmente pois esta supervalorização do tema simplesmente leva as companhias a crerem que uma pequena parcela dos profissionais possuem a capacidade de atuação na área; marginalizando tantos outros que poderiam trazer grande valor às atividades que devem ser desempenhada.

Todo Ser Humano é a mais perfeita máquina de reconhecer padrões: analisar dados, extrair informações escondidas, processá-las, tirar conclusões, ter ideias e conservar o conhecimento é algo que fazemos desde o momento que somos concebidos e estamos dentro do útero de nossas mães. Como mencionado por Michel de Montagine há mais de 5 séculos “Homo sum: nihil humani a me alienum puto”, traduzindo do latim “Sou Homem: Nada do que é Humano me é estranho”. Portanto, não se permita ficar de fora, independente se desenvolvedor, vendedor, gestor, consultor, dona de casa, estatístico ou filósofo; somos dentre todas as “coisas” conhecidas no Universo, àquela com melhor aptidão e técnica para reconhecer e identificar padrões.

Quando vamos ao supermercado identificamos as pessoas, materiais de limpeza, alimentos, avaliamos o que é necessário adquirir ou não, deduzimos sobre seu consumo, idealizamos o que é possível fazer com um conjunto de produtos. Se um produto novo é encontrado, associamos a outros, avaliamos seu preço e aprendemos como utilizá-lo.

Enquanto dirigimos, observamos os pedestres, os carros, motocicletas e ciclistas. Reconhecemos os símbolos do trânsito, avaliamos se o tráfego está alto, deduzimos manobras possíveis, tentamos novos caminhos e aprendemos que nem todos seguem as leis e normas vigentes; portanto, uma precaução e alerta extra nunca é demais.

Quando tenta-se vender algo para um consumidor reconhecemos se é homem ou mulher, adulto ou criança, seu perfil, do que gosta, o que busca, analisamos as possibilidades de oferta, complementamos produtos e em caso de sucesso guardamos o aprendizado para aplica-lo a um novo, e cheio de desejos cliente.

Reconhecer padrões para o Homem é tão natural como respirar, pensar, fazer o coração bater, emocionar, pensar, se mover. E o fato de ser tão natural, simples e automático é o que torna o assunto complexo. Como explicar a alguém algo que fazemos inconscientemente sem entender de fato como realmente funciona, ou que é pior, como ensinar um hardware limitado através de softwares a se comportar de um modo que não sabemos descrever e tampouco detalhar. Esta complexidade é o que a Ciência de Dados se propõe a resolver.

A relevância prática do assunto é gritante, existem dezenas de atividades realizadas por pessoas – estas propensas a erro e cansativas – que poderiam ser automatizadas, como por exemplo avaliar se um produto manufaturado possui defeito ou não. O assunto também permite prover complementos de diagnósticos auxiliando médicos, engenheiros, pilotos, evitando que estes deixem de lado pontos relevantes o que permite evitar acidentes e maior assertividade em diagnósticos. E claro, o ganho mais “nobre”, que consiste em descobrir informações e ideias que estão perdidas em um oceano de dados que é humanamente impossível vasculhar.

Antes de iniciar a se aprofundar no assunto, é importante realizar algumas definições e convenções, e claro explicar de forma simples o porquê da existência de cada uma das buzzwords existentes, e seu significado. O primeiro termo para se destacar é o que chamamos de objeto ou padrões, que nada mais são do que a entidade ou “coisa” sendo estudada. Por exemplo, se o objetivo é descobrir o estilo de uma camiseta, os objetos ou padrões ou “coisa” sendo estudada são as camisetas. Fácil perceber que os objetos não são estáticos e variam dependendo do escopo do problema, para um médico seria o exame, para um pescador, o peixe.

O segundo conceito a se destacar são as características ou features dos objetos, ou seja, quais atributos estes possuem; seguindo o exemplo anterior poderíamos por exemplo citar, o material que a camiseta foi confeccionada, sua cor, sua forma, se possui estampa, etc. Todas as características de um objeto são obtidas através de sensores, sejam estes naturais como os olhos, ouvido, nariz ou sensores artificiais como câmeras, sismógrafos, microfones, etc.

Para fins computacionais todas as características de um objeto são estruturadas em um vetor ou feature vector. Ou seja, nada mais é do que uma forma matemática de se apresentar estas características em um único elemento. Uma forma de representar duas camisetas, se daria, portanto, da seguinte forma:

Provavelmente, como todo bom e competente Ser Humano, você já conseguiu visualizar ambas camisetas e até associar o estilo de pessoa ou ocasião em que cada uma delas seria utilizada. Por exemplo, uma camiseta de algodão com estampa e de manga curta lembra um ambiente mais descontraído, enquanto uma de seda remete a algo mais formal, um evento como casamento ou formatura. Este preconceito ou divisão é o que chamamos de rótulos ou labels. Ou seja, é uma categorização do objeto ou padrão com base em suas características ou features.

Finalmente, o último conceito importante é o que chamamos de classificador, que nada mais é a “entidade” capaz de dar um rótulo ou label para um objeto ou padrão baseado em suas características ou features. O melhor classificador do mundo, como já mencionado é o Ser Humano, contudo este possui limitações físicas de processamento. Sendo uma das atividades do Cientista de Dados imitar a natureza criando softwares de inteligência artificial.

Entendido os conceitos, temos os problemas primários que surgem destes. O primeiro deles consiste em encontrar quantas características de um objeto devemos considerar. No exemplo da camiseta, várias características foram descartadas (ex: país de manufatura, tipo de gola, possui botão, preço, etc). Infelizmente não existe uma resposta exata, muitos atributos podem dificultar o reconhecimento de padrões, enquanto poucos atributos podem não ser o suficiente; muitos atributos aumenta a complexidade e tempo de processamento enquanto poucos atributos podem trazer resultados errôneos.

O segundo problema consiste em como encontrar o melhor classificador, lembrem-se, o Ser Humano é o melhor deles e o mais completo. Contudo quando se cria uma inteligência artificial para tal, deve-se escolher dentre os milhares disponíveis que naturalmente desempenhamos um pequeno conjunto para que seja implementado na forma de um software. Aqui mais uma vez, não existe uma resposta exata, muitos classificadores não trarão resultado algum enquanto outros podem ser ligeiramente de maior desempenho.

Finalmente, a parte mais importante; levantada as características e definido o classificador, como garantir que os resultados obtidos estão corretos? Nesta etapa “mora o maior inimigo” do Cientista de Dados, pois o vício em anteder as próprias expectativas ou a de seus superiores, bem como a necessidade em encontrar um padrão (lembrem-se, fomos desenhados por milhões de anos de evolução para isso) pode nos cegar no momento de gerar as contraprovas que invalidem semanas, meses e em alguns casos anos de trabalho duro e noites sem dormir.

Naturalmente, como todas as atividades que realizamos na vida, a Ciência de Dados não está livre de um processo de trabalho. O desenha abaixo busca ilustrar os passos que comumente são seguidos ao se aventurar na área, e mesmo que não exista um consenso e cada artesão tenha seu próprio modelo, um trabalho sério dificilmente escapa destas etapas.

Reforçando o que foi comentado anteriormente, primeiramente deve-se identificar os objetos que serão analisados, submeter estes a sensores para que suas principais características sejam extraídas; posteriormente deve-se filtrar as características que são mais relevantes e submetê-las ao classificador para que os resultados sejam avaliados e, em caso positivo, a inteligência artificial liberada para ser aplicada.

Antes de nos aprofundarmos nos diversos algoritmos e técnicas para criar classificadores, extrair e filtrar característica bem como avaliar resultados. Vamos simular o trabalho de um cientista de dados através de um problema simplificado e intuitivo. Grande parte dos sensores de câmeras fotográficas utilizam um modelo de cores conhecido por RGB. Nele as cores Red (Vermelho), Green (Verde) e Blue (Azul) são utilizadas para formar todas as outras, portanto cada pixel em uma foto possui uma “intensidade” que vai de 0 a 255 para vermelho, verde e azul; que se combinados definem a cor do pixel.

Imagine agora que uma foto de uma parede coloria tenha sido tirada com uma das diversas câmeras disponíveis e nosso objetivo é descobrir qual a cor da parede. Neste problema temos que os são os pixels, as características são a intensidade de Vermelho, Verde e Azul. Portanto, nosso feature vector seria:

 

Para simplificar o primeiro aprendizado, foi acertado que o pintor utilizaria uma tinta que só possuem tons de vermelho (o Verde e o Azul são sempre zero), ou seja, podemos filtrar as características eliminando o Verde e o Azul, assim nosso feature vector passa a ser:

A figura abaixo mostra todos os valores possíveis para a intensidade de vermelho, onde intensidade igual a zero significa ausência de vermelho e intensidade igual a 255 significa muito vermelho.

Note que existe uma linha tracejada marcando uma intensidade iguala a 50. Esta linha de corte define se a parede será considerada vermelha ou preta. Ou seja, se a intensidade do vermelho for maior que 50 a parede será rotulada como vermelho, se for menor ou igual a 50 será rotulada de preta. Nosso classificador já está definido, basta implementar um software que avalie a intensidade do vermelho de uma fotografia digital e indique a cor da parede.

Obviamente uma fotografia possui milhares de pixels, portanto podemos tirar uma média da intensidade para definir se o muro como um todo é vermelho ou não. Segue abaixo a fórmula do classificador.

Imagine agora, que o pintor vai utilizar uma nova tinta, que ao contrária da anterior possui tons de vermelho e verde (tons de azul são sempre zero), vamos filtrar as características de modo que o azul seja descartado, o features vector seria:

A figura acima mostra todos os valores possíveis para as intensidades de vermelho e verde, onde R = 255 significa vermelho intenso, e G = 255 significa verde intenso. Como a junção de vermelho e verde resulta em amarelo temos que para R = 255 e G = 255 a cor da parede seria amarela. O mesmo continua válido para o preto, que é a ausência de cores, neste caso R = 0 e G = 0. Nosso classificador agora seria ligeiramente diferente, ele passa a computar a média de intensidade do vermelho e do verde e classifica a coloração em quatro tipos de cores.

Podemos continuar o exercício caso o pintor utilize uma tinta que tenha a intensidade de todas as cores RGB. O que resultaria na figura abaixo. Nela tem-se oito diferentes tipos de cores, para que se possa fazer a classificação seguindo um modelo similar ao anterior.

Infelizmente, nem toda amostra de dados contém rótulos ou possuem resultados que conhecemos, como o caso da classificação de cores. Existem casos onde temos objetos desconhecidos, onde é necessário que um especialista da área o rotule. Por exemplo, amostrar de sangues são rotuladas como pertencendo a pessoas com diabetes e sem diabetes, e posteriormente classificamos novos pacientes verificando a proximidade da amostra do paciente com as previamente rotuladas. Para os casos onde a amostra é rotulada para que seja posteriormente efetuada uma classificação chamamos de aprendizado supervisionado.

Em outros não é possível sequer encontrar um especialista que possa rotulá-la, pois os objetos estão dispersos e não foi possível encontrar nenhuma similaridade entre estes. Nestas situações é comum utilizar algoritmos que permita agrupar objetos que são comuns; tais casos recebem o nome de aprendizado não supervisionado. Existem também os casos semi-supervisionados onde os rótulos das amostras dos objetos são desconhecidos, contudo os possíveis rótulos já existem e foram determinados.

Bom se tudo se resume a reconhecimento de padrões, porque existem tantas palavras utilizadas para abordar o assunto? Primeiramente, porque se trata de um assunto novo, a comunidade científica ainda está aprendendo a lidar com ele, e claro rotulá-los. Portanto, existem diversos profissionais e cientistas da área que utilizam nomes distintos para a mesma cosia, e claro, as corporações que buscam através da sua área de marketing palavras pomposas e bonitas que despertem o desejo e a curiosidade dos clientes.

O termo analytics se popularizou com o Google em 2005, e basicamente foi o nome dado a capacidade de utilizar ferramentas para realizar análise estatísticas nos dados, ou utilizando a nomenclatura correta, nos objetos. O termo machine learning ou aprendizado de máquina é aquele utilizado em algoritmos que permita que um software aprenda e acumule conhecimento sem que seja necessário programá-lo.

O termo Data Mining surgiu na década de 90 e nada mais é que a análise de dados dos objetos para que seja possível identificar ou extrair informações deste, popularizando, é o trabalho realizado quando se possui uma amostra de dados da qual não se tem a menor ideia do que se pode extrair desta. O termo Big Data é utilizado para descrever o processo de reconhecimento de padrões em uma base com uma enorme quantidade de dados.

Por fim o termo Data Science foi dado ao campo da ciência que ganhou a responsabilidade em evoluir o assunto. Ou seja, nada mais que uma resposta da comunidade científica e das universidades para criarem cursos, imprimirem diplomas e vender certificações a profissionais que desejam entrar na área. Como um governo que busca regulamentar uma instituição do mercado, garantindo a sua credibilidade, um currículo de Cientistas de Dados nada mais é que o carimbo de uma instituição de ensino.

Voltemos novamente na figura do começo deste artigo, perceba que lá existem dois conjuntos de figuras, separados por um classificador, assim como em nossos exemplos. Conseguiu encontrar o ponto de interrogação? Se sim, qual seria o grupo que ele pertence? Círculos ou Diamantes?

Antes de apresentar a resposta vamos para mais um ponto bem pertinente quando se trabalha com reconhecimento de padrões. O uso de matemática e estatística são essenciais, existem também muitos conceitos que são emprestados da física, pois estes foram criados buscando modelar o comportamento de coisas que acontecem no Universo. Somado a esta complexidade, comumente um feature vector não é composto de uma ou três características, muito possuem centenas e outros até milhares. E é exatamente estes aspectos todos juntos que trazem o tom de dificuldade e complexidade para o assunto, mas por de trás de toda esta confusão mora um conceito simples e pragmático.

Portanto é importante, que antes de se encantar com as fórmulas matemáticas, as distribuições estatísticas e os modelos físicos, seja utilizado o mais agudo e profundo bom senso. Antes de acreditar nos resultados que serão encontrados, e se maravilhar com estes, desconfie de tudo e sempre busque pelas contraprovas ou evidências escondidas.

Quando se trabalha com volume de dados é fácil encontrar um padrão qualquer, a natureza está cheia deles, contudo isto não significa que são leis universais ou até mesmo locais, muito menos que o classificador está correto. Desconfie dos objetos, das características, do classificador, da distribuição, da fórmula matemática do modelo físico, e não esqueça, acima de tudo, desconfie muito de você e dos seus resultados alcançados. Pode não parecer, mas o profissional da área pode se tornar facilmente tragado pela “doença do cartomante” e fazer previsões erradas e sem sentido com a convicção de um axioma matemático.

Para encerrar, se a resposta para qual grupo pertence o “?” foi círculos. Parabéns!!! Além de ser um especialista nato em reconhecimento de padrões, agora também está apto a auxiliar um Cientista de Dados ou qualquer outro profissional da área a entender problemas e encontrar soluções para estes. Poderá criar inteligência artificial e conseguir um “escravo digital” capaz de realizar parte de seu trabalho que é cansativo ou até mesmo a auxiliá-lo como um neurônio extra a ter insights e enxergar melhor o mundo a sua volta.

Este artigo é o primeiro de uma série que vai buscar explicar centenas de algoritmos e fórmulas matemáticas, estatísticas e físicas que podem ser utilizadas para atuar na área. O intuito é entender o cerne e a aplicabilidade de cada um simplificando sua explicação, trazendo exemplos práticos e procurando mostrar as principais armadilhas e incertezas que acabam por nos derrubar no dia a dia.

Deixe um comentário

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair /  Alterar )

Foto do Google+

Você está comentando utilizando sua conta Google+. Sair /  Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair /  Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair /  Alterar )

Conectando a %s