Categorias
Big Data Ciência de Dados Python

Conheça o PyMove: biblioteca Python para identificação de trajetórias padrões, mineração e análise de dados

O Insight Lab é formado por um time multidisciplinar de pesquisadores que vão desde de alunos de graduação a especialistas. Com o propósito de  desenvolver pesquisas na área de Data Science, que possam beneficiar a outros pesquisadores e a sociedade em geral, nossos pesquisadores estão sempre atentos às necessidades que as mudanças e as novas tecnologias proporcionam. 

Observamos com isso, por exemplo, que o crescente uso de sensores GPS e barateamento de tecnologias móveis, nos últimos anos, têm gerado um grande volume de dados de trajetórias. Esses dados podem trazer respostas para facilitar diversas atividades que impactam diretamente na vida das pessoas. Pensando nisso, o quê um Cientista de Dados pode fazer a partir daí?

O que é uma trajetória?

Bem, antes de tudo é muito importante entendermos o que é uma trajetória. Uma trajetória é uma sequência de pontos cronologicamente ordenados, que representam o movimento de um objeto em um espaço geográfico. Cada ponto é formado por uma marcação de tempo e coordenadas geoespaciais (latitude,longitude). As trajetórias podem representar movimentos de diferentes objetos, como:pessoas, veículos e animais.

O que podemos fazer com os dados de trajetória?

Esse tipo de dado é muito valioso não só para a Computação, mas também para áreas como Geografia, Sociologia e Urbanização, sendo bastantes utilizados para aplicações como: sistemas de transporte inteligentes e computação urbana; análise de mobilidade sustentável; no rastreamento de fenômenos naturais e identificação de padrões de migração animal e etc.

Como trabalhar com esse dado?

Para que seja possível extrair informações dos dados e realizar análises consistentes dos mesmos, é preciso que um conjunto de atividades de mineração de dados, que veremos em mais detalhes a seguir, sejam executadas. Embora haja um grande volume de trabalhos e aplicações, nota-se a ausência de softwares e ferramentas que possam auxiliar pesquisadores em todo o processo para lidar e extrair as informações que esses dados possam oferecer.

Com isso, nós do Insight Data Science Lab estamos trabalhando para a elaboração de uma biblioteca open-source para Python que contemple o conjunto de etapas e atividades para lidar com esses dados: o PyMove!

O que é o PyMove?

O PyMove surgiu em meados de 2018 com o objetivo de ser uma biblioteca Python extensível que comporte um grande número de operações dentro das etapas de mineração de dados de trajetória!

O PyMove propõe :

  • Uma sintaxe familiar e semelhante ao Pandas;
  • Documentação clara;
  • Extensibilidade, já que você pode implementar sua estrutura de dados principal manipulando outras estruturas de dados, como o Dask DataFrame, matrizes numpy, etc., além de adicionar novos módulos;
  • Flexibilidade, pois o usuário pode alternar entre diferentes estruturas de dados;
  • Operações para pré-processamento de dados, mineração de padrões e visualização de dados.
Modelagem do Pymove
Estrutura de dados

A atual estrutura do PyMove é fortemente influenciada pelo trabalho de Yu Zheng, o qual propõe um paradigma que serve como um guia para realizar trabalhos de mineração de dados de trajetória. A figura 2.1.1 mostra a versão adaptada desse paradigma adotada no PyMove.

Figura 2.1.1. Um paradigma para mineração de trajetória. Fonte: Adaptado de [4]
A seguir, iremos destrinchar cada etapa citada na figura 2.1.1.
Pré-processamento

O pré-processamento de dados é uma etapa de extrema importância na mineração dos dados. Nela são realizadas atividades com o objetivo de melhorar a qualidade do dados para obtenção de melhores resultados em processamentos e análises futuras. Existem quatro técnicas básicas para esta etapa: filtragem de ruído, detecção de pontos de parada, compressão e segmentação de trajetória.

Filtragem de ruído

Alguns pontos da trajetória podem estar inconsistentes devido a problemas nos dispositivos de coleta de dados, na comunicação, ou em outros fatores externos, tais pontos são denominados ruídos. As técnicas de filtragem de ruído procuram realizar a remoção ou alinhamento desses dados ruidosos com a rede de ruas. Os pontos p5 e p9 na Figura 3.1 são, neste contexto, dados com ruído.

Figura 3.1. Trajetória com pontos lidos incorretamente. Fonte: adaptado de [1]
Detecção de pontos de parada

Pontos onde os objetos ficaram parados ou se movimentando ao redor, por um determinado limite de tempo, são chamados pontos de parada. Estes pontos podem representar: shoppings, atrações turísticas, postos de gasolina, restaurantes, entre outros. Os pontos de parada nos permitem representar uma trajetória como uma sequência de pontos com significado.
A figura 3.2 mostra uma trajetória, após a execução de um algoritmo, para detectar pontos de parada onde são encontrados três pontos de parada: casa, trabalho e supermercado. Esses pontos podem representar essa trajetória, como pontos p1, p2 e p3, respectivamente.

Compressão

Tem como objetivo reduzir o tamanho dos dados de trajetória através de um conjunto de técnicas, com o objetivo de evitar sobrecarga de processamento e minimizar a carga no armazenamento de dados, gerando uma representação mais compactada  que descreve a trajetória de um objeto.

Figura 3.2. Resultado da execução de um algoritmo de detecção de pontos de parada. Fonte: adaptado de [2].

Na Figura 3.3 podemos ver o resultado da compressão de uma trajetória, inicialmente ela é representada por doze pontos, mas após a compressão este número é reduzido para quatro pontos.

Figura 3.3. Demonstração da aplicação de uma técnica de compreensão de dados de trajetórias. Fonte: adaptado de [2].
Segmentação

Nesta etapa, a trajetória é subdividida em segmentos, de tal forma que os dados pertencentes ao mesmo segmento tenham comportamento homogêneo. A segmentação ajuda a descobrir padrões sobre os dados, diminui a complexidade computacional e é um passo obrigatório para processos de análise, como a clusterização e a classificação. A Figura 3.4 apresenta um exemplo de segmentação de trajetória pelo tempo fixo de duas horas, resultando em três novos segmentos.

Figura 3.4. Segmentação de uma trajetória com base no intervalo de tempo igual a duas horas. Fonte: adaptado de [2]
Map-matching

Como foi mencionado acima, os pontos gerados em uma trajetória podem não corresponder precisamente à real localização de onde o objeto em movimento passou, (figura 3.5-a).

Esta falta de precisão não é desejável para alguns tipos de aplicações, entre elas: as que trabalham com análise de fluxo de trânsito ou serviços de navegação (ZHENG,2015). Para resolver esses e outros problemas, são aplicados algoritmos de map-matching, que têm como objetivo alinhar os pontos da trajetória com a rede de ruas, (figura 3.5-b).

Figura 3.5 (a e b). Uma trajetória, antes e depois da aplicação do Map-matching. Fonte: adaptado de [1].
Indexação e recuperação de trajetórias

Durante o processo de mineração de dados de trajetórias, acabamos por precisar acessar frequentemente diferentes segmentos e amostras das trajetórias. Com o grande volume de dados, esses acessos podem demandar tempo e processamento. Por isso, é necessário a adoção de técnicas eficazes para o gerenciamento desses dados, oferecendo a recuperação rápida dos dados.

Os dois principais tipos de consultas, mostrado na Figura 2.1.1 – Um paradigma para mineração de trajetória.
  • KNN: esse tipo de consulta recupera as K, primeiras trajetórias com a distância agregada mínima, para alguns pontos ou uma trajetória específica.

