Conhecendo um pouco mais sobre Ciência de Dados e Big Data
Hoje em dia existe muita procura por profissionais em Ciência de Dados e Big Data. Porém, são poucos os qualificados para trabalhar nessa área. O fato desse tipo de profissional ser tão procurado se deve à sua especialização em extrair informações, padrões e insumos que podem ser determinantes para o sucesso de uma empresa.
Não apenas as empresas de tecnologia buscam esse tipo de profissional. As mais diversas áreas tem a necessidade de obter conhecimento através de suas cada vez mais gigantescas fontes de dados. Nesse artigo faremos uma breve explanação sobre os principais conceitos acerca da Ciência de Dados e Big Data
O que é Big Data?
Big Data é o termo associado à qualquer coleção de dados tão grandes ou complexos que torna difícil processá-los através de técnicas de gerenciamento de dados tradicionais, como RDBMS (relational database management systems).
O que é Ciência de Dados (ou Data Science)?
A Ciência de Dados são as diversas técnicas e métodos para analisar conjuntos massivos de dados e extrair conhecimento contido neles. Podemos pensar Big Data e Data Science como uma relação entre óleo cru e óleo refinado.
As principais características relacionadas a Big Data
As características frequentemente associadas à Big Data correspondem aos 4 V’s:
- Volume – O quanto de informação existe
- Variedade – O quão diversificado e variados são só tipos de dados
- Velocidade – Com que velocidade novos dados são gerados
- Veracidade – O quão precisos são os dados
Benefícios e formas de utilização de Ciência de Dados e Big Data
A Ciência de Dados e o Big Data são utilizados em quase todos os setores da sociedade, comerciais ou não comerciais. Muitas empresas usam Data Science para oferecer aos seus consumidores uma melhor experiência de usuário e personalização de ofertas. Um exemplo é o Google Adsense, que coleta dados de usuários da internet para personalizar ofertas de produtos que serão exibidas.
Tipos de dados utilizados
Em Ciência de Dados e Big Data são utilizados diferentes tipos de dados, onde cada um deles requer ferramentas e técnicas diferentes de análise.
Principais categorias de dados:
• Estruturados
• Não estruturados
• Linguagem Natural
• Gerados por máquina
• Baseado em grafos
• Áudio, video e imagem
• Streaming
Vamos analisar a seguir cada um deles.
Dados Estruturados
Os dados estruturados são dependentes de modelos de dados e ficam armazenados em campos fixos como um registro. Frequentemente, dados estruturados são armazenados em tabelas de banco de dados ou mesmo em planilhas, como arquivos em Excel. O SQL é a maneira mais utilizada para consultar e gerenciar os dados armazenados em banco de dados.
Dados Não Estruturados
Os dados não estruturados possuem conteúdos de contexto muito específico e variado, sendo difícil inseri-lo em algum modelo de dados. Um exemplo de dado não estruturado é o e-mail.
Linguagem Natural
A Linguagem Natural é um tipo especial de dado não estruturado. O processo desse tipo de dado é bastante desafiador, visto que requer conhecimento específico de técnicas de ciência de dados e linguística. Um exemplo é a própria linguagem humana, que por natureza é bastante ambígua.
Dados gerados por máquina
Os dados gerados por máquina são informações que são criadas automaticamente por computadores, processos, aplicações e outros tipos de máquinas sem que haja uma intervenção humana. Devido ao grande volume de informações geradas por máquina, para analisar esse tipo de dado são necessárias ferramentas de alta escalabilidade. Exemplos de dados gerados por máquina são os logs de servidores web, detalhes de registros de chamadas, telemetria, etc.
Dados baseado em grafos
Os dados baseado em grafos são dados com foco em relacionamento entre objetos e suas adjacências. As estruturas em grafos utilizam nós, arestas e propriedades para representar e armazenar dados graficamente. A estrutura baseada em grafos é a maneira natural para representar redes sociais. Para consultar esse tipo de dado são usadas linguagens de consulta especializadas, como SPARQL.
Áudio, imagem e vídeo
Analisar dados de áudio, imagem e vídeo é uma tarefa aparentemente simples para o ser humano, mas para um cientista de dados se torna um desafio, retirar informações contidas nessas estruturas. Um exemplo é a filmagem feita por uma câmera de alta velocidade em um estádio que captura os movimentos de um atleta e da bola.
Dados de Streaming
O fluxo de dados para esse tipo de estrutura ocorre quando o evento acontece, em vez de ser carregado em lotes de um dado previamente armazenado. Exemplos de dados de Streaming: “What’s Trending” do Twitter e eventos esportivos ao vivo.
O processo de Ciência de Dados
Um processo de Data Science consiste basicamente de 6 passos:
1. Definindo o objetivo da pesquisa(Setting the research goal)
2. Recuperação dos dados (Retrieving data)
3. Preparação dos dados (Data preparation)
4. Exploração dos dados (Data exploration)
5. Modelagem dos dados (Data modeling or model building)
6. Apresentação e automatização (Presentation and automation)
1. Definindo o objetivo da pesquisa(Setting the research goal)
A Ciência de Dados é majoritariamente aplicada em um contexto de uma organização. Quando a área de negócios quer saber como utilizar melhor um projeto de Data Science e coletar seus benefícios, o analista deverá primeiramente elaborar um gráfico de projeto.
Nesse gráfico de projeto, irá conter informações como o que você está pesquisando, como a empresa irá se beneficiar com isso, quais dados e recursos serão necessários, o cronograma e calendário de entregas.
2. Recuperação dos dados (Retrieving data)
O segundo passo é a coleta de dados. O cientista de dados deverá saber que dados serão necessários e onde obtê-los, além da qualidade e formas de acesso. Essas informações também podem ser entregues por terceiros ou empresas parceiras e podem assumir diversos formatos, desde planilhas Excel até diferentes tipos de bancos de dados.
3. Preparação dos dados (Data preparation)
Essa fase consiste em três tarefas:
- Limpeza de Dados (Data Cleasing), onde serão removidos valores falsos da fonte de dados e eventuais inconsistências.
- Integração de Dados (Data Integration), onde serão combinadas as informações de múltiplas fontes de dados.
- Transformação de Dados (Data Transformation), onde deixarão os dados em formato próprio para ser utilizado em seus modelos.
4. Exploração dos dados (Data exploration)
Essa fase se preocupa em construir um conhecimento mais aprofundado dos dados. Aqui se busca em entender como as variáveis interagem umas com as outras e a forma como os dados são distribuídos. Esse passo frequentemente é feito através do uso de abreviações EDA, para Análise de Dados Exploratórios.
5. Modelagem dos dados (Data modeling or model building)
Aqui serão utilizados modelos, domínio de conhecimento e informações sobre os dados encontrados nos passos anteriores. Será selecionada alguma técnica no campo da estatística, aprendizado de máquina (machine learning), pesquisa operacional entre outras. A construção de um modelo é um processo interativo e envolve uma seleção de variáveis para o modelo, execução do modelo e diagnóstico do modelo.
6. Apresentação e automatização (Presentation and automation)
Nessa fase serão apresentados os resultados para a área de negócios da empresa. Esse resultados podem ter diversas formas, indo desde apresentações simples até relatórios completos da pesquisa.
Principais Frameworks e Ferramentas utilizadas em Ciência de Dados e Big Bata
Atualmente existem diversas ferramentas de Big Data e frameworks. Contudo nem sempre são utilizadas todas elas. Apenas algumas são realmente necessárias para resolver determinado problema. A seguir, analisaremos os diferentes grupos de ferramentas de Big Data utilizados na Ciência de Dados.
Sistemas de Arquivos Distribuídos
Um sistema de arquivo distribuído é parecido com um sistema de arquivos normal, exceto pelo fato daquele rodar em múltiplos servidores simultaneamente. Quase tudo que um sistema de arquivos convencional faz um distribuído também faz. Tarefas como armazenar, ler e deletar arquivos, e adicionar regras de segurança são muito comuns em sistemas de arquivos distribuídos.
Vantagens de utilizar Sistemas de Arquivos Distribuídos
- Armazenamento de arquivos maiores que qualquer disco de computador.
- Replicação automática através de múltiplos servidores para obtenção de redundância e operações paralelas, escondendo a complexidade para o usuário.
- Escalabilidade mais simples
No passado a escalabilidade era aumentada movendo tudo de um servidor para um outro com mais memória, capacidade armazenamento e uma melhor CPU, isso era a chamada escalabilidade vertical. Hoje é possível adicionar outros servidores menores, tornando a escalabilidade potencialmente sem limites, isso é conhecido como escalabilidade horizontal.
Um dos mais utilizados sistemas de arquivos distribuídos no momento é o Hadoop File System (HDFS) , que é uma implementação do Google File System.
Framework de Programação Distribuída
Uma vez armazenado os dados em um sistema de arquivo distribuído, será necessário explorá-los. Um importante aspecto de se trabalhar em discos rígidos distribuídos é que não se pode mover os dados para o programa. Em vez disso, o programa é que é movido para os dados. Em virtude disso, é preciso analisar diversas complexidades em trabalhar com esse tipo de ecossistema. Exemplos de alguns frameworks de programação distribuída: JAQL, Apache Pig e Apache Map Reduce.
Framework de Integração de Dados
Um framework de integração de dados facilita a movimentação de dados de uma fonte para outra. Esse processo é semelhante a um processo ETL (Extract, Transform and Load) em um tradicional Data Warehouse. Exemplos de frameworks de integração de dados: Apache Sqoop e Apache Flume.
Framework de aprendizado de máquina (Machine learning frameworks)
Para extrair informações e padrões de um conjunto de dados, alguns algoritmos estatísticos e de aprendizado de máquina são utilizados. Para facilitar esse trabalho, existem algumas bibliotecas que ajudam bastante essa tarefa, entre eles o Scikit-learn. O Scikit-learn é uma das mais populares bibliotecas de aprendizado de máquina (machine learning) para Python.
Banco de Dados NoSQL
O prefixo “No” do NoSQL não quer fizer a falta de SQL, mas sim “não apenas SQL”, visto que muitos bancos desse paradigma implementam uma versão do SQL. Uma das vantaens dos bancos NoSQL em relação aos tradicionais é a escalabilidade, ou seja, a possibilidade de crescer virtualmente com muito mais facilidade. Exemplos são o MongoDB, Cassandra, entre outros.
Ferramentas de agendamento
As ferramentas de agendamento possibilitam a automatização de tarefas repetitivas, além de iniciar tarefas com base em eventos como adicionar um novo arquivo a uma pasta. Essas ferramentas são muito semelhantes a ferramentas como o CRON no Linux, porém desenvolvidas especificamente para Big Data. Um exemplo de utilização é a inicialização de uma tarefa de MapReduce sempre que um novo conjunto de dados estiver disponível em um diretório.
Implantação do sistema
Configurar uma infraestrutura de Big Data não é uma tarefa simples. E para facilitar o serviço dos engenheiros existem as ferramentas de implantação do sistema, que ajudam a implementar novos aplicativos no cluster de big data. Essas ferramentas automatizam a instalação e configuração de componentes de big data.
Referências
Introducing Data Science (Davy Cielen, Arno D. B. Meysman, Mohamed Ali)