# Mineração de Eventos: Algoritmos e Aplicações

A mineração de eventos consiste em técnicas automatizadas de coletar de forma eficiente o conhecimento, por meio da análise de eventos em um sistema computacional como sistemas de banco de dados e até textos. A coleta desses eventos engloba correlação de eventos, tendência e padrões que ajudam em uma análise concreta para tomar decisões dependendo das áreas envolvidas.
Existem diversas áreas que podem incluir a mineração de eventos, como análise textual, coleta de informações geográficas, informações temporais, entre outros. Depois da extração de eventos, ocorre as fases de pré-processamento, que inclui a representação do conhecimento, processamento de linguagem natural com Word embedding, depois a fase de extração de padrões utilizando técnicas de agrupamento e algoritmos de classificação, e última fase de pós-processamento.

### Conceitos e aplicações
#### Descoberta do conhecimento em base de dados  (Knowledge Discovey in Database – KDD)

Em um estudo prévio para iniciar a mineração de determinado evento, busca-se encontrar um processo bem definido, seguindo etapas desde a coleta do conhecimento, processamento, extração de padrões e pós-processamento. O processo KDD descreve as etapas da aplicação de mineração de eventos.
Conforme (FAYAAD et al, 1996, apud Rosa, 2015, p. 21) “O KDD é um processo interativo e iterativo, não trivial, composto por várias etapas, de extração de informações implícitas, previamente desconhecidas e potencialmente úteis, a partir dos dados armazenados em um banco de dados”. O processo KDD, tem intervenção humana a princípio, sendo considerado interativo, utilizado para extrair informações que nem sempre mostram-se visíveis em um determinado problema de estudo.

### Inteligência analítica para textos

Em um texto existem diversos componentes de informação que de forma conjunta representam “eventos”. É possível coletar informações importantes, para definir um objeto de estudo, resolver um problema específico, por meio da busca e aplicação da mineração de eventos em textos.
Exemplo:
14/09/2020 (jornal de boas notícias)
“Todo mundo está se mobilizando para ajudar o Pantanal, que vem sofrendo com as queimadas há alguns dias.
Uma verdadeira força-tarefa de resgate aos animais silvestres foi montada pelo Centro Integrado Multiagências (Ciman), ONGs e outras instituições.”

#### Elementos de estudo

| O que aconteceu? componente what | Onde aconteceu? componente where | Quando aconteceu? componente when | Quem está envolvido? componente who |
| Força-tarefa de resgate aos animais silvestres | Pantanal | 14/09/2020, foi montada | Ciman, Ongs e outras instituições |
A coleta das informações busca encontrar de forma direta, pontos que ajudem na identificação de um determinado evento.

### Etapas da mineração de eventos
#### Identificação do problema

A primeira etapa para se fazer uma mineração de eventos, é identificar o problema, para definir de forma concreta as próximas etapas, identificar o problema, é selecionar a grande área de estudo relacionada e qual problema dentro dessa área será alvo do estudo, por exemplo em uma grande empresa, precisa-se recomendar o produto adequado para um cliente de acordo com compras recentes e pesquisas. Dessa forma o estudo deve ser voltado a buscar o perfil do consumidor, bem como pesquisas recentes, buscando selecionar e minerar esses eventos, para assim obter um conhecimento útil, que auxiliará a empresa.

#### Pré-processamento

Durante o pré-processamento, são mineradas informações importantes e bem definidas:
* Informação Textual (Componente What);
* Informação Geográfica (Componente Where);
* Informação Temporal (Componente When);
* Informação de Domínio (Componente Who).
Após identificar essas informações são aplicadas técnicas para refinar o texto, como remoção de pontuação, pronomes, artigos e preposições. Além do refinamento conciso que consiste em recolher atributos dos textos, ou base de dados analisada, atribuindo os devidos pesos às palavras, considerando a quantidade de vezes que aparece em um texto, ao final desta etapa cria-se uma representação estruturada, uma rede de eventos.

#### Extração de padrões