Nas consultas de pontos buscamos por trajetórias que possuam uma boa conexão com os locais/pontos pesquisados, em vez de saber se a trajetória é semelhante à consulta em forma.

Nas consulta por trajetória buscamos encontrar os registros que possuam uma rota ou segmento de trajetória parecida. Essa consulta necessita da definição de uma função que delimite a similaridade e distância entre trajetórias.

  • Intervalo de consultas: recuperam os dados de trajetórias que estão contidos em um espaço ou intervalo. Essa técnica contém três abordagens para consultas de intervalo espaço-temporal.
  1. A primeira abordagem considera o tempo como a terceira dimensão além das informações que delimitam o espaço geográfico.
  2. A segunda abordagem divide um período em vários intervalos de tempo, criando um índice espacial individual.
  3. A terceira abordagem leva em consideração o espaço geográfico, dividindo-o em grades, as chamadas grids, e cria um índice temporal para as trajetórias que caem em cada célula dessa grade. Cada segmento que cai em uma grade é representado por um ponto com as coordenadas iguais ao ponto com horário inicial e o ponto com horário final do segmento.

A Figura 4 mostra as técnicas para melhoria da indexação e recuperação de dados e segmentos de trajetórias. Em (a) é mostrada a técnica de Intervalo de consulta. Nela são recuperados os pontos e segmentos de trajetórias dentro da região retangular tracejada em vermelho. Já em (b) e (c) são mostradas o uso da técnica de consulta via KNN, sendo a primeira consultas por pontos e a segunda consulta por segmentos de trajetórias similares.

Figura 4. Demonstração das abordagens utilizadas para indexação e recuperação de trajetórias. Fonte: adaptado de [4].
Modelos

Muitas aplicações exigem informações instantâneas a partir dos dados de trajetória, como é o caso de aplicações de guia de viagens ou detecção de anomalias de tráfego. Essas informações exigem algoritmos eficazes e muitas vezes são adquiridas por meio de técnicas de mineração de dados. Essas técnicas podem ser enquadradas em áreas, como classificação, detecção de anomalias, mineração de padrões e incertezas da trajetória. Abaixo é explorado o conceito de cada uma dessas técnicas.

Classificação

Trajetórias e segmentos podem ser classificados de diferentes modos e em diferentes categorias, como em: tipo de atividade, modos de transporte e até mesmo o movimento, através do uso de técnicas e algoritmos de aprendizado supervisionado.

Em geral, a classificação da trajetória é composta por três etapas principais:

  1. Utilização de métodos de segmentação da trajetória para prover segmentos;
  2. Extração de características de cada segmento;
  3. Criação de modelos para classificar cada segmento.
Detecção de anomalias

Anomalias, no contexto de dados espaço temporais, consistem em pontos ou até mesmo segmentos de uma trajetória que possuem um comportamento anormal. Não segue o padrão dos dados que representam uma trajetória, como é o caso dos pontos destacados em vermelho na Figura 3.1. Essas anomalias podem ser desencadeados por diversos eventos como: um acidente de trânsito, que obriga os carros a mudarem rapidamente de velocidade, um desvio de uma rota comum por conta de uma obra ou por estar perdido no caminho. A etapa de detecção de anomalias, se preocupa em encontrar esses pontos e/ou segmentos que violem um certo padrão de uma trajetória.

Mineração de padrões

Diferentes padrões de mobilidade podem ser identificados numa trajetória individual ou em um conjunto de trajetórias. Os padrões de mobilidade de trajetória em quatro categorias: Clusterização de trajetórias, Moving Together Patterns, , Padrões Periódicos e Padrões de Frequências Sequenciais.

  1. Clusterização: as técnicas dessa categoria têm como finalidade agrupar trajetórias em busca de algum padrão ou característica que diferenciem grupos.
  2. Moving Together Patterns: essa categoria reúne técnicas que procuram detectar indivíduos e/ou objetos que se movem juntos por determinado período de tempo, sendo bastante útil para detectar padrões. Esses padrões podem ter diversas aplicações, como ajudar a entender fenômenos de migração e tráfego de espécies.
  3. Padrões Periódicos: reúne técnicas que procuram identificar comportamentos e padrões temporais em trajetórias, como a ida a um dentista durante um intervalo de tempo, ou até mesmo os animais, que migram anualmente de um lugar a outro. A análise deste tipo de padrão auxilia na previsão de comportamentos futuros do objeto e na compressão de dados.
  4. Padrões de Frequências Sequenciais: reúne técnicas que possuem a finalidade de encontrar padrões onde objetos partilhem a mesma sequência de localização, num período similar de tempo. Os pontos da sequência não necessariamente precisam ser pontos consecutivos na trajetória original. Essas técnicas são amplamente utilizados em aplicações como recomendação de trajetória, predição de localização, compressão de dados.
Incerteza em trajetórias

Indivíduos e objetos realizam movimentos contínuos em determinados locais em que trafegam. Porém, devido à limitação de algumas aplicações ou por questão de economia de energia dos sensores, os dados que representam essa trajetória são enviados periodicamente. Desse modo, a localização desse indivíduo e/ou objeto será incerta, ou até mesmo desconhecida, entre dois pontos que descrevem sua trajetória.

Na Figura 6 é perceptível que entre dois pontos é possível tomar caminhos diferentes, por exemplo: partindo do ponto p1 é possível chegar ao ponto p2 de diferentes formas. Este contexto ocasiona a incerteza dos caminhos tomados entre pontos de uma trajetória.

Nessa linha de pesquisa, há duas sub-áreas, descritas a seguir:

  • Redução de incertezas: consiste em desenvolver técnicas que visam diminuir a incerteza da trajetória entre dois pontos.
  • Preservação de privacidade: consiste em desenvolver técnicas que visam ampliar a incerteza de trajetórias sem afetar a qualidade de um serviço ou o uso desses dados, visando proteger um usuário do vazamento de privacidade causado pela divulgação de suas trajetórias.
Figura 6. Demonstração de uma trajetória formada por três pontos, p1, p2 e p3. Fonte: adaptado de [4].
Visualização de trajetórias

A aplicação de técnicas de visualização de dados nos grandes volumes de dados de trajetórias podem facilitar a compreensão do comportamento de objetos em movimento, como veículos e descoberta de tráfego, social, geoespacial e até padrões econômicos. Essas visualizações podem ser combinadas com procedimentos de processamento dos dados, visando diminuir, limpar e filtrar os dados.

Para visualizar dados de trajetória são necessárias técnicas que exploram canais visuais como cor, tamanho, forma, orientação aplicadas a diferentes marcas como pontos, linhas, áreas, volumes e superfícies para representar estes dados, transformando-os em representações visuais apropriadas.

Há diferentes técnicas de visualização a serem aplicadas como:
  • Gráfico de Linhas: visualizações orientadas ao tempo enfatiza a exibição de padrões, periodicidade, tendências e anormalidade dos dados de trajetória. Nesse tipo de representação é amplamente utilizado gráfico de linhas, onde o eixo X delimita o tempo e o Y outra característica do dado, como os picos de velocidade de uma trajetória.
  • Mapa estáticos: são abordagens bastante comuns para representar informações de localização geográfica, como a análise de trajetórias de mobilidade ou fluxo de tráfego em uma rede distribuída. Convencionalmente, uma trajetória é representada por uma linha ou uma curva, podendo explorar combinações de variáveis, como cor, tamanho e direção, em relação às suas propriedades.
  • Clusters: Quando há uma grande massa de dados de trajetória, pode haver sobreposição de pontos em uma visualização. Com isso as visualizações com clusters em mapas ajudam bastante em análises, visto que um grupo de pontos que em determinado momento se sobrepunham, tornam-se um só. Essa técnica permite obter uma visão geral rápida de seus conjuntos de clusters.
