Data

15 fev, 2019

Data is the new Bacon

Publicidade

O mundo da tecnologia vive em constante mudança, e um dos insumos responsáveis por essa mudança são os dados. Data, ou dados, deixou de ser algo chato e se tornou algo sexy e desejável. Tudo isso ocorreu graças ao entendimento dos dados e do poder que eles podem nos dar por meio de informações.

Hoje temos profissões como Data Scientists (ou cientistas de dados), temos áreas de estudo chamadas mineração de dados, termos como Data Lake, Big Data, Data Warehouse e tantos outros.

Esses termos e profissões nos mostram que, agora que entendemos a importância de lidar com os dados, estamos amadurecendo a ponto de conseguir estudá-los de maneira mais assertiva.

Fluxo dos dados

Dados podem ser gerados de qualquer lugar. Uma conta em uma rede social, um dispositivo IoT, o comportamento de usuário em um site, um banco de imagens e textos, o movimento de uma conta bancária e muito mais – praticamente tudo pode ser transformado em dados.

Os dados inicialmente são “crus” e encontrados de maneira dispersa, e é aqui que surge a mineração de dados. A mineração de dados vem com o objetivo de separar os dados úteis àquela situação dos inúteis. Existem algumas técnicas como associação, classificação e clustering, por exemplo.

Após os dados minerados, o próximo passo no processo é a estruturação dos dados de maneira a deixá-los passíveis de uso pela ferramenta que você possui. Se você recebe dados de CPF, por exemplo, eles podem vir de várias maneiras: XXX.XXX.XXX-XX, XXXXXXXXXXX, XXX.XXX.XXX.XX, dentre outros. Isso precisa ser tratado para que você consiga trabalhar.

Na sequência do tratamento vem a aplicação de algoritmos que são capazes de transformar estes dados em informação. Aqui podemos aplicar árvores de decisão, classificação de Naïve Bayes, regressão linear e outros.

Exemplo de utilização

Imagine que você seja o desenvolvedor de uma empresa de crédito, de uma instituição financeira ou uma fintech, por exemplo.

Você recebe uma quantidade enorme de dados não tratados: CPF, RG, nome, telefone, cidade de nascimento, cidade de residência, fotos em diversos formatos, empresa aonde trabalha, renda mensal, quantidade de membros da família, gênero, sexo, profissão, formação e se possui carro próprio.

Seu objetivo é descobrir quais dos clientes desta tabela tem maior probabilidade de fazer um empréstimo e pagar por ele, baseado nos dados acima.

Primeiramente você precisa identificar quais dados devem ser utilizados no seu algoritmo e quais não devem. Aparentemente, já podemos descartar dados como: empresa onde a pessoa trabalha, gênero, sexo e fotos.

Poderíamos fazer uma análise mais detalhada para identificar outros dados que podem ser retirados, mas essa não é o objetivo do artigo.

Na sequência, devemos estruturar os dados como feito anteriormente, no exemplo do CPF. E isso deve ser realizado para todos os dados que serão utilizados no algoritmo.

O último passo é submetermos os dados a algum algoritmo de previsão. A escolha do algoritmo afetará a assertividade da sua predição. Por isso, é interessante estudar o tipo de algoritmos utilizados. Mas, digamos que optamos por um algoritmo de inteligência artificial chamado Redes Neurais Artificiais. Redes Neurais são baseadas no funcionamento do neurônio biológico, corpo celular, dendritos, axônios e a lei do tudo ou nada.

Ou seja, se o estímulo excitatório for muito pequeno, nenhuma propagação é efetuada. Por outro lado, desde que o limiar seja atingido, independentemente da sua intensidade, o potencial da ação do neurônio será o mesmo. Abaixo podemos ver um modelo matemático do neurônio.

O primeiro modelo, concebido em 1943 por McCulloch e Pitis, é formado por um vetor de entrada, e as sinapses são representadas por pesos numéricos. Na figura, X0 a X2 representam as variáveis de entrada i do neurônio de saída j.

A entrada líquida é dada pela somatória dos pesos sinápticos de j=1 até n2, onde a função de ativação (função soma + função de transferência) é chamada linear sináptico.

Esses neurônios estarão dispostos em três tipos de camadas: camada intermediária, camada oculta e camada de saída. As intermediárias são as camadas responsáveis por receber os dados do meio externo.

Essas entradas comumente são normalizadas por funções de ativação e implicam uma melhor acurácia numérica perante às operações matemáticas. Já as camadas ocultas são constituídas por neurônios que são responsáveis pela extração das características associadas ao sistema a ser inferido.

Aqui é onde ocorre praticamente todo o processamento interno da rede. E, por sua vez, as camadas finais são constituídas pelos neurônios que são responsáveis por produzir e apresentar os resultados finais advindos dos processamentos das camadas anteriores.

As camadas e a disposição dos neurônios são basicamente responsáveis pelos tipos de arquiteturas de RNA encontradas atualmente. Abaixo, segue um modelo de camadas e quantidade de neurônios.

Ao final de todo este processamento de inteligência artificial, teremos nossa informação, ou seja, as pessoas que tem maior probabilidade de receber um crédito e pagar por ele.

É “só” isso?

Não, pequeno gafanhoto. Imagine que todo este processo pode estar aberto a fraude. Como? Podemos ter trabalhado com dados falsos, por exemplo. Todo o nosso processo foi feito em cima dos dados recebidos, mas em nenhum momento nós validamos estes dados.

Atualmente temos um novo paradigma de banco de dados chamado Blockchain. Na verdade, não é mais tão novo, mas vamos considerar assim.

O Blockchain é um modelo de banco de dados descentralizado, que tem como objetivo criar um índice global para todas as transações que ocorrer. Ele é formado pelo encadeamento ordenado de blocos compostos por, dentre outras informações, transações e o hash do bloco anterior.

Todos os registros realizados são armazenados por todos os nós da rede por meio de transferências ponto a ponto. Assim, qualquer participante pode auditar a sequência de transações completa e, assim, conferir sua consistência. Outro ponto interessante que garante a validade dos dados dentro do Blockchain é a incapacidade que se tem em alterar dados.

Se alguém tentar alterar algum dado de um bloco, isso automaticamente gerará uma nova hash, e como esta hash está gravada no bloco seguinte, ela é capaz de invalidar o processo e toda a cadeia de blocos seguintes, o que nos dá a ideia de utilização da tecnologia em prevenção de fraudes, não acham?