quarta-feira, 23 de outubro de 2019

IA - Algorítimo Apriori







Motivação
Algorítimo criado para descobrir o comportamento do consumidor em um determinado mercado.
Maximizar a venda de um determinado produto colocando este determinado produto em promoção ou em evidência. 
Após encontrar um determinado padrão pode se organizar o determinando produto em uma determinada posição, lugar e até mesmo cor. O Objetivo é deixar o objeto de uma determinada forma que maximize sua venda.

Desvantagem
É necessário muitas interações no banco de dados para se chegar em um resultado positivo.
Não encontra eventos considerados RARO específicos. 

Vantagem
Fácil e simples para implementar


Conceito Básico
Frequência Mínima: É a frequência mínima que um item deve ter para que seja considerado frequente.

Confiança Mínima: É a confiança mínima que um item deve ter para que seja considerado confiável.  

Regra Forte: São aquelas que atingem o mínimo de frequência e o mínimo de confiabilidade.




REQUISITOS
1 - Gerar Itens Frequentes;
2 - Gerar grupo de Candidatos;
3 - Gerar grupo de Itens Frequentes;

4 - Grupo de Candidatos Gerados foi OK? Existe?;
4.1 - Se não, executar novamente o item 2;
4.2 - Se SIM, Gerar regras fortes;



Exemplo:



1 - Base de Dados

LEITE PÃO BOLACHA SUCO
LEITE SUCO
LEITE OVOS
PÃO BOLACHA CAFÉ





2 - Frequência Mínima

50%





3 - Confiança Mínima

75%






4 - Passos a serem realizados

4.1 - Em primeiro lugar temos que gerar a tabela de candidatos com a sua frequência

Leite = Freq: 75% - 3/4 (quantidade do item, dividido pela quantidade total de amostras)
Pão = Freq: 50% - 2/4 (quantidade do item, dividido pela quantidade total de amostras)
Bolacha = Freq: 50% - 2/4 (quantidade do item, dividido pela quantidade total de amostras)
Suco = Freq: 50% - 2/4 (quantidade do item, dividido pela quantidade total de amostras)
Café = Freq: 25% - 1/4 (quantidade do item, dividido pela quantidade total de amostras)
Ovos = Freq: 25% - 1/4 (quantidade do item, dividido pela quantidade total de amostras)

Amostras  = Linhas/Conjuntos








4.2 - Gerar tabela com itens frequentes, para isto temos que utilizar o parâmetro de FREQUÊNCIA MÍNIMA, onde o valor é de 50%.
Dado este parâmetro e a tabela do item 4.1, remos o resultado:

Leite
Pão
Bolacha
Suco



4.3 - Deverá ser gerado a tabela de candidatos a partir da combinação dos itens frequentes. Itens gerados na fase 4.2. ( Leite, Pão, Bolacha, Suco) E calcular a sua respectiva frequência.




4.3.1 - BANCO DE DADOS
LEITE PÃO BOLACHA SUCO
LEITE SUCO
LEITE OVOS
PÃO BOLACHA CAFÉ







4.3.2 - ITENS MAIS FREQUENTES
1 - Leite
2 - Pão
3 - Bolacha
4 - Suco
-----------
04 Itens



CANDIDATOS (para frequência)
Leite Pão             = 1/4 -> 25%
Leite Suco           = 2/4 -> 50%
Leite Ovos           = 1/4 -> 25%
Leite Bolacha      = 1/4 -> 25%
Pão Bolacha        = 2/4 -> 50%
Pão Suco             = 1/4 -> 25%
Bolacha Suco      = 1/4 -> 25% 







4.4 - Gerar tabela de grupos de itens frequentes. Dado a frequência mínima de 50%, teremos.

CANDIDATOS
Leite Suco     = 2/4 = 50%
Pão Bolacha  = 2/4 -> 50%







4.5 - Gerar tabela de candidatos a partir da combinação dos itens frequentes e calcular a sua respectiva frequência.
 
FREQUÊNCIA
Leite Suco
Pão Bolacha


FREQUÊNCIA EM ITENS
1 - Leite
2 - Suco
3 - Pão
4 - Bolacha
-----------------------
04 ITENS



BANCO DE DADOS
LEITE PÃO BOLACHA SUCO
LEITE SUCO
LEITE OVOS
PÃO BOLACHA CAFÉ