Visualização dos dados de gorjetas das viagens de táxis fazendo uso do gráfico de linhas para demonstrar a quantidade de gorjetas obtidas pelas viagens de táxi no período de tempo de 1 a 7 de maio de 2011. Cada linha representa a gorjeta por viagem em uma região. Fonte: Wei Chen, Fangzhou Guo, and Fei-Yue Wang. A survey of traffic data visualization. IEEE Transactions on Intelligent Transportation Systems, 16:2970–2984, 12 2015.

 

Exploração do uso de recursos visuais para visualização em mapas estáticos. Fonte: adaptado de [3].
  • Mapas de Calor: Essa visualização é gerada a partir de uma matriz de células, onde cada célula é colorida de forma gradiente com base em valores ou função dos dados, sendo bastante útil quando é necessário gerar visualizações para grande volume de dados, fornecendo uma visão geral dos maiores e menores valores dos dados.

 

Visualização de todos os pontos sob um mapa gerado pelo Folium. Fonte: documentação Folium.

 

Utilização da técnica de cluster para visualizar os pontos sob um mapa gerado pelo Folium. Fonte: documentação Folium.
Tutorial

Depois de explorar mais sobre a arquitetura do PyMove e vislumbrar o mundo dos dados de trajetória, agora vamos botar a mão na massa!

Neste tutorial iremos entender como representar dados de trajetória no PyMove, aplicar funções de pré-processamento e visualização de dados existentes no PyMove!

Para isso, vamos utilizar o conjunto de dados utilizado neste trabalho, o Geolife GPS trajectory dataset, [5]. Ele é resultado da coleta realizada no projeto Geolife, da Microsoft Research Asia, por 178 usuários por mais de quatro anos. Esses dados registram uma grande variedade de movimentos de dos usuários, incluindo não só caminhos rotineiros, como também atividades esportivas e de lazer, amplamente distribuídos em mais de 30 cidades da China e em algumas cidades localizadas nos EUA e na Europa.

Esse conjunto de dados possui 17.621 trajetórias, registradas por GPS, com uma distância total de 1.251.654 quilômetros e duração de 48.203 horas. Os dados estão dispostos em 182 pastas, numeradas de 000 à 181, onde cada uma simbolizava um usuário. Os arquivos que contém os dados de localização possuem os valores separados por vírgula, onde representam, respectivamente, a latitude, longitude, campo sem valor, altitude, número de dias que passaram após a data 30/12/1999, data e tempo.

Por limitações de processamento e em busca de diversidade, nesse trabalho são utilizados os dados dos usuários 000, 010, 011 e 100, totalizando em 1.206.506 pontos de trajetórias.

Instalação do PyMove

Primeiro, vamos clonar o repositório!
COMANDO 1: git clone -b developer https://github.com/InsightLab/PyMove

Segundo, vamos criar um ambiente!
COMANDO 2: conda create -n pymove pip python=3.7

Terceiro, acesse o ambiente recém criado.
COMANDO 3: conda activate pymove

Quarto, vamos instalar as dependências da nossa biblioteca!
COMANDO 4: cd PyMove python setup.py install

Quinto, agora é só usar!
COMANDO 5: import pymove

 

Referências:

[1] G. A. M. Gomes, E. Santos, and C. A. Vidal. VISUALIZAÇÃO INTERATIVA DE DINÂMICAS DE TRÁFEGO ATRAVÉS DE DADOS DE TRAJETÓRIAS. PhD thesis, PD thesis, Universidade Federal do Ceará, 2018.

[2] G. A. M. Gomes, E. Santos, and C. A. Vidal. VISUALIZAÇÃO INTERATIVA DE DINÂMICAS DE TRÁFEGO ATRAVÉS DE DADOS DE TRAJETÓRIAS. PhD thesis, PD thesis, Universidade Federal do Cear´a, 2018.

[3] Tiago Gon¸calves, Ana Afonso, and Bruno Martins. Visualization techniques of trajectory data: Challenges and imitations. CEUR Workshop Proceedings, 1136, 01 2013.

[4] Yu Zheng. Trajectory data mining: An overview. ACM Transaction on Intelligent Systems and Technology, September 2015.

[5] Yu Zheng, Hao Fu, Xing Xie, Wei-Ying Ma, and Quannan Li. GeoLife User Guide 1.2. Microsoft Reasearch Asia, 2(April 2007):31–34, 2011

Categorias
Big Data Ciência de Dados

Entenda como funciona streaming de dados em tempo real

Desde o final do milênio passado, uma palavra relativamente desconhecida começou a ser propagada: “streaming”.  Timidamente no início e geralmente em áreas mais técnicas, foi gradualmente emergindo até se tornar onipresente.

De plataformas de áudio (Spotify, Deezer, Apple Music, YouTube Music, Amazon Music,Tidal, entre outras) e de vídeo (Youtube, Netflix, Vimeo, DailyMotion, Twitch, entre outras) a aplicações mais específicas, o streaming passou a ser uma palavra do cotidiano dos devs.

Geralmente, o termo vem acompanhado de outro já bem conhecido: Big Data, o qual podemos entender como conjuntos de dados (dataset) tão grandes que não podem ser processados e gerenciados utilizando soluções clássicas como sistemas de banco de dados relacionais (SGBD). Podemos ter streaming de dados fora do contexto de Big Data, porém é bem comum essas palavras virem em um mesmo contexto.

Neste instante, o desenvolvedor já quer fazer um “hello world” e já pergunta: “qual o melhor framework de streaming?” (falar no melhor é quase sempre generalista e enviesado, o termo “mais adequado” é mais realista, opinião do autor). Vamos entender o que é streaming de dados e o que podemos entender como “tempo real”.

Streaming de dados

Para uma melhor concepção do que é streaming de dados, primeiro vamos entender o que é processamento de dados em batch (lote em português ou, um termo mais antigo, “batelada”).

As tarefas computacionais geralmente são chamadas de jobs e podem executar em processos ou threads. Os que podem ser executados sem a interação do usuário final ou ser agendados para execução são chamados de batch jobs. Um exemplo é um programa que lê um arquivo grande e gera um relatório.

Frameworks

Na era do Big Data, surgiram vários modelos de programação e frameworks capazes de executar jobs em batch de forma otimizada e distribuída. Um deles é o modelo de programação MapReduce que foi introduzido e utilizado inicialmente pela Google como um framework que possui três componentes principais: uma engine de execução MapReduce, um sistema de arquivo distribuído chamado Google File System (GFS) e um banco de dados NoSQL chamado BigTable.

Podemos citar vários outros frameworks que possuem capacidade de processamento de dados em larga escala, em paralelo e com tolerância a falhas como: Apache Hadoop, Apache Spark, Apache Beam e Apache Flink (falaremos mais dele adiante). Frameworks que executam processamento em batch geralmente são utilizados para ETL (Extract Transform Load).

Processamento de datasets em forma de streaming

Uma outra forma de processar datasets é em forma de streaming. Aqui, já deixamos uma dica importante: streaming não é melhor que batch, são duas formas diferentes de processar dados e cada uma delas possui suas particularidades e aplicações.

Então, sem mais delongas, o que é um processamento de dados em streaming? De acordo com o excelente (e super indicado) livro “Streaming Systems: The What, Where, When, and How of Large-Scale Data Processing”, podemos definir streaming como “um tipo de engine de processamento de dados projetado para tratar datasets infinitos”.