A extração de padrões é baseada em regras, tal como a forma do ser humano extrair padrões, na qual selecionamos e generalizamos variáveis como forma de padronizar, uma forma de relacionar objetos por exemplo, existem duas principais formas de se extrair padrões;
* Predição: consiste no uso do conhecimento já adquirido para prever e associar valores futuros desconhecidos ou outras variáveis de interesse.
* Descrição: consiste em aprender padrões que possam generalizar uma determinada variável através da descrição cruzando valores conhecidos com novos valores.
A predição pode ser entendida da seguinte maneira, podemos associar um ocorrido a uma única fonte que busca generalizar a situação, por exemplo uma criança coloca o dedo na tomada e toma choque, vamos correr alguns anos no futuro, essa pessoa está em um dia de chuva e vê uma árvore caindo e arrebentando um cabo de energia na rua, logo, naturalmente essa pessoa associa inconscientemente as duas situações, uma conhecida e outra previsível, tendo o choque elétrico como uma generalização, assim essa pessoa consegue prever que se passar perto ou encostar nesse cabo ela vai ser eletrocutada.
Para se extrair padrões primeiramente deve-se ter conhecimento do tipo de base que está trabalhando, como uma análise de solo antes de extrair o minério, verificar se esta base de dados é rica com informações que não precisa de tanto tratamento, ou se esta base é pobre demandando de mais tratamento, deve-se considerar ampliar ou até mesmo destrinchar esses dados a fim de obter informações suficientes para uma análise concisa, para isso, deve-se considerar o uso de técnicas de classificação dos dados, podendo ser classificação baseada em regras como granulometria por exemplo que impõe regras de tamanho para selecionar os grãos desejados, o mesmo acontece com a mineração de dados, regras são impostas para filtrar o tipo de dado desejado.
A forma mais comum de classificar os dados é feita por algoritmos específicos e modificados para essa tarefa, entre eles temos; algoritmo de Naive Bayes, Regressão Logística, Árvore de Decisões, XG Boost e SVM, cada qual com sua peculiaridade e aplicação.
Além da classificação que é realizada nesta etapa, há também a extração de representações vetoriais, a partir da rede de eventos formalizada durante a extração de padrões, usando aprendizado de representações DeepWalk/Node2Vec, ainda nesta etapa o algoritmo Label propagation é utilizado, pois permite inserir informações de domínio, que são utilizadas para identificar eventos de interesse.
Depois usa-se um motor de inferência, que faz a correlação dos dados obtidos das bases de dados onde nesse motor é inserida as entradas e as saídas que se deseja obter.

#### Pós-processamento

Depois que as informações forem tratadas e selecionadas, ocorre o pós processamento, onde esse conjunto de eventos ainda nebulosos são transformados em conhecimento, ou seja, essas informações são refinados e organizadas para uso, onde é feita a análise e correlação entre elas obtendo informações consistentes e importantes, usando o mesmo exemplo de mineradora de ferro, nesse momento já se sabe qual a qualidade do material, qual a concentração de cada componente químico, e é feito testes para verificar se esse material não está contaminado, e com essa informação é tomada a decisão do que deve ser feito depois, o mesmo caso ocorre com as informações no pós processamento, devem ser aplicadas técnicas para verificar se esse conjunto não sofreu uma influência não desejada, se estes não tornaram-se tendenciosos, depois desse passo temos os conhecimentos necessários.

### Uso do conhecimento

Após os dados terem sido verificados, transformados em informações, e dessas informações extraído o conhecimento, chega a hora de usar esse conhecimento como base para a tomada de decisões.
As informações já trabalhadas, organizadas de forma coerente e transformadas em experiências, resultam em conhecimento, esse conhecimento será utilizado por tomadores de decisões que, providos da inteligência necessária, podem interpretar esse conhecimento de forma correta, e assim estarem aptos a tomar decisões mais precisas e positivas. Seguindo ainda o mesmo exemplo da mineradora de ferro, os dados seriam os materiais extraídos, as informações seriam toda a descrição desses materiais (qualidade, quantidade, concentração de componentes químicos, etc.) e o conhecimento seria a conclusão de que esses materiais têm ou não algum valor no mercado, através desse conhecimento, os tomadores de decisões da empresa podem decidir se esse material poderá ser comercializado, por qual preço, ou ainda se será descartado.
Outro exemplo é a utilização de algoritmos de recomendação, que por meio de eventos pré-processados, realizam a extração de padrões para traçar perfis de consumidores e usuários, dessa forma após a organização desses padrões e refinamento de informações pode recomendar de forma adequada um produto ou serviço para um determinado cliente.

### Projetos em andamento

Websensors, um framework de inteligência analítica que rastreia milhões de eventos na internet.