CANDIDATOS
Leite Suco Pão       - 1/4 - 25%
Leite Suco Bolacha- 1/4 - 25%
Leite Pão Bolacha  - 1/4 - 25%
Suco Pão Bolacha  - 1/4 - 25%







4.6 - Gerar tabela de Grupo de itens frequentes. Com base no percentual 50% de frequência mínima.


CANDIDATOS
Leite Suco Pão       - 1/4 - 25% - Não atende o mínimo de 50%
Leite Suco Bolacha- 1/4 - 25% - Não atende o mínimo de 50%
Leite Pão Bolacha  - 1/4 - 25% - Não atende o mínimo de 50%
Suco Pão Bolacha  - 1/4 - 25% - Não atende o mínimo de 50% 







5 - A partir do ultimo grupo de itens frequentes calcular suas respectivas confiabilidades.

Confiabilidade: A -> B = É o número de tuplas que contem A e B, divididos pelo total de tuplas que contem A.


BANCO DE DADOS
LEITE PÃO BOLACHA SUCO
LEITE SUCO
LEITE OVOS
PÃO BOLACHA CAFÉ


FREQUÊNCIA
Leite Suco
Pão Bolacha


Combinações da Frequência - Confiabilidade
Leite -> Suco     =  50% --  2/3 = 67%
Suco -> Leite     =  50% --  2/2 = 100%
------------------------
Pão -> Bolacha  =  50% --  2/2 = 100%
Bolacha  -> Pão =  50% --  2/2 = 100%




6 - Verificar regras fortes.
Sãos as regras que atingirem a frequência de confiança mínima.

Combinações da Frequência - Confiabilidade
1 - Leite -> Suco     =  50% --  2/3 = 67
2 - Suco -> Leite     =  50% --  2/2 = 100%
------------------------
3 - Pão -> Bolacha  =  50% --  2/2 = 100%
4 - Bolacha  -> Pão =  50% --  2/2 = 100%

Frequência Mínima = 50%
Confiança Mínima   = 70%


RESULTADO
1 - Leite -> Suco     =  50% --  2/3 = 67% <-----FORA
2 - Suco -> Leite     =  50% --  2/2 = 100% <----ok
------------------------
3 - Pão -> Bolacha  =  50% --  2/2 = 100% <----ok
4 - Bolacha  -> Pão =  50% --  2/2 = 100% <----ok





PODEMOS DIZER ENTÃO!

EM 50% DA VEZES

Quem compra SUCO compra LEITE
Quem compra PÃO compra BOLACHA
Quem compra BOLACHA compra PÃO





Meu entendimento do Algorítimo Apriori:  Ray da Costa 





















 

quarta-feira, 16 de outubro de 2019

Rabbitmq

https://www.rabbitmq.com/install-debian.html#apt-bintray-quick-start



#!/bin/sh

## If sudo is not available on the system,
## uncomment the line below to install it
# apt-get install -y sudo

sudo apt-get update -y

## Install prerequisites
sudo apt-get install curl gnupg -y

## Install RabbitMQ signing key
curl -fsSL https://github.com/rabbitmq/signing-keys/releases/download/2.0/rabbitmq-release-signing-key.asc | sudo apt-key add -

## Install apt HTTPS transport
sudo apt-get install apt-transport-https

## Add Bintray repositories that provision latest RabbitMQ and Erlang 21.x releases
sudo tee /etc/apt/sources.list.d/bintray.rabbitmq.list <<EOF
## Installs the latest Erlang 21.x release.
## Change component to "erlang" to install the latest version (22.x or later).
## "bionic" as distribution name should work for any later Ubuntu or Debian release.
## See the release to distribution mapping table in RabbitMQ doc guides to learn more.
deb https://dl.bintray.com/rabbitmq-erlang/debian bionic erlang-21.x
deb https://dl.bintray.com/rabbitmq/debian bionic main
EOF

## Update package indices
sudo apt-get update -y

## Install rabbitmq-server and its dependencies
sudo apt-get install rabbitmq-server -y --fix-missing


rabbitmqctl status

sudo service rabbitmq-server stop

sudo service rabbitmq-server start

sudo service rabbitmq-server status

sudo rabbitmq-diagnostics ping

sudo rabbitmq-diagnostics status

sudo rabbitmq-diagnostics environment

sudo rabbitmq-diagnostics node_health_check