A primeira coisa a se ter em mente é que os dados virão infinitamente (unbounded), diferente do processamento em batch que é finito, e não há como garantir a ordem em que os mesmos chegam. Para isso existe uma série de estratégias (ou heurísticas) que tenta mitigar tais questões e cada uma delas com seus pontos fortes e fracos. Como diz o ditado: “There is no free lunch”!

Quando tratamos de datasets, podemos falar de duas estruturas importantes: tabelas, como uma visão específica do dado em um ponto específico do tempo, como acontece nos SGBDs tradicionais, e streams, como uma visão elemento a elemento durante a evolução de um dataset ao longo do tempo.

Dois eixos de funcionamento: sources e sinks

O dataset no processamento de streams funciona com duas pontas: sources e sinks. O source representa uma conexão de entrada e o sink uma de saída no seu streaming. Para clarear, podemos fazer uma analogia bem simples: pensem em uma caixa d’água que é enchida por meio de uma ligação de canos da companhia de água da sua cidade. Essa caixa d’água dá vazão para as torneiras e chuveiros da casa por meio da ligação hidráulica de sua residência. Nessa abstração, nosso dataset é a água contida na caixa d’água, nosso source é a ligação com a companhia de água e, finalmente, os sinks são as torneiras e chuveiros.

Levando agora para um exemplo real, podemos ter um sistema de streaming codificado em um framework/engine de processamento distribuído que poderia ser Apache Flink, Apache Storm, Apache Flume, Apache Samza, dentre outros, que recebe mensagens por meio da leitura de um sistema de mensageria (source) como Apache Kafka, por exemplo, processa-as em tempo real filtrando apenas aquelas que contiverem determinadas palavras-chave e envia uma saída para o Elasticsearch (sink 1) e outras para um banco de dados relacional PostgreSQL (sink 2).

 

O eixo temporal

Agora que já sabemos o que é um streaming de dados, vamos ao outro eixo: o temporal.

Entendemos o tempo como algo contínuo e que nunca para. Não se assustem! Aqui não iremos tratar questões físicas, como a teoria da relatividade. Nós, enquanto devs, tratamos o tempo como contínuo.

Para uma aplicação que processa streaming, cada dado que entra na nossa engine possui três abstrações de tempo: event time, ingestion time e processing time. O event time representa a hora em que cada evento individual é gerado na fonte de produção, ingestion time o tempo em que os eventos atingem o aplicativo de processamento streaming e processing time o tempo gasto pela máquina para executar uma operação específica no aplicativo de processamento de streaming.

Event time, ingestion time e processing time

Afinal de contas, a minha aplicação de streaming processa dados em tempo real? Aí vem a resposta que ninguém gosta de ouvir: “depende do contexto”, ou se preferir, “isso é relativo”.  Vamos ao exemplo anterior da leitura de mensagens do Kafka e escrita no Elasticsearch e PostgreSQL, detalhando os tempos do processamento:

Event time   2020-01-01 01:45:55.127
Ingestion time   2020-01-01 01:45:57.122
Processing time   2020-01-01 01:45:57.912

 

O Ingestion time é responsável por qualquer atraso no processamento do dado e sua possível flutuação assim que o processamento “consome” a mensagem.

Quanto maior a diferença entre o tempo de geração da mensagem (event time) e o tempo que a mensagem chega a engine de streaming (ingestion time), menos “tempo real” será seu processamento. Por isso costumamos, falar em artigos científicos, em tempo “quase-real”. A diferença entre a hora da geração e a que a mensagem é processada é de 2 segundos e 784 milissegundos. Isso representa o “atraso” de apenas uma mensagem. Agora imaginem um throughput de 100 mil mensagens por segundo! Essa diferença de tempo tende a aumentar se o sistema não conseguir consumir e processar essa quantidade de mensagens à medida que chegam.

Mais uma dica de Big Data e streaming: não menospreze os milissegundos. Em grandes volumes, eles fazem muita diferença.

A ordenação dos dados

Outra questão que precisamos estar preparados é o problema que ocorre quando recebemos os dados de mais de uma fonte (source) ou a fonte de dados está com os event times fora de ordem. Se tivermos uma aplicação onde a ordem desses eventos importe, é necessário que haja uma heurística que trate dessa ordenação ou mesmo deste descarte dos dados fora de ordem. A maioria dos frameworks de streaming implementam alguma  dessas heurísticas.

Um dos frameworks mais utilizados pelos devs, o Apache Flink possui o conceito de watermarks (marcas d’água).  A ideia central é: quando um dado é “carimbado” com uma watermarks, a engine supõe que nenhum dado com tempo inferior (passado) irá chegar.

Como não podemos ter essa certeza, o framework espera que o desenvolvedor escolha como quer tratar esses casos: não toleramos dados com watermarks inferior à última reconhecida (atrasado) ou o framework espera um determinado tempo (10 segundos, por exemplo), ordena as mensagens e envia para processamento. O que chegar fora dessa janela de tempo será descartado. Há a possibilidade ainda de tratar esses dados que seriam descartados, mas fica fora do escopo deste post.

O case Alibaba

Um exemplo real da utilização de streaming de dados em tempo real em um ambiente de Big Data é o case do gigante chinês Alibaba, um grupo de empresas que possui negócios e aplicações focadas em e-commerce, incluindo pagamentos on-line, business-to-business, motor de busca e serviços de computação em nuvem.

Seus dois produtos mais conhecidos são o site de e-commerce (Alibaba.com) e os serviços em nuvem (Alibaba Cloud). O grupo lançou oficialmente em 2016 uma plataforma utilizada para busca e recomendação utilizando Apache Flink. Os mecanismos de recomendação filtram os dados dentro da plataforma de streaming utilizando algoritmos e dados históricos para recomendar os itens mais relevantes ao usuário.

 

Passos fundamentais para o trabalho com streaming de dados

Neste ponto, já entendemos o que é um streaming de dados e o quão tempo-real ele pode ser. Para finalizarmos, deixaremos algumas dicas para quem quer enveredar por essa área tão onipresente no mercado dev:

  1. Entenda os conceitos de streaming de dados antes de escolher um framework e começar a codar (de novo a dica do livro: Streaming Systems). Isso envolve o conceito de sources, sinks, pipeline, agregações de tempo;
  2. Esteja preparado para grande volumes de dados e altos throughput: isso pode parar sua aplicação por falta de recursos como espaço, memória e processamento;
  3. Pense distribuído! A maioria dos frameworks de streaming possuem o conceito de cluster. Dessa forma, sua aplicação conseguirá escalar horizontalmente e estar preparada para grandes volumes;
  4. Escove os bits. Essa é uma expressão bem dev. Entenda bem a linguagem e o framework que você está utilizando. Tire o máximo deles. Uma estrutura de dados inadequada ou ineficiente para o caso, um laço desnecessário, uma serialização/deserialização onde não é preciso podem minar o desempenho da sua aplicação.
  5. Por último e não menos importante: teste de carga! Faça testes levando sua aplicação ao extremo para identificar possíveis gargalos. Isso não substitui os testes unitários e afins. A finalidade é outra: ver o quanto sua aplicação consegue processar de dados.

É isso aí, pessoal. Espero que tenha suscitado uma vontade de aprender mais sobre streaming de dados em tempo real e suas aplicações.

Saudações e até a próxima!

 

Referências:

 

Categorias
Big Data Ceará Inteligência Artificial Segurança Pública Tecnologia

Com 30 meses seguidos de diminuição no CVP, roubos de veículos no Ceará se destacam com redução de 46% em 2019

O total de veículos roubados e furtados é de 8.860, neste ano. Já o número de carros e motos recuperados é de 6.559, ou seja, correspondendo a 74%

Por mais um mês, o Ceará registrou queda nos roubos de veículos, conforme dados compilados pela Secretaria da Segurança Pública e Defesa Social (SSPDS). Com isso, o Estado segue com números positivos em todo o acumulado do ano, quando foram registrados 4.696 roubos e 46% de redução em comparação ao mesmo período do ano passado, na ocasião em que 8.657 roubos foram contabilizados pela SSPDS. Com esse balanço de onze meses, a Segurança Pública cearense registra o melhor índice desde 2011, quando ocorreram 3.354 crimes. Esse recorte está inserido nos Crimes Violentos Contra o Patrimônio (CVP), indicador relativo a todos os tipos de roubos (exceto latrocínio), que chega ao 30° mês seguido de números positivos.

Só em novembro, a retração no roubo de veículos foi de 39%, indo de 728, no mesmo mês do ano passado, para 444, no mês passado. Em outubro, a redução foi de 45%, caindo de 855 para 469. Já em setembro, os números caíram de 699 para 356, com 49% de redução. Agosto, por exemplo, diminuiu de 637 para 417, correspondendo à redução de 35%. Em julho, a redução foi de 42%, caindo de 696 para 401 roubos de veículos. Em junho, a diminuição foi de 41%, passando de 768 para 454.

Em maio, foram 50% a menos roubos de veículo, passando de 860, no quinto mês de 2018, para 429, no mesmo período deste ano. Em seguida, vem o mês de abril, que passou de 816 casos para 442, o que corresponde a uma redução de 46%. A retração aconteceu também em março, quando os 913 roubos de carros em 2018 caíram para 472 neste ano, correspondendo a uma redução de 48%. Em fevereiro, a queda foi de 49%, indo de 794 para 405. Por último, janeiro, que registrou a maior queda percentual em um mês, com 54% de diminuição, saindo de 891 para 407 casos.

Recuperações de veículos

Uma das estratégias utilizadas pelo Sistema de Segurança Pública para alcançar esses resultados positivos é a política de combate a mobilidade do crime. Ou seja, a partir do controle de carros e motocicletas que circulam pelas cidades cearenses, a Polícia consegue realizar cercos inteligentes e interceptar veículos automotores roubados, furtados ou aqueles que são utilizados em ações criminosas.

Essa política ocorre por meio da utilização das mais de 3.300 câmeras de videomonitoramento, da inteligência artificial do Sistema Policial Indicativo de Abordagem (Spia) e dos cercos inteligentes realizados pela Polícia Militar do Ceará (PMCE) a partir de orientações repassadas pelos operadores da Coordenadoria Integrada de Operações de Segurança (Ciops). O impacto da expansão dessa estratégia se traduz em números que se destacam em 2019, como por exemplo, os veículos recuperados pelas forças de segurança. O total de veículos roubados e furtados é de 8.860, neste ano. Já o número de carros e motos recuperados é de 6.559, ou seja, correspondendo a 74%.

“É fruto de todo o trabalho que temos feito aqui no Estado, ao inovar com o combate a mobilidade do crime. Então, é uma estratégia, que realmente tem dado certo, e servido de modelo para todo o país, já que o Ceará é o Estado que mais reduz roubos em todo o país, como os de veículos e de cargas, por exemplo. Então esse trabalho vem nos conduzindo para esse resultado e certamente terminaremos o ano com um dos melhores resultados de toda a década”, destacou o secretário da SSPDS, André Costa.

Crimes Violentos contra o Patrimônio

Os Crimes Violentos contra o Patrimônio (CVP) chegaram ao 30° mês de redução consecutiva no Estado. No acumulado de janeiro a novembro de 2019, a redução CVP 1, que abrange roubos a pessoa, de documentos e outros, é de 19,8%. Foram 50.142 ocorrências desse tipo registradas, em 2018, contra 40.202, em 2019. No total, são 9.940 roubos a menos do que no ano passado.

Ainda no acumulado, todas as regiões do Ceará registraram resultados positivos. A maior queda percentual foi no Interior Norte, com menos 31,4% de casos, indo de 4.477 para 3.069. Em seguida, vem o Interior Sul, com queda de 28,9%, indo 3.950 para 2.810.

Depois, vem a Região Metropolitana de Fortaleza, com 24,7 % de redução, diminuindo de 8.583 para 6.459. Por fim, vem Fortaleza com redução de 15,9%, passando de 33.132, nos onze meses de 2018, para 27.864, no mesmo período deste ano. Só em novembro último, o Estado reduziu em 18% o CVP 1, com 827 ocorrências a menos se comparado ao ano passado. Foram 4.588 ocorrências, no décimo primeiro mês do ano passado, contra 3.761, no mesmo período de 2019.

No CVP 2, que abrange roubo de carga, com restrição de liberdade da vítima, a residência, de veículos e contra instituições financeiras, a redução foi ainda maior em 2019. Os onze meses contabilizaram uma queda de 45,7%, com 10.006 ocorrências no ano passado, contra 5.433, no mesmo período de 2019. No total, são 4.573 crimes a menos.

A maior redução percentual, no acumulado dos nove primeiros meses de 2019, foi na Região Metropolitana, com redução de 47,7%: 2.550 (2018) e 1.333 (2019). Em seguida, vem Fortaleza, com 46,9% de queda: 5.282 (2018) e 2.807 (2019). Depois vem o Interior Norte, com 41,5% de diminuição: 1.317 (2018) e 771 (2019). Por último, o Interior Sul, com retração de 39,1%: 857 (2018) e 522 (2019). Só em novembro, foram 334 ocorrências a menos no Ceará, se comparado com o mesmo período do ano passado. Isso corresponde à queda de 40,2% nos crimes, passando de 830 para 496.

Categorias
Big Data Ceará Ciência de Dados

Integração e fortalecimento da ciência de dados foi pauta durante reunião do Insight com a SSPDS

Durante a semana, na quarta-feira(13), o Insight participou de uma reunião com o secretário da Segurança Pública e Defesa Social (SSPDS), André Costa, e o secretário da Administração Penitenciária (SAP), Mauro Albuquerque, na sede da SSPDS, em Fortaleza, para tratar sobre a integração de informações entre as duas pastas e o fortalecimento da área de ciência de dados. Além dos gestores, o superintendente de Pesquisa e Estratégia de Segurança Pública, Aloísio Lira, o coordenador do Programa de Mestrado e Doutorado da Pós-Graduação do Departamento de Computação da Universidade Federal do Ceará (UFC), professor Antônio Macedo e a professora e pesquisadora do Insight Lab, Ticiana Linhares, também participaram da reunião.

Conforme André Costa, o encontro serviu para apresentar ao secretário Mauro Albuquerque e equipe como funciona o Big Data “Odin”, desenvolvido por pesquisadores da SSPDS e da Universidade Federal do Ceará (UFC). “O Ceará tem sido destaque em todo o país, por ter criado uma área de ciência de dados na Secretaria da Segurança, a primeira no país a tomar essa iniciativa. Aqui, criamos uma ferramenta tecnológica, que foi um Big Data, uma plataforma integradora de inúmeras bases de dados nossos e de outras áreas dos Governos Federal, Estadual e Municipal, e até mesmo da iniciativa privada. Nós já integrávamos algumas informações com a SAP, o que vem nos auxiliando, por exemplo, na área da Segurança Pública, traçando ações preventivas e evitando a prática de delitos. Agora, queremos aumentar essa troca de conhecimento, com a utilização do Odin”, disse.

 

 

O Big Data “Odin” foi desenvolvido pela SSPDS e UFC, e permite, entre outras coisas, uma análise profunda das estatísticas, sendo possível estratificar, com alta precisão, os crimes, bem como encontrar padrões que possam levar a predições. Alimentado por mais de 100 sistemas dos órgãos de Segurança Pública do Estado e de instituições parceiras, o Odin possui mais de 90 bases de dados diferentes e é capaz de analisar milhares de tipos de dados diferentes, que ficarão à disposição dos gestores através de um painel analítico “Cerebrum”. Os sistemas foram remodelados para fornecer as informações, em tempo real, e facilitar o processo de investigação, inteligência e tomada de decisão.

“Apresentamos toda a construção de informações do sistema penitenciário, mostrando como a SSPDS tem trabalhado com esses dados. Além disso, buscamos entender como a SAP pode utilizar essas mesmas informações e quais perguntas eles precisam responder, quais desafios eles precisam vencer, para que possamos remodelar essa ferramenta e melhorar ainda mais o trabalho da Secretaria da Administração Penitenciária”, destacou Costa.

Já para Mauro Albuquerque: “o Big Data facilitará a atuação e a integração entre as duas secretarias, porque permitirá a consulta e o cruzamento de informações que é fundamental para a área cuidada pelas duas pastas”, disse.

 

 

As falas dos secretários são complementadas pela avaliação do superintendente da Supesp, Aloísio Lira, que cita importância do que vem sendo desenvolvido pelas pastas com o objetivo de aprimorar a persecução criminal. “Foi um momento para o alinharmos as tecnologias e construir um modelo de integração e tratamento de dados, que seja benéfico a ambos. Isso para que possamos acompanhar o preso desde a abordagem, até o momento de entrar e sair do presídio. Isso nos ajuda a termos um controle da execução de todos os procedimentos, permitindo, futuramente, que a Supesp realize estudos de reincidência, além de saber que tipos de inquéritos policiais viraram processo e condenações”, explicou.

Categorias
Big Data Ciência de Dados

Insight Lab presente em workshop internacional de predição da mobilidade

A professora Ticiana L. Coelho da Silva, pesquisadora do Insight Lab, está presente no workshop  internacional “PredictGIS 2019sobre Predição de Mobilidade (Prediction of Human Mobility) promovido pelo grupo ACM Special Interest Group on Spatial Information (ACM SIGSPATIAL).

 A conferência acontece em Chicago (EUA), entre os dias 5 e 9 de novembro, e reúne estudiosos de diversas áreas para apresentação e debate dos avanços nas técnicas e metodologias geoespaciais. 

O estudo de predição da mobilidade envolve prever a próxima localização, quanto tempo para chegar no próximo destino, entre outras análises. Isso contribui para o entendimento da dinâmica geográfica da população. 

O combate à criminalidade também é fortalecido por esse campo de conhecimento. Nós do Insight temos aplicado essa área nas estratégias de segurança pública desenvolvidas em nosso laboratório. Essas estratégias têm contribuído para a queda dos índices de violência no estado do Ceará. 

E a questão da segurança foi tema do nosso trabalho exposto neste workshop. Nossa pesquisadora apresentou “A Novel Approach to Approximate Crime Hotspots to the Road Network” (Uma Nova Abordagem para Pontos Críticos do Crime na Rede Rodoviária). O artigo foi produzido por Francisco Carlos Freire Nunes Junior, Ticiana L. Coelho da Silva, José Florêncio de Queiroz Neto, José Macedo e Wellington Silva.

Categorias
Big Data Inteligência Artificial Segurança Pública UFC

UFC está entre as melhores do mundo no ensino de engenharias e de ciência da computação

O Brasil tem 32 representantes na lista das melhores instituições de ensino de engenharia do mundo, segundo o ranking da Times Higher Education (THE) 2020. E a Universidade Federal do Ceará está entre elas, compartilhando posição com outras 10 instituições, todas do eixo Sul-Sudeste.

A THE divulga, anualmente, um dos principais rankings universitários do mundo, o THE World Universities Rankings. Em paralelo, publica levantamentos por campo do conhecimento. Em um deles, são destacadas as melhores instituições de ensino nas áreas de engenharia geral, engenharia elétrica e eletrônica, engenharia mecânica e aeroespacial, engenharia civil e engenharia química.

Na edição de 2020, foram avaliadas 1.008 universidades, número superior ao da edição passada, que analisou 903 instituições. O Instituto de Tecnologia da Califórnia e a Universidade de Stanford compartilham o primeiro lugar geral. A partir da 100ª posição do ranking, as universidades são agrupadas por faixa. As brasileiras estão distribuídas em três faixas: 401-500, 601-800 e 801+.

UFC é a única instituição do Norte, Nordeste e Centro-Oeste a ocupar a faixa 601-800. As primeiras colocadas do Brasil no levantamento mundial, ocupando a faixa 401-500, são a Universidade de Campinas e a Universidade de São Paulo.

O reitor Cândido Albuquerque comemora o resultado. “Engenharia e computação são áreas nas quais nos destacamos e, mundialmente, são as áreas pelas quais as universidades se firmam”, avalia. Ele acrescenta que em ambos os campos de conhecimento a UFC tem realizado diversas parcerias, notadamente com o poder público, citando como exemplo o projeto Big Data e Inteligência Artificial.

Nele, a UFC desenvolve, em cooperação com a Secretaria da Segurança Pública e Defesa Social, ferramentas que irão compor o Programa Nacional de Enfrentamento à Criminalidade Violenta. “Nosso desempenho nessas áreas é considerável, pois estamos à frente das instituições do Norte, Nordeste e Centro-Oeste. Mas precisamos melhorar ainda mais”, enfatiza.

Funcionários da Coordenadoria Integrada de Operações de Segurança, CIOPS. CIOPS é localizado dentro do complexo da Secretaria de Segurança Pública e Defesa Social, SSPDS, na avenida Bezerra de Menezes. Foto: Alex Gomes – Especial para O POVO/Alex Gomes – Especial para O POVO

CIÊNCIA DA COMPUTAÇÃO – Além das engenharias, a THE avaliou as melhores instituições de ensino de ciência da computação. Nesse levantamento, há 21 instituições brasileiras entre as 749 listadas, e a UFC também é destacada.

A Universidade Federal do Ceará ocupa a faixa 601+, ao lado de outras 12 instituições, como a Universidade de Brasília (UnB), a Federal da Bahia (UFBA), a Federal de Pernambuco (UFPE) e a do Paraná (UFPR).

Fonte: Coordenadoria de Comunicação Social e Marketing Institucional da UFC – fone: (85) 3366 7331

Fonte:  UFC
Categorias
Big Data Ceará Inteligência Artificial Segurança Pública

Nova Estratégia de Segurança Pública do Governo do Ceará é apresentada na Câmara dos Deputados como referência nacional

Após se destacar nacionalmente na redução dos principais indicadores criminais, especialmente nos Crimes Violentos Letais Intencionais (CVLI), que já alcançam uma queda por 18 meses seguidos, o estado do Ceará, representado pelo secretário da Segurança Pública e Defesa Social (SSPDS), André Costa, apresentou o conceito da Nova Estratégia de Segurança Pública (Nesp) do Governo do Ceará, na Câmara dos Deputados, em Brasília/DF. A iniciativa foi um pedido do deputado federal de Minas Gerais, Doutor Frederico, que requereu uma audiência pública, com a presença do gestor cearense, na Comissão de Segurança Pública e Combate ao Crime Organizado, nesta quarta-feira (23).

Além de André Costa, o superintendente de Pesquisa e Estratégia de Segurança Pública (Supesp) – órgão vinculado à SSPDS – e criador da teoria de combate à mobilidade do crime, Aloísio Lira; o secretário da Administração Penitenciária (SAP) do Estado do Ceará, Mauro Albuquerque; e o coordenador do Programa de Mestrado e Doutorado da Pós-Graduação do Departamento de Computação da Universidade Federal do Ceará (UFC), professor Antônio Macedo, também expuseram as estratégias montadas pela Segurança Pública do Ceará na construção de políticas públicas na área.

“A apresentação é para podermos expor toda a estratégia e o planejamento que tem sido feito no estado do Ceará. Vale destacar o trabalho que temos feito na área de tecnologia em segurança publica. Nós vamos apresentar os resultados que essas ações vem apresentado nas reduções de CVLI e CVP. Vamos colocar a disposição da comissão de segurança pública da Câmara dos Deputados para que possamos colaborar com qualquer proposta no legislativo, mas que possamos levar essa experiência no Ceará para os estados de origem e colaborar cada vez mais com a segurança publica em todo o País, destacou André Costa, antes de falar aos deputados e convidados.

A Nesp, que foi apresentada pelos gestores cearenses, consiste na criação de um novo caminho traçado pelo Governo, que visa o combate à violência no Estado por meio da integração, coordenação e responsabilização em diferentes níveis. Além do investimento em tecnologias da informação, em sistemas e dispositivos, construídos para somarem-se ao trabalho dos homens e mulheres que atuam na segurança pública, um dos pontos dentro da nova estratégia é a valorização e motivação dos profissionais. Junto ao trabalho feito pela SSPDS, há ainda as novas medidas dentro do sistema prisional e do sistema socioeducativo do Ceará, que impactam diretamente na queda dos índices criminais. Em paralelo às ações de segurança, há ainda o entendimento que o combate à violência não se limita apenas ao trabalho das polícias. Por isso, os pilares da Nesp também se baseiam em políticas públicas de educação, redução da pobreza, de cultura, esporte e de saúde.

“A ideia hoje é comentarmos sobre as boas praticas no estado do Ceará no uso de tecnologia do Big Data e inteligência artificial na Segurança Publica. Isso foi desenvolvido em parceria com a SSPDS, por meio do secretário André e o superintendente Aloisio Lira, no sentido de desenvolvermos uma solução customizada especificamente para os problemas de segurança pública do Estado. Essa arquitetura usou código aberto (plataformas abertas) customizadas para os problemas que a Secretaria quisesse atacar. Dentro da apresentação, eu pretendo mostrar a filosofia dessa arquitetura, mostrar que a tecnologia não é o fim, mas sim, um meio. Vamos discutir um pouco a necessidade de um projeto dessa envergadura ser totalmente alinhado com essa estratégia. Para fazermos um projeto de acordo com a realidade”, evidencia o professor Antônio Macedo, que coordenou os trabalhos integrados na UFC.

Essa não foi a primeira vez que a Secretaria da Segurança do Ceará apresentou o tema em Brasília. No dia 20 de agosto deste ano, André Costa já havia palestrado sobre o tema durante o Seminário de Boas Práticas em Tecnologia da Informação Voltadas à Segurança Pública. Na ocasião, quatro sistemas desenvolvidos pela SSPDS e UFC foram entregues à Secretaria Nacional de Segurança Pública (Senasp) do Ministério da Justiça e Segurança Pública (MJSP), que repassará as tecnologias que vêm contribuindo para os bons resultados em território cearense para as outras unidades da federação.

A expansão dos projetos cearenses para os demais estados brasileiros é capitaneada pelo MJSP e coordenado nacionalmente pelo secretário André Costa; pelo superintendente de Pesquisa e Estratégia de Segurança Pública (Supesp), Aloísio Lira; pelos professores doutores do Departamento de Computação da UFC, Antônio Macedo e Paulo Rêgo.

“Hoje, nós mostramos como os crimes evoluem e como a Segurança Pública deve acompanhar essa evolução. Apresentamos como o Ceará passou a repensar de forma diferente e se organizar para dar uma resposta à criminalidade e assim traçar novas estratégias. Explicando ainda como a tecnologia ajudou durante esse processo”, revela Aloísio Lira, superintendente da Supesp.

A construção de estratégias da SSPDS

Durante as suas apresentações, os representantes cearenses falaram sobre as ferramentas e estratégias construídas sobre três pontos importantes: mobilidade, território e ciência de dados. Os parlamentares conheceram, por meio de explicações técnicas e apresentação de números, quais as ações que estão em desenvolvimento graças à parceria entre SSPDS, Polícia Rodoviária Federal (PRF) e pesquisadores da Universidade Federal do Ceará (UFC) e demais instituições de ensino superior.

Uma das ferramentas apresentadas foi o Sistema Policial Indicativo de Abordagem (Spia), uma inteligência artificial desenvolvida pela SSPDS e PRF, que funciona em conjunto ao sistema de videomonitoramento da Coordenadoria Integrada de Operações de Segurança (Ciops) da SSPDS, e suas mais de 3.300 câmeras em todo o Ceará. Atuando na identificação de carros e motocicletas roubados ou furtados, o Spia e os cercos inteligentes, realizados pela Polícia Militar, quebram um ciclo de ações criminosas que ocorreriam a bordo do veículo automotor, como a prática de novos roubos e até mesmo homicídios.

A utilização da ferramenta Spia e o aprimoramento da expertise policial impactaram na melhoria dos Crimes Violentos contra o Patrimônio (CVP), que em setembro deste ano chegou ao 28° mês de queda. Nesse contexto, há ainda a redução de 64% nos roubos de cargas e a retração de 47% nos roubos de veículos, por exemplo.

A construção de ferramentas que ajudem na tomada de decisão também foi um tema abordado durante a audiência pública. Como exemplo, os presentes tiveram a oportunidade de entender sobre a funcionalidade do Big Data “Odin” e do seu painel analítico “Cerebum”. A ferramenta, que foi desenvolvida pela SSPDS e UFC, permite, entre outras coisas, uma análise profunda das estatísticas, sendo possível estratificar, com alta precisão, os crimes, bem como encontrar padrões que possam levar a predições.

Alimentado por mais de 100 sistemas dos órgãos de Segurança Pública do Estado e de instituições parceiras, o Odin possui mais de 90 bases de dados diferentes e é capaz de analisar milhares de tipos de dados diferentes, que ficarão à disposição dos gestores através de um painel analítico. Os sistemas foram remodelados para fornecer as informações, em tempo real, e facilitar o processo de investigação, inteligência e tomada de decisão.

Por último, os parlamentares conheceram o funcionamento do Portal do Comando Avançado (PCA), que é um aplicativo disponibilizado para os profissionais de segurança. Por meio desse mecanismo, é possível identificar possíveis suspeitos por meio do leitor biométrico conectado a um celular smartphone. O procedimento já é adotado no Ceará em situações em que o indivíduo não apresenta documento de identificação à composição. O próximo passo comentado durante a audiência pública, e que está em fase de teste, é o reconhecimento facial, feito por meio da câmera de um smartphone.

*Imagem: TV Câmara

Categorias
Big Data Ciência de Dados

Evento realizado: Palestra de “Introdução à Ciência de Dados e Big Data”

A III Semana da Atuária aconteceu nos dias 18 a 20 de setembro (2019) na Faculdade de Economia, Administração, Atuária e Contabilidade (FEAAC). O evento acolheu professores, estudantes e profissionais da área.

Na ocasião, o Insight Lab foi representado pelo professor Régis Pires Magalhães, que ministrou a palestra “Ciência de Dados e Big Data”. A apresentação aconteceu no dia 18 de setembro, de 18 às 20h, e abrangeu o cenário destas ciências, além de mostrar aspectos do funcionamento do Insight Lab. 

Confira as imagens:

Categorias
Big Data Programação

Por que você deve aprender Scala?

E por que não aprender Scala? Qual razão pode levar um programador a dispensar o prazer de aprender uma nova linguagem de programação que, além de estar crescendo cada vez mais, é capaz de tornar o processo de codificação mais conciso e funcional?

Scala é uma linguagem de programação multiparadigmática que executa sobre a JVM. É uma linguagem desenvolvida para herdar as vantagens presentes no Java, permitindo também o usuário operar outros paradigmas, como o paradigma funcional, nesse mesmo ambiente. Com Scala, o usuário elabora programas e aplicações, como o próprio nome sugere, escaláveis. 

Escalabilidade

Raymond Roestenbutg, no livro Akka in Action, apresenta uma ferramenta feita em Scala chamada Akka, a qual facilita a programação de aplicações distribuídas utilizando o modelo de programação de Atores. Nele, é apresentado como exemplo uma aplicação para cadastro e venda de ingressos de eventos.

O mais interessante do exemplo é que, o mesmo código, é capaz de lidar desde uma pequena quantidade de eventos a um cenário real de aplicação, mostrando a escalabilidade da tecnologia.

Em expansão

Scala vive um quadro de propagação acelerado, além da adoção do sistema por empresas de alto impacto global, ela possui um alto potencial de expansão por ser requisitada por campos em crescimento, como o de big data, data science, ferramentas para processamento de fluxos de dados em tempo real e treinamento de inteligências artificiais.

Os paradigmas trabalhados por este sistema eram abordados pela teoria desde antes da existência desta linguagem; o porquê da aclamação da Scala se encontra na maneira como ela trabalha esses paradigmas, sua técnica que torna os processos envolvidos nas operações muito mais simples e transparentes. Isso torna o ambiente de programação muito mais confortável para o programador.

Abstrações

Pensemos em uma situação onde seja preciso ler e processar um arquivo com um milhão de linhas. Qual método usar? A maneira mais intuitiva é processar o arquivo linha por linha, modo sequencial. Mas vamos acrescentar a necessidade de paralelizar, ou seja, várias linhas devem ser verificadas ao mesmo tempo.

Em casos como esse, quem usa linguagens como Python, C++, e até mesmo Java, por exemplo, precisará elaborar um código complexo, capaz de assustar muitos programadores só em pensar nele.

Em Scala, o método para resolver a situação anterior é muito mais simples. Você determina qual função será processada e estabelece que é paralelo, adicionando apenas quatro caracteres no início do comando. Esta é uma das vantagens da linguagem, as abstrações que ela traz permitem a resolução de situações já conhecidas, mas de uma maneira muito mais fácil.

Dentre as muitas situações em que a Scala se apresenta como o melhor meio de trabalho, podemos destacar a de processamento de dados. Para quem trabalha com Scala, e teve um percurso de contato com outras ferramentas da mesma área, é provável que ela surja como primeiro passo de trabalho para tais casos.

E o processo segue para a etapa de seleção de frameworks como Akka Stream, Apache Flink e Apache Spark, que estão no auge dentro da categoria, sendo ferramentas atuais e poderosas. 

Paradigma Funcional

As possibilidades apresentadas, o nível de abstração com o qual se pode trabalhar e a maneira na qual ele é implementado em grande escala tornam o paradigma funcional a função mais interessante desta linguagem.

Ao mesmo tempo, para muitas pessoas o paradigma funcional é algo estranho, trabalhar a função como valor pode ser difícil. Mas essa não é uma questão particular a Scala, a quem o paradigma funcional se apresenta como dificuldade, diversas linguagens que o utilizam trarão essa questão.

O paradigma funciona como ponto enriquecedor, Scala não é difícil. Scala é muito legível, e isso é realçado mediante a comparação com outras linguagens de programação.

Em muitas aplicações, um código em Scala é tão exato que é como ler uma frase, a instrução presente no programa é uma frase em inglês, perfeitamente legível. 

Pontos de destaque

Dentre tudo que pode ser dito sobre a linguagem, algumas características merecem destaque no delineamento do perfil da ferramenta. São elas: portabilidade: por ser uma linguagem que roda na JVM, ela também carrega essa característica.

  • Legibilidade: a simplificação dos códigos tornam sua leitura mais precisa.
  • Escalabilidade: em um projeto feito em Scala é possível escalá-lo para trabalhar em situações mais complexas, como por exemplo, um serviço consegue trabalhar com um número maior de usuários simultaneamente.
  • Didática: é uma linguagem que possibilita trabalhar muitos tipos e números de casos, e de uma maneira mais orgânica e intuitiva. Isso a coloca como boa opção a quem ministra aulas de programação.

Só Scala resolve?

Como quase tudo em programação, um mesmo problema pode ser resolvido em diferentes linguagens, a questão é o nível de trabalho necessário em cada uma delas. Toda linguagem usa como base uma outra linguagem, ou seja, sempre existirá uma linguagem mais básica para processar aquela linguagem.

Então, não existe uma situação que só possa ser resolvida com Scala, você pode solucionar por outros mecanismos, o porém se apresenta quando consideramos o esforço necessário para isso.

Scala é uma grande representante do sucesso nos esforços para simplificar processos complexos de programação. Ela funciona, e funciona bem.

 

Categorias
Big Data Ceará

Ministério da Justiça entrega plataforma de Big Data e Inteligência Artificial desenvolvida pela UFC

O Ministério da Justiça e Segurança Pública entregou, nesta terça-feira (20), durante o Seminário de Boas Práticas em Tecnologia da Informação Voltadas à Segurança Pública, as primeiras ferramentas do Projeto de Big Data e Inteligência Artificial aos cinco estados que participarão do “Em Frente Brasil”, projeto-piloto de enfrentamento à criminalidade violenta. O projeto será lançado pelo governo federal nos próximos dias.

Além do Espírito Santo, Goiás, Pará, Paraná e Pernambuco, Ceará também receberá a ferramenta, já que ela foi desenvolvida, a pedido do Ministério da Justiça e Segurança Pública, pela Universidade Federal do Ceará (UFC) com base em uma prática de sucesso adotada pelo Estado.

A ferramenta promove a integração de dados em larga escala para auxiliar na elaboração de políticas públicas contra a criminalidade, as organizações criminosas e a corrupção.

Na prática, agentes de segurança poderão acompanhar as ocorrências de todo o país, buscar informações e ficha criminal de suspeitos, monitorar veículos roubados, atuar no combate ao tráfico nas regiões de fronteiras, além de agir de prontidão na prevenção de assaltos e homicídios.

Até o final do ano, o projeto chega a outros oito estados: Acre, Alagoas, Amapá, Piauí, Rio Grande do Norte, Roraima, Sergipe, Tocantins.

Imagem: Ministério da Justiça e Segurança Pública

Boas práticas

O Big Data e Inteligência artificial, foi inspirado nas boas práticas adotadas na cidade de Fortaleza. A aplicabilidade da tecnologia do Big Data no estado cearense e o investimento no combate ao crime colaborou para a redução no número de roubos e furtos de veículos e no aumento nos índices de recuperação de carros e motocicletas. Há, ainda, registros na redução dos índices criminais.

Atualmente, Fortaleza segue no 14º mês de redução nos crimes violentos letais e intencionais (CVLI) – com 866 vidas salvas em 2019. Além dos crimes contra a vida, o estado tem obtido, nos últimos 23 meses, queda nos índices de crimes violentos contra o patrimônio (CVP).

A entrega também foi noticiada no programa A voz do Brasil, confira:

https://rapaduratech.com.br/wp-content/uploads/2019/08/insight-voz-brasil.mp3?_=1

Fonte: Ministério da Justiça e Segurança Pública

Sair da versão mobile