IPV6, o que é e como configurar

IP ou Internet Protocol  é endereço único que cada computador possui na internet e é com este endereço que os computadores trocam informação ou se comunicam pela Internet, aqui no Brasil ele conhecido nas rodas de samba como Protocolo de internet.

Tá, então o que é IPV6?

A quantidade finita de IP da sua versão IPv4 está no fim, então surge quem..quem.. IPv6 com o objetivo de acabar com o mal do mundo e salvar o nosso Brasil das garras da tirania política….voltando para a terra…mundo paralelo 15… post sobre IPV6, ele tem por objetivo substituir o IPv4, que só suporta cerca de 4 bilhões de endereços IP, contra cerca de 340 undecilhões de endereços do novo protocolo.

…o quanto é isso?
…sei lá, muuuuuito, vc já estará velho ou
terá ido visitar a geologia dos campos santos
quando isto acontecer… Viva Capitu!

O protocolo está sendo implantado gradativamente funciona lado a lado com o IPv4, numa situação tecnicamente chamada de “pilha dupla” ou “dual stack” ou tamo junto e misturado por assim dizer 🙂

Então agora que já sabe o que é esse tal de IPv6 conte para os amigos, de um joinha ou algo parecido neste artigo ou post.

Abaixo um site para testar a sua conexão e os IPV6 do Google de domínio público, pode utilizar a vontade. A conexão a na qual estou, tem o patrocínio de IPV6 Google abaixo descrito, não solta as tiras e não tem cheiro e no final do dia sua barba ainda estará lisinha!

Testando a sua conexão!
http://www.test-ipv6.com/

Endereço de IPV6 do Google!
2001:4860:4860::8888
2001:4860:4860::8844

Já que vc está dando uma olhada em suas configurações de internet, que tal alterar o DNS IPV4 para os da Google?
8.8.8.8
8.8.4.4

bem é isso,  meu nome até o momento é Alexandre Volpi ou algo parecido com isso, caso queira falar comigo, pedir dinheiro emprestado (vixii) ou me colocar como único herdeiro da sua fortuna manda um e-mail para alexandredvolpi@gmail.com ou clica aqui 

Vamos nos falando,
se não nos falarmos pelo menos escreverei
mandando notícias, se não escrever é pq esqueci.

do que mesmo estávamos falando?

Anúncios

A internet em tempo real e o monte de dinheiro que você pode fazer com estas informações

Você meu amigo e vc minha querida leitora já devem tem ouvido o ditado que tempo é dinheiro…nada mais batido do que este jargão…certo…mas agora temos novidades!

Informação relevante e de qualidade no menor tempo (se possível em tempo real) vale muito dinheiro!

Ei…Que cara de desconfiado é essa? E vc minha querida tá fazendo este biquinho pq?
Humm..AH! entendi, vcs devem estar pensando…se vale tanto dinheiro pq este cara, não sei das quantas volpi está compartilhando isso… Xiii deve ser igual aqueles livros e sites que ensinam a ficar rico… ou a ganhar na Sena….. ei people bonita calma ai!

Informação vale dinheiro e a informação do seu negócio está na sua mão, certo? Não está? Xiii então este post é para você… e se a informação está em sua mão, ótimame nte ótimo, vamos saber o que fazer com elas.

A nossa velha amiga Internet gera bilhões e bilhões de informações diariamente algumas úteis outras nem tanto….será?

Num primeiro momento uma ou outra informação pode nos dar a impressão de ser apenas lixo digital certo?…calma na resposta…segura um pouco… Não estamos incansavelmente buscado vantagens competitivas sobre os nossos concorrentes? então que tal analisá-la sob uma nova perspectiva sob um outro angulo com a alma aberta, sem qualquer tipo de preconceito… isso é complicadamente difícil…

Fique tranquilo pois pode e vai piorar!! Sem pressão 🙂
ou você faz e aprende pelo amor, pensa fora da caixa, quebra paradigmas
ou o seu concorrente faz e você perde mercado e aprende pela dor…o que vai ser?

Tá eu sei…vivo a mesma coisa…. o dia a dia é fod!!.. uma chateação atras da outra, uma interrupção a cada 17 segundos.. fod! dupla! além de ficamos afundados até o pescoço…isso foi ontem…hoje uma das narinas já está submersa..glub!…

Again!, ficamos afundados em nossas metas e tarefas do dia a dia que não nos damos conta que poderíamos fazer mais, fazer melhor, fazer em menos tempo o que fazemos de forma tão robotizada que a estratégia já foi ou está a uma passo de ser superada!

Mas bem, é isso… 
Vale a reflexão… eu sei bem disso!!!, depois de anos e anos de carreira em Tecnologia, Comercial e e-commerce + alguns projetos solo, fiz a seguinte pergunta para ou meu outro eu!  Tá bom Ale, a aventura foi legal até aqui e agora o que devemos aprender e como agir para o próximo passo, quais problemas as empresas estão / ou ainda irão enfrentar que podemos resolver hoje, daqui 5 anos, 10 anos…

> O que o seu cliente precisa hoje você ainda não atende?

> Quais necessidades ou problemas o seu cliente do futuro enfrentará e como você e sua empresa o atenderá…

Quem resolver esta equação ganha o cliente!

Abaixo um maravilhoso e informativo painel com as informações gerada em tempo real, aproveite sem qualquer tipo de moderação!

Olá meu nome até o momento é Alexandre Volpi, gosto um cadinho de tecnologia, ciência e estou em uma aventura nórdica pelos reinos do complexo e interminável mundo do Big Data.

A criação deste blog tem por finalidade o compartilhamento destas aventuras num português 1/2 Aliche / 1/2 calabresa…vamos combinar… se vc achar algum erro de português que dê para passar, coisa do dia a dia…deixo o em paz,

…agora se for algo do tipo, nós vai, agente fumos… seja caridosa e me avise, você será recompensada com 4.257 emails enviados diariamente lhe agradecendo pela ajuda.

Obrigado por ler este post

Paz 🙂


Ah!..quase se esqueci… (tudo bem este errinho foi proposital)

IF

Se você gostou faz um depósito simbólico de milão de reias na minha conta

ELSEIF

Se você gostou e não quer compartilhar seu milão de reais, dá um curtida e / ou manda um comentário sobre como foi ler isso que vc acabou de ler! mas pega leve pois tenho coração fraco!

ELSE

Agora se você não gostou de absolutamente nada, me achou um cretino e que eu deveria queimar no mármore do inferno, manda ai… adoro o pensamento divergente!

Diquinha básica:

Você sabe qual é melhor lugar para saber o que realmente o seu cliente pensa sobre a sua empresa, seus serviços, seu atendimento e seus produtos…
Resposta : o SAC, você sabe porque?

Compartilha ai!

alexandredvolpi@gmail.com

Agora eu vou..
by

Introdução ao Big Data

Muito se tem dito sobre Big Data, tentarei neste post adicionar mais lenha na fogueira ou quem sabe dar mais informações úteis sobre

Big Data = ( Volume + Variedade + Velocidade + Veracidade + Valor)

Segundo a Wikipédia Big Data é?

Big Data é um termo amplo para conjuntos de dados muito grandes ou complexos que aplicativos de processamento de dados tradicionais são insuficientes. Os desafios incluem análise, captura, curadoria de dados, pesquisa, compartilhamento, armazenamento, transferência, visualização e informações sobre privacidade.

O termo simplesmente muitas vezes se refere ao uso de análise preditiva e de alguns outros métodos avançados para extrair valor de dados, e raramente a um determinado tamanho do conjunto de dados. Grande precisão nos dados podem levar à tomada de decisões com mais confiança. E melhores decisões podem significar uma maior eficiência operacional, redução de risco e redução de custos

Hummm, deixa ver se eu entendi, é um monte de informações, algumas relevantes e outras nem tantos que estão todas no mesmo conjunto de dados e que nos modelos tradicionais de banco de dados (relacionais, coluna, chave primária…) não dá para fazer acontecer! então surge o Big Data que nos ajudará a armazenar, processar e analisar esta grande massa de dados.

Morpheus fez a mesma coisa com NEO, ele disse tome a pílula Azul e volte para a sua vida cotidiana, onde você está acostumado e tudo será igual onde você acha que está no controle…se não foi isso que ele disse foi algo parecido!

Morpheus

O que fez o NEO, garoto esperto, sabe das coisas, já estava cansado daquela vidinha onde tudo não era o que parecia, ainda mais com aquele seu chefe que não tinha a menor noção de Scrum e queria tudo para ontem (tá isso eu inventei) mandou a pílula vermelha goela abaixo… e o que aconteceu ele acordou em um novo mundo, um mundo repleto de informação, tudo a um clique ou a um bit de distância….

Opa, para tudo… lembrei de uma coisa! Muito importante!
Você não sabe quem é Morpheus, muito menos NEO
e Matrix lhe parece nome de Carro elétrico?

Humm temos um problema…
lhe ofereço a pílula azul e você pode voltar
para a sua vida ilusória e superficial

BluePill

ou….

você pode escolher a pílula vermelha e conhecer
um complexo mundo inteiramente novo!

Redpill

…..

O que vai ser?
Escolha sabiamente pois esta decisão terá
sérias consequências para o seu futuro!

Hospedagem Amazon free por 1 ano

LogoAmazonAWS

olá leitor, estamos em 22/10/2015 as 11:58 e acabo de criar uma conta na AWS Amazon para testar os meus projetos e códigos do MBA que estou fazendo sobre BIG Data, achei por bem compartilhar este incrível benefício oferecido pela AWS Amazon, os caras estão “dando”  1 ano de hospedagem com uma série de benefícios que copiarei do site e colarei mais abaixo por zero reais!

Tá, não precisa me olhar assim, eu sei que de graça…nem ônibus errado…. Mas estamos falando de uma mega mundial Empresa que dá para confiar tranquilamente..tá blz confiar tranquilamente já é exagero, vamos deixar apenas confiar, melhorou? agora vamos em frente… pois boa parte do processamento mundial passa pelos caras, além de dominarem com folga o comércio eletrônico..

Se você achou que eu explicaria no detalhe, passo a passo como instalar e configurar, Xiii, lamento informá-lo que, dá não… este post é só para informar sobre o benefício.. sorry… mas fica tranquilo pois é simples a criação da conta…

Se você está lendo isto, quer dizer que você não foi embora chateadinho…ainda estamos junto.. informarei abaixo o link para a criação da conta bem como os benefícios oferecidos até a data deste post…(22/10/2015 agora é 12:10), se você está lendo isto em 2016 ou 2039 é claro que a informação foi atualizada… você é uma pessoa esperta e já se ligou nisso..

Vamos lá, acesso o link em português:
https://aws.amazon.com/pt/free/

Vai aparecer algo parecido com a imagem abaixo, já deixei marcado em cinza o link, basta clicar, fazer o cadastro e aproveitar 12 meses de uma hospedagem segura, estável e muito escalável.

CadastroAWS

Deixei o melhor para o final…. 🙂
….você vai ter que colocar o número do seu lindo e colorido cartão de crédito….

TadeBrincadeiraNãoooooo vou nãoSimmmmm tem sim,
tem de colocar o número do cartão, pois como vc verá abaixo, a AWS Amazon oferece uma série de serviços por hora, por processamento, configuração de máquina, quantidade de máquinas virtuais processando o seu trabalho …anyway

Veja o exemplo abaixo:

…..

CLAREANDO AS COISAS

Dá uma olhada nisso, abaixo um dos serviços oferecidos pela AWS.

750 horas de utilização do Amazon EC2 executando instância t2.micro Linux, RHEL ou SLES (1 GiB de memória e suporte para plataformas de 32 e 64 bits) – horas suficientes para executar continuamente a cada mês*

Vamos detalhar…Ela oferece 750 horas de utilização do servidor..certo? vamos recorrer a nossa velha amiga matemática….

       31 dias do mês que tem 31 dias  (30 dias o resultado seria ainda menor)
VEZES  
       24 horas de um lindo dia de sol (chuva não conta)
IGUAL
       744 horas
(SETECENTOS E QUARENTA E QUATRO HORAS)

Sacou? Entendeu a continha? Dá para utilizar o mês todo e ainda sobra 6 horas adicionais, ficou mais claro?

…..

Abaixo a lista completa dos serviços oferecidos:

Segue o link com o conteúdo abaixo:
https://aws.amazon.com/pt/free/faqs/

  • 750 horas de utilização do Amazon EC2 executando instância t2.micro Linux, RHEL ou SLES (1 GiB de memória e suporte para plataformas de 32 e 64 bits) – horas suficientes para executar continuamente a cada mês*
  • 750 horas de utilização do Amazon EC2 executando instância t2.micro Microsoft Windows Server† (1 GiB de memória e suporte para plataformas de 32 e 64 bits) – horas suficientes para executar continuamente a cada mês*
  • 750 horas de um Elastic Load Balancer, mais 15 GB de processamento de dados*
  • 750 horas de microinstâncias de banco de dados Single-AZ do Amazon RDS para execução de MySQL, PostgreSQL, Oracle BYOL ou SQL Server Express Edition – horas suficientes para executar uma instância de banco de dados continuamente o ano todo. Você também recebe 20 GB de armazenamento de banco de dados, 10 milhões de E/S e 20 GB de armazenamento de backup*
  • 750 horas de uso de nó de microcache do Amazon ElastiCache – horas suficientes para executar continuamente durante cada mês. *
  • 30 GB de Amazon Elastic Block Storage em qualquer combinação de uso geral (SSD) ou magnético, mais 2 milhões de E/S (com EBS magnético) e 1 GB de armazenamento de snapshot***
  • 5 GB de armazenamento padrão do Amazon S3, 20.000 solicitações GET e 2.000 solicitações PUT*
  • 25 GB de armazenamento, 25 unidades de capacidade de leitura e 25 unidades de capacidade de gravação, suficientes para processar até 200 milhões de solicitações por mês com o Amazon DynamoDB.**
  • 25 horas de máquina do Amazon SimpleDB e 1 GB de armazenamento**
  • 1.000 execuções de fluxo de trabalho do Amazon SWF podem ser iniciadas gratuitamente. Um total de 10.000 tarefas de atividade, sinais, temporizadores e marcadores e 30.000 dias de fluxo de trabalho também podem ser utilizados gratuitamente**
  • 100.000 solicitações do Amazon Simple Queue Service**
  • 100.000 solicitações, 100.000 notificações de HTTP e 1.000 notificações de e-mail para o Amazon Simple Notification Service**
  • 10 métricas do Amazon Cloudwatch, 10 alarmes e 1.000.000 solicitações de API**
  • 50 GB de transferência de dados para fora e 2.000.000 de solicitações HTTP e HTTPS para o Amazon CloudFront*
  • 15 GB de largura de banda para fora agregado em todos os serviços AWS*

* Esses níveis gratuitos estão disponíveis somente para os clientes existentes da AWS que se cadastraram para nível gratuito após 20 de outubro de 2010 e para os novos clientes da AWS, e estão disponíveis por 12 meses, após a sua data de cadastro na AWS. Quando o uso gratuito expirar ou se o uso do aplicativo ultrapassar os níveis de uso gratuito, você simplesmente pagará taxas de serviço padrão conforme o uso (veja cada página de serviço para obter detalhes completos sobre a definição de preço). Há restrições; veja os termos da oferta para obter mais detalhes.

Para o nível gratuito do EC2 e do RDS, a instância t1.micro pode ser substituída pela instância t2.micro.

**Esses níveis gratuitos estão disponíveis indefinidamente para clientes novos e existentes da AWS.Para o nível gratuito do EC2 e RDS, a instância t1.micro pode ser substituída pela instância t2.micro.

***Se o uso combinado ainda estiver abaixo de 30 GB, ambos serão gratuitos. Se o uso combinado for superior a 30 GB, o armazenamento mais caro contará primeiro para o nível gratuito.

……

Bem é isso, espero que seja útil, espero tb voltar a este post um dia para incluir o link da explicação no detalhe de como fazer passo a passo o cadastro e as configurações iniciais…

Mais informações, críticas, dúvidas ou pedidos de música, escreva para: alexandredvolpi@gmail.com

….. a propósito enquanto eu pensava (sim as vezes eu faço isso) sobre o que mais era relevante para este post, lembrei de ter lido uma matéria em algum lugar, falando do Steve Jobs e o seu currículo, nele ele descreve auto descreve assim:


Currículo de Steve Jobs

Estou procurando um lugar que necessite de muitas reformas e consertos, mas que tenha fundações sólidas. Estou disposto a demolir paredes, construir pontes e acender fogueiras. Tenho uma grande experiência, um monte de energia, um pouco dessa coisa de ‘visão’ e não tenho medo de começar do zero”.


Hummm, interessante, você deve estar pensando…certo? Posso até sentir o seu cérebro formulando uma pegunta…não se acanhe, vai em frente pergunte!

“tá e o que isso tem a ver com a Hospedagem Amazon AWS?

Nada, nadinha de nada, Esta é a beleza do compartilhamento de informação, você entra para saber uma coisa e sai sabendo duas. 🙂

fim

Apache Giraph

logoApacheGiraph

O Apache Giraph é um framework para processamento iterativo de grafos em larga escala ele foi inspirado no framework Pregel criado por adivinha quem? Adivinha? Google é claro! no ano da graça de 2010.

Abaixo o documento que serviu de inspiração:pregel

O Giraph é open-source ele se tornou um projeto de alto nível da Apache em 2012, o release 1.0 foi lançado em 2013 e o 1.1 em 2014

Neste post abordaremos o Apache Giraph

  • Grafos
  • Processamento de grafos
  • Apache Giraph
    – Características
    – Componentes
    – Aplicações
  • Apache Giraph na prática

GrafoS

Representação abstrata de um conjunto de objetos (vértices), onde alguns pares desses objetos são conectados por links (arestas), que podem ser direcionados ou não-direcionados. G = (V, A)

Características:

graphos1

graphos2

graphos3

Utilização

O que podemos fazer ou quais problemas podemos solucionar com os grafos ?

Mapear distâncias entre cidades, como chegar do ponto A até o ponto B no menor caminho? ou traçar a melhor rota logística para as entregas de um comércio eletrônico.utiliza3

Mapear relacionamentos entre pessoas, o Facebook é o maior utilizador dos grafos seguido do Linkedin.utiliza2

Mapear acesso à uma rede de computadores, quais computadores estão ligados a quais roteadores, switches ou Wifi?, qual o tipo da rede?, qual ponto da rede é o mais vulnerável no caso de um problema técnico.

No exemplo abaixo temos uma rede estrela com conectadas pelo IPUtiliza1

Áreas de negócios

Em quais negócios a análise de Grafos se faz necessária

  1. Redes Sociais
  2. Logística
  3. Segurança da informação
  4. Sistemas de redes de médio e grande porte
  5. PLN
  6. Busca semântica

Grafos e a Internet

A World Wide Web pode ser vista como um enorme grafo web pois as Páginas são os vértices conectados por bilhões de arestas que representam bilhões de hiperlinks

Grande parte do sucesso do Google é baseado em sua habilidade de realizar rapidamente cálculos sobre esse gigantesco grafo

O PageRank é um bom exemplo de grafos pois seu algoritmo mede a importância de uma página contabilizando a quantidade e qualidade de links apontando para ela, com isto o Google sabe em qual posição um site deve ter no resultado de busca.

pagerank

Desafios

Desafios para processar grafos larga escala

  • Tamanho dos dados
  • Latência
  • Sincronização frequente
    • Vértices, arestas, peso

HADOOP

Sim, o Apache Giraph é executado no nosso amigo mastigador de dados Hadoop, abaixo uma representação do ecossistema Giraph.

Eco_giraph

Giraph fornece meios ideais para processamento dos grafos

meiosProcessGraphos,

PROCESSAMENTO

o processamento de grafos em MapReduce:

> Implementados como uma sequência de jobs (cada iteração, um job)
> Dados escritos muitas vezes no disco
> Overhead por execução de tarefas de shuffle/sor

Processamento de grafos em Giraph

> Giraph utiliza Mappers para executar tarefas mestre e escravas
> Não há tarefas reduce
> Os dados de entrada do grafo são carregados somente uma vez
> O processamento é feito em memória, com pouco acesso ao disco
> Coordenação feita via ZooKeeper
> Formatos de entrada e saída personalizado

Bem, e o que mais

No Giraph, somente as mensagens são passadas pela rede e não toda a estrutura do grafo, o Giraph facilita o desenvolvimento de algoritmos de processamento de grafos utilizando o modelo programação Bulk Syncronous Parallel (BSP)

Bulk Syncronous Parallel (BSP)

> Modelo para processamento paralelo
> Sequência de superpassos
> Passos
– Computação
– Comunicação
> Sincronização global após cada superpasso

BSP

Superpassos é a sequencia de iterações onde são realizados os processamentos, em cada superpasso cada vértice invoca o método computacional indicado pelo usuário

O método computacional, recebe mensagens enviadas ao vértice no superpasso anterior faz o processamento utilizando as mensagens e os valores do vértice, resultando em modificações nos valores dos vértices e envia mensagens a outros vértices

Abaixo temos os Vértices em preto as Arestas com linhas e setas em verde com seus respectivos valores e em azul as mensagens e as linhas em vermelho são os superpassos.

modeloAG

Abaixo um exemplo detalhando passo a passo

Passo 1:

passo1

Passo 2:

Passo2

Passo 3:

Passo3

Passo 4:

Passo4

Passo 5:

Passo5

VANTAGENS

O Giraph faz o processamento iterativo de dados ser mais prático para usuários Hadoop, ele pode evitar o custo do disco e operações da rede no MapReduce, não há o conceito de message parsing no MapReduce e permite integração com o ecossistema Hadoop HBase, Accumulo, Hive, HCatalog

> Sem locks – comunicação baseada em mensagens
> Sem semáforos – sincronização global
> Iteração isolada – massivamente paralela

Giraph oferece um conjunto de operações:

> Combiners
> Aggregators
> MasterCompute
> WorkerContext
> PartitionContex

Representações de grafos suportados

> Grafos direcionados
> Grafos não direcionados
> Grafos não valorados (NullWritable)
> Grafos valorados

API GIRAPHScreenshot from 2015-10-20 12:30:46

Tá, eu sei, é estranho, mas faça uma forcinha,
tente Pensar como um vértice!

> Eu sei meu estado local
> Eu conheço meus vizinhos
> Eu posso enviar mensagens aos vertices
> Eu posso declarer que finalizei o cálculo
> Eu posso mudar a topologia do grafo

JAVA

Estrutura

BasicComputation<IntWritable,   // Vértice ID
IntWritable,           // Dados do vértice
NullWritable,         // Dados da aresta
IntWritable>          // Tipo de mensagem

O código ou a imagem do código:

codigoJava

FORMATOS DE ENTRADA

> Giraph oferece uma API que converte o tipo de dado para as classes principais do Giraph (Vertex e Edge)
>  Classes devem implementar a interface VertexInputFormat

Exemplo:

JsonLongDoubleFloatDoubleVertexInputFormat – vértice ID long, valores do vértice double, peso das arestas float e mensagens double em formato JSON

Aceita outros formatos de dados de entreda:

>  LongDoubleDoubleAdjacencyListVertexInputFormat
>  LongLongNullTextInputFormat
>  TextDoubleDoubleAdjacencyListVertexInputFormat
>   GraphvizOutputFormat
>   IntIntNullTextInputFormat

INSTALAÇÃO

Vale lembrar que o Giraph roda sob a tutela do Hadoop, então temos de ter o danado instalado para executar o Giraph… mas dá para instalar o Giraph em ter o Hadoop instalado na máquina…o problema é que nada será executado, OK?

Para instalar o Giraph

>  Instale o Hadoop

>  Faça o download do Giraph pelo github
    – cd /usr/local/
    – sudo git clone https://github.com/apache/giraph.git
    – sudo chown -R giraphuser:giraphuser giraph

>  Instale os componentes do Giraph utilizando Maven
cd /usr/local/giraph
    – mvn package -DskipTests

MÃO NA MASSA!

Vamos criar um conjunto de arestas e vértices conforme a imagem abaixo

Pratica

Giraph

Acessar diretório do
     cd /usr/local/giraph

Lista o diretório
     ls

Conteúdo do diretório    ConteudoDiretorio

Hadoop

Acessar diretório
 cd /usr/local/hadoop

Iniciar processos do HDFS
 bin/start-dfs.sh

starting namenode, logging to /usr/local/hadoop/libexec/../logs/hadoop-giraphuser- namenode-vm-giraph.out
localhost: starting datanode, logging to usr/local/hadoop/libexec/../logs/hadoop – giraphuser-datanode-vm-giraph.out
localhost: starting secondarynamenode, logging to /usr/local/hadoop/libexec/../ logs/hadoop-giraphuser-secondarynamenode-vm-giraph.ou

Iniciar processos do MapReduce
   bin/start-mapred.sh
     starting jobtracker, logging to /usr/local/hadoop/libexec/../logs/hadoop-                      giraphuser- jobtracker-vm-giraph.out
     localhost: starting tasktracker, logging to /usr/local/hadoop/libexec/../                        logs/hadoop-giraphuser-tasktracker-vm-giraph.out

Verificar processos
jps
13931 JobTracker
14066 TaskTracker
13523 NameNode
13795 SecondaryNameNode
13658 DataNode
14181 Jps

Criaremos um arquivo chamado meugrafo.txt contendo 5 vértices e 12 arestas direcionadas

Criando o arquivo, pode ser nano, vi, gedit o sabor que lhe convier

nano meugrafo.txt

//inserir o conteúdo abaixo no arquivo
//source_id, source_value, [[dest_id, edge_value],…]
[0,0,[[1,1],[3,3]]]
[1,0,[[0,1],[2,2],[3,1]]]
[2,0,[[1,2],[4,4]]]
[3,0,[[0,3],[1,1],[4,4]]]
[4,0,[[3,4],[2,4]]]

Criar diretório de entrada no HDFS
bin/hadoop fs -mkdir input

Enviar arquivo para o HDFS
bin/hadoop fs -put meugrafo.txt input/

Verificar se o arquivo foi enviado com sucesso
bin/hadoop fs -ls input

Found 1 items
-rw-r–r– 1 giraphuser supergroup 112
/user/giraphuser/input/meugrafo.txt

Uma parte já foi, agora Iremos executar o exemplo SimpleShortestPathsComputation

Objetivo: ler um arquivo de entrada de um grafo em um dos formatos suportados pelo Giraph e calcular o tamanho do menor caminho de um nó até os outros nós.

Importante: O nó raíz é sempre o primeiro nó do arquivo de entrada

Visualizar os parâmetros parâmetros para execução
bin/hadoop jar /usr/local/giraph/giraph-examples/target/giraph-examples-1.2.0-SNAPSHOT-for- hadoop-1.2.1-jar-with-dependencies.jar org.apache.giraph.GiraphRunner -h

Utilizaremos os seguintes parâmetros

-vif    –vertexInputFormat <arg>        Vertex input format
-vip    –vertexInputPath <arg>           Vertex input path
-vof    –vertexOutputFormat <arg>    Vertex output format
-op     –outputPath <arg>                   Output path
-w     –workers <arg>                         Output path

Agora vamos executar a aplicação de busca do menor caminho, tuuudo isso é o comando e pode ser digitado na mesma linha

bin/hadoop jar
/usr/local/giraph/giraph-examples/target/giraph-examples-1.2.0-SNAPSHOT-for-hadoop-1.2.1-jar-with-dependencies.jar org.apache.giraph.GiraphRunner
org.apache.giraph.examples.SimpleShortestPathsComputation
-vif org.apache.giraph.io.formats.JsonLongDoubleFloatDoubleVertexInputFormat
-vip input/meugrafo.txt
-vof org.apache.giraph.io.formats.IdWithValueTextOutputFormat
-op output
-w 1

Aplicação em execução

15/10/18 20:41:21 INFO utils.ConfigurationUtils: No edge input format specified. Ensure your InputFormat does not require one.
15/10/18 20:41:25 INFO job.GiraphJob: run: Since checkpointing is disabled (default), do not allow any task retries (setting mapred.map.max.attempts = 1, old value = 4)
15/10/18 20:41:33 INFO job.GiraphJob: Tracking URL:
http://localhost:50030/jobdetails.jsp?jobid=job_201510181954_0002
15/10/18 20:41:33 INFO job.GiraphJob: Waiting for resources… Job will start only when it gets all 2 mappers
15/10/18 20:42:50 INFO job.HaltApplicationUtils$DefaultHaltInstructionsWriter: writeHaltInstructions: To halt
after next superstep execute: ‘bin/halt-application –zkServer vm-giraph:22181 –zkNode
/_hadoopBsp/job_201510181954_0002/_haltComputation’
15/10/18 20:42:50 INFO mapred.JobClient: Running job: job_201510181954_0002
15/10/18 20:42:51 INFO mapred.JobClient: map 100% reduce 0%

Listar diretório do resultado

bin/hadoop fs -ls output
Found 3 items
-rw-r–r– 1 giraphuser supergroup 0 2015-10-18 20:43 /user/giraphuser/output/_SUCCESS
drwxr-xr-x – giraphuser supergroup 0 2015-10-18 20:41 /user/giraphuser/output/_logs
-rw-r–r– 1 giraphuser supergroup 30 2015-10-18 20:42 /user/giraphuser/output/part-m-00001

O Resultado

bin/hadoop fs -text output/part-m-00001

//vérticeID soma dos pesos para o menor caminho

0          1.0
2          2.0
1          0.0
3          1.0
4          5.0

Links:

http://socilab.com – Ferramenta para criação de um grafo da sua rede do Linkedin

http://giraph.apache.org/ – Página oficial do projeto Giraph

http://maven.apache.org/ – Maven, é uma ferramenta de automação de compilação utilizada primariamente em projetos Java

Dúvidas, Perguntas e pedidos de música para:
alexandredvolpi@gmail.com

Ferramentas de Python para Aprendizado de Máquina

Objetivo

O objetivo deste post é revisar os conceitos de redes neurais artificiais e aplicá-los em um conjunto de dados.

O que é aprender?

#  Do ponto de vista humano → Aprender através das experiências
#  Do ponto de vista das máquinas → Aprender através dos dados

…E quais são as partes importantes do aprendizado?

#  Lembrar e adaptar
#  Generalizar (tornar mais amplo; dar maior extensão a algo ou a alguma coisa)Aprendizado de Máquina (Machine Learning)

Computadores devem modificar ou adaptar suas ações para que sejam cada vez mais precisas. A precisão é medida pelo quão bem as ações escolhidas refletem as corretas

 A ideia de fazer o computador aprender surgiu de diversas áreas, como neurociência, biologia, estatística, matemática e física.

“Um programa de computador deve “aprender” a partir de experiências e com respeito a alguma classe de tarefas T e medida de desempenho P, se o desempenho de tarefas em T, medido por P, melhora com experiências E.” Definição bem formada por Tom Mitchell (1998)

Exemplo i:

Jogo de Computador

Tarefa T : Jogar Xadrez

Medida de desempenho P : Partidas ganhas contra oponentes X perdidas

Experiência de Treinamento E : Prática de jogo contra ele mesmo

Exemplo II

Suponha que seu programa de e-mail esteja analisando quais e-mails você marca ou não como SPAM, e baseado nisso, aprende como melhorar a filtragem de SPAM.

É um problema de aprendizado de máquina? Sim

Qual é a tarefa T ? : Classificar e-mails como spam e não spam.

Qual é a experiência E ? : Analisar a classificação de emails como spam ou não 

Qual é a medida de desempenho P ? : O número (fração) de emails corretamente                                                                  classificados como spam / não spam.


Aprendizado de máquina pode ser utilizado para:

#  Detecção de SPAM
#  Fraude em cartões de crédito
#  Diagnósticos médicos
#  Análise de sentimento
#  Sistemas de recomendação
#  Predições
#  Processamento de linguagem natural
#  Motores de busca
#  Bioinformática
#  Reconhecimento de fala e escrita
#  Locomoção de robôs
#  …e muito mais

O problema de aprendizado de máquina é que geralmente se considera um conjunto de n amostras e tenta prever dados de uma amostra desconhecida.

As características de uma amostra são geralmente chamada de features. 

Os tipos de aprendizado:

#  Aprendizado Supervisionada (Supervised Learning)

#  Aprendizado Não Supervisionada (Unsupervised Learning)

#  Aprendizado por Reforço (Reinforcement Learning)

#  Aprendizado Evolucionário (Evolutionary Learning)


Fluxo sobre tipos de aprendizagem de máquina

dinoMl1

dinoML2

 

Definições

#  Modelo (model) : coleção de parâmetros que você está tentando encaixar.

#  Dados (data) : o que você está utilizando para encaixa no modelo.

#  Alvo (target) : o valor que você está tentando prever com o seu modelo

#  Características (features) : atributos do seus dados que serão utilizados na predição

#  Métodos (methods) : algoritmos que usaram seus dados para encaixar em um modelo.


PyBrain

PyBrain (http://pybrain.org) é um biblioteca modular, seu objetivo é oferecer flexibilidade e simplicidade. PyBrain é um acrônimo para Python-Based Reinforcement Learning, Artificial Intelligence and Neural Networks.

Para instalar no python:
pip install –U pybrain 

Alguns algoritmos que estão disponíveis na biblioteca:

Aprendizado supervisionado

#  Back-Propagation
#  R-Prop
#  Support-Vector-Machines (SVM)

Aprendizado não supervisionado

#  K-means clustering
#  LSH for Hamming and Euclidean Spaces

Redes

#  Feed-forward networks
#  Recurrent networks (RNN), incluindo as arquiteturas de Long Short-Term Memory (LSTM)
#  Multi-Dimensional Recurrent Networks (MDRNN)
#  Self-Organizing Maps (Kohonen networks)

Outros algoritmos podem ser visualizados em: http://pybrain.org/pages/features


Fluxo PyBrain

dinoMl3

Números cérebro Humano:

#  10 bilhões de neurônios

#  1 neurônio tem até 10.000 sinapses

#  Se cada ligação == 1 bit
    >> Teríamos mais de 11 Terabytes de capacidade máxima de memória


Redes neurais artificiais – RNA

Combinando os neurônios em uma ou mais camadas, que podem conter um ou mais neurônios e interligando estes neurônios através das sinapses, pode-se formar uma RNA (Rede Neural Artificial).

dinoML4

Sinais de entrada:
w 1 x 1 , w 2 x 2 , … , w n x n

Bias : É incluída no somatório da função de ativação, com o intuito de aumentar o grau de liberdade desta função e, consequentemente, a capacidade de aproximação da rede.

Função de ativação:

Função de transferência:
Função Sigmoide:
Função gaussiana: 
Função tangente hiperbólica: 

Neurônios:

Peso sináptico:

Sinal de saída:

Em geral possuem as RNAs possuem:

dinoML5


Arquitetura:

#  Amplamente conectada
#  Realimentação (retroalimentação)
#  A arquitetura da rede neural é livre


Aprendizado Supervisionado

Apresenta-se o conjunto de dados de entrada e a saída desejada.  A rede retorna um conjunto de valores de saída, que é comparado ao conjunto de valores de saída desejado.

Os pesos sinápticos e níveis de bias são ajustados de forma a minimizar a diferença entre a saída apresentada pela rede e a saída desejada. O processo é repetido para todos os pares de entrada e saída que constituem o conjunto de treinamento da rede, até que a taxa de acerto seja considerada satisfatória.


Aprendizado Não Supervisionado

A rede não recebe informações sobre valores de entrada e organiza sua estrutura de modo a fazer a classificação deste valores em grupos. Os dados são classificados pelo reconhecimento de padrões, ou seja, detecção de características em comum entre conjuntos de dados. Processo de competição e cooperação entre os neurônios.

Rede Neural Perceptron

Tem um arquitetura simples com uma camada de entrada e uma camada de saída, utilizada apenas em estruturas de decisão simples.

#  Função de ativação – Faz a soma ponderada dos sinais de entrada
#  Função de transferência – Determina a saída do neurônio, em função da soma ponderada.

Os valores: w i j , representam os pesos sinápticos das ligações entre os neurônios: o elemento i da camada de entrada com o neurônio j da camada de saída, e simula a eficácia da sinapse entre os neurônios naturais

dinoML6

A função de ativação é representada pela letra v, e tem o formato:dinoML7

A função de transferência é representada pelo símbolo: φ e,normalmente, são utilizadas funções de limite ríspido como a função degrau, onde a função pode assumir dois valores, conforme

dinoML8

Perceptron, consegue aprender qualquer problema de classificação de dados
linearmente separáveis

dinoML9

O conhecimento do Perceptron, assim como o de qualquer RNA, está nos pesos das suas ligações

dinopML10

Exemplo:

Gênio Compositor Cientista
BACH x  
BEETHOVEN x  
EINSTEIN   x
KEPLER   x

Compositor = 0
Cientista = 1

Gênio Neurônio 1 Neurônio 2 Saída
BACH 0 0 0
BEETHOVEN 0 1 0
EINSTEIN 1 0 1
KEPLER 1 1 1

Como vimos, a rede Perceptron só resolvem problemas cujas classes sejam linearmente separáveis, o que não é o caso no problema do ou exclusivo ( XOR ).

#  Pode acontecer de não encontrar nenhuma solução.

#  Porém é possível adicionar novas camadas intermediária para resolver os problemas que não linearmente separáveis.

#  São chamadas de Multi Layer Perceptron.

Multi Layer Perceptron (MLP)

Redes de apenas uma camada só representam funções linearmente separáveis enquanto redes de múltiplas camadas solucionam essa restrição.

O desenvolvimento do algoritmo Backpropagation foi um dos motivos para o ressurgimento da área de redes neurais

dinoML12

O que cada uma das camadas fazem?

DinoMLP1

O objetivo do algoritmo Backpropagation é ajustar os pesos sinápticos a fim de minimizar a função de custo (erro). É uma generalização da rede Perceptron.

Requer funções de ativação diferenciáveis. O algoritmo pode ser dividido em duas fases:

01 – Propagação

#  FeedForward – As entradas se propagam, pela rede, da camada de entrada para a camada de saída

#  FeedBack – Os erros se propagam, na direção contrária ao fluxo de dados, indo da camada de saída até a primeira camada escondida.

02 – Atualização dos pesos

MLP – Características básicas

Regra de propagação:

dinoMLP2

#  Função de ativação: função não-linearmente diferençável em todos os pontos.
#  Topologia: múltiplas camadas
#  Algoritmo de aprendizado: supervisionado
#  Valor de entrada/saída: binários e/ou contínuos

MLP – Processo de Aprendizado

O ajuste dos pesos é dado pelo processo de minimização do erro quadrático pelo
método do gradiente descendente:

 dinoMLP3

Cada peso sináptico i do neurônio j é atualizado proporcionalmente ao negativo da
derivada parcial do erro deste neurônio com relação ao peso.

Em resumo, após o calculo da derivada, tem-se:

dinoMLP4.png

#  η é a taxa de aprendizagem
#  x i é o valor de entrada recebido pela conexão i
#  e j é o valor calculado do erro do neurônio

Pelo aprendizado supervisionado, só se conhece o erro na camada de saída. O neurônio j pertencente à camada de saída, e o erro é dado por: e j = ( t j − x i ) F′( y i )

APACHE MAHOUT PARTE TRÊS

MAHOUT – APRENDIZADO DE MÁQUINA NA ERA DO BIG DATA

# Sistemas de Recomendação
# Filtragem colaborativa
# Recomendação no Mahout

Sistemas de recomendação

Pesquisa / Compras – Quantas vezes você comprou / verificou algum produto ou item guiado por uma recomendação de um site ou uma loja virtual?

Filmes / Vídeos – Quantos vídeos você já assistiu no Youtube ou um um filme no Netflix recomendados automaticamente baseado no seu perfil ou histórico anterior?

Vagas de emprego – Quantas vezes você foi avisado de vagas de emprego nas redes sociais que era realmente interessante?

Para que é preciso sistemas de recomendação?

A mais clara e pura verdade é vender mais! mas espere não só isso, a recomendação funcional pode ajudar os clientes a encontrar produtos  ou outra coisa qualquer, que sozinhos nunca encontrariam pois lhe é apresentado conteúdo/produto de interesse e relevância nada é ao acaso.

Recomendações e seus big números

#  Facebook – 1.49 bilhões de usuários
#  Youtube – 65 horas de upload de vídeos a cada minuto
#  Spotify – > 30 milhões de músicas
#  Netflix – > 14 mil filmes
Números atualizados em 30/09/2015

Benefícios obtidos com sistema de Recomendação.

#  Atrai a atenção do usuário
#  Melhora a aceitação de um novo serviço / produto
#  Melhora a percepção do que está sendo visualizado pelos usuários
#  Guia os usuários para serviços e produtos apropriados
#  Permite desenvolver um sistema de feedback

Pense e reflita!

“Mas espere um pouco…nem tudo é tão belo e funcional neste mundo de recomendações, pois nem sempre a recomendação está correta”

Quando os problemas infelizmente ou quem sabe felizmente surgem!

Dois problemas centrais de qualquer sistema de recomendação

#  A identificação do interesse do usuário – A recomendação é feita baseada na análise do histórico de consumo do usuário, quais produtos /  serviços foram comprados, utilizados ou avaliados

#  calculo da similaridade entre os itens a serem recomendados – para que se consiga recomendar algo dentro do conjunto de interesse do usuário.

Existem duas abordagens distintas de como se definir o interesse do indivíduo e como se calcular a similaridade entre os itens:

Recomendação baseada em conteúdo

#  Totalmente voltada para análise de informações sobre os usuários ou sobre os itens ou sobre os dois (usuários e itens)
#  Envolve a definição de perfis dos usuários e diversas características dos elementos a serem recomendados
#  Restrita a cada domínio específico, pois em muitos casos depende de atributos que fazem sentido em determinados cenários

Recomendação por filtragem colaborativa

#  Se caracteriza pela análise do histórico do usuário, considerando algum tipo            de avaliação de itens feito pelo usuário
#  Diferente da recomendação baseada em conteúdo, as características dos               produtos ou propriedades do usuário não são consideradas na filtragem                 colaborativa

Filtragem colaborativa

Na filtragem colaborativa, para cada item ou usuário uma vizinhança ( neighborhood ) é formada com itens ou usuários similares, uma vez que o usuário visualiza um item recomendações são formadas a partir dessa vizinhança.

Com filtragem colaborativa, existem ainda três variações principais da forma de se gerar a recomendação:

#  Baseada em usuário
#  Baseada em ítens
#  Híbrida

Filtragem colaborativa baseada em usuário

Consistem em descobrir a semelhança entre os diferentes usuários do sistema, para se recomendar os itens bem avaliados por pessoas semelhantes ao usuário ao qual a recomendação se destina

Filtragem colaborativa baseada em Itens

Consistem em filtrar os itens que o usuário avaliou melhor, para então identificar no sistema itens similares a esses, que estão serão recomendados.

Filtragem colaborativa Híbrida

Consiste na utilização das abordagens baseadas em conteúdo e em itens. Utilizada por Amazon e Spotify.

Spotify_logoAmazon_logo

Recomendação no mahout

Fornece algorítimos de recomendação baseados no framework Taste por Sean Owen

Benefícios:

#  Eficiência operacional
#  Escalabilidade no uso do MapReduce e Hadoop

O módulo de recomendação do Mahout implementa somente algorítimos baseados na Filtragem Colaborativa, pois não há muito sentido em tentar abstrair em um framework cenários predeterminados de geração de recomendação baseado em conteúdo.

Algorítimos de filtragem colaborativa:

#  Baseada no usuário: Recomenda itens encontrando usuários semelhantes. Muitas vezes é mais difícil de escalar, devido à natureza dinâmica dos usuários.

#  Baseada em itens: Calcula a similaridade entre os itens e faz recomendações. Itens normalmente não mudam muito, por isso muitas vezes isso pode ser calculado offline.

#  Slop-One: Abordagem de recomendação de filtragem colaborativa rápida e simples,  aplicável quando os usuários geraram classificações (e não apenas preferências booleanas)

Medidas de similaridade – Fornecem uma medida de similaridade entre os itens ou usuários.

#  Correlação de Person
#  Distância Euclidiana
#  Coeficiente de Tanimoto
#  Log-Likelihood

Correlação de Pearson

#  Indica a tendência das duas séries de números aumentarem ou diminuírem em conjunto. A intervalo de correlação de Pearson é de -1 a 1

#  Valores próximos de 1 indicam que as duas séries são alteradas na mesma
direção, aumentando ou diminuindo juntas

#  Valores próximos a -1 indicam correlação negativa. A mudança duas séries em direções opostas, por isso, se uma aumenta a outra diminui.

#  Valores próximos de 0 significa que as duas séries não têm padrões relacionados com suas respectivas alterações

#  Classe Mahout – PearsonCorrelationSimilarity

Distância Euclidiana

#  Baseada na distância entre usuários

#  Usuários são representados como pontos em um espaço. As coordenadas do espaço são referentes aos itens de uma base de dados. O valor de preferência ao item é o valor da coordenada.

#  O valor da distância Euclidiana é um valor positivo entre 0 e 1 Valores próximos a 1 indicam itens similares e valores próximos a 0 indicam que usuários não possuem preferências similares

#  Classe Mahout – EuclideanDistanceSimilarity

Coeficiente de Tanimoto

#  Tanimoto ou Jaccard são coeficientes de contagem da razão entre o número de elementos comuns entre dois usuários dividido pelo número de itens que ambos os utilizadores têm preferência.

#  Classe Mahout – TanimotoCoefficientSimilarity

Log-Likelihood

#  Medida de similaridade similar ao coeficiente de Tanimoto, mas, adicionalmente, calcula quão provável é a sobreposição entre os dois usuários.

#  Classe Mahout – LogLikelihoodSimilarity

Exemplo:

recomendaMahout

Fase Map 1- Faz do usuário a chave

recMahout1

Fase Reduce 1 – Cria o índice invertido

recMahout2

Fase Map 2 – Emite todas as classificações de coocorrências

recMahout3

Fase Reduce 2 –  Calcula as similaridades

recMahout4

Considerações finais

Mahout pode ser utilizado nos seguintes

#  Recomendação de amigos, produtos, serviços
#  Classificar grupos em conteúdo em grupos predefinidos
#  Encontrar conteúdos similares baseado em propriedades de objetos
#  Identificar tópicos-chave em grandes coleções de texto
#  Fazer análise de churn
#  Muito mais (quer dizer que ainda não tenho mais exemplos :-))

mahoutFluxo

Porque utilizar Mahout?

#  Desempenho
#  Processamento distribuído
#  Escalável
#  Simples
#  R-Like DSL Scala API
#  Operações de álgebra linear
#  Compatibilidade com bibliotecas como MLLib
#  Permite execução no Spark
#  H2O in progress (pelo menos era em 01/10/2015)

Mahout na Prática

Passo 1 – Estruturar o arquivo
Passo 2 – Criar um diretório no HDFS
Passo 3 – Enviar arquivos para o HDFS
Passo 4 – Executar algoritmo de filtragem colaborativa
Passo 5 – Visualizar o resultado
Passo 6 – Formatar o resultado

Base de dados: Registros de preferências

#  BX-Books.csv
#  BX-Book-Ratings.csv
#  BX-Users.csv

Objetivo: Recomendar livros aos usuários de acordo com o histórico de preferência

Passo 1 – Estruturar o arquivo

O algoritmo distribuído de recomendação baseado em item requer duas entradas:

1) Arquivo com as recomendações
2) Arquivo com ID ́s de usuários que receberão as recomendações

Comandos

cd ~/Documents

#executar script para remover aspas e converter ponto-e-vírgula para vírgula.
python clean_book_ratings.py BX-Book-Ratings.csv cleaned_book_ratings.txt

Foi criado o arquivo cleaned_book_ratings.txcom os dados higienizado (sem aspas e o ponto e virgula foi convertido para vírgula)

#executar script para gerar um arquivo somente com os id ́s dos usuários
./clean_book_users.sh

Passo 2 – Criar um diretório no HDFS

hadoop fs -mkdir books

Passo 3 – Enviar arquivos para o HDFS

hadoop fs -put cleaned_book_users.txt books
hadoop fs -cat books/cleaned_book_users.txt | head -n5

Observação no comando acima podemos remover o | head -n5 para a exibição de todos os dados

Passo 4 – Executar algoritmo de filtragem colaborativa

mahout recommenditembased
–input books/cleaned_book_ratings.txt
–output books/recommended
–usersFile books/cleaned_book_users.txt
-s SIMILARITY_LOGLIKELIHOOD

hadoop fs -ls temp

Passo 5 – Visualizar resultado

#  Após terminado a execução do job, o resultado será armazenado no diretório books/recommended/part-r-00000.

#  O formato de saída será o ID do usuário, seguido de uma lista separada por vírgulas do ID do item e um score dado a ele.

Passo 5 – Visualizar resultado

hadoop fs -cat books/recommended/part-r-00000 | head -n5

Passo 6 – Formatar o resultado

hadoop fs -cat books/recommended/part-r-00000 | python print_user_summaries.py BX-Books.csv BX-Users.csv BX-Book-Ratings.csv 10

Fim


Apache Mahout

mahout

Mahout – Aprendizado de Máquina na Era do Big Data

“Big Data está finalmente fazendo a transição de aulas de ciência da computação e aprendizado de máquina para diversos cenários do mundo real nas empresas, governo, ciência, política, medicina, clima, e análises pessoais”

O que é mahout?

#  É uma biblioteca de Aprendizado de Máquina escalável
#  É uma biblioteca Java
#  É executado em uma plataforma Hadoop
#  Criado em 2008 como parte do projeto Lucene
#  Se tornou um projeto Apache em 2010

O que é aprendizado de máquina?

Dada uma experiência anterior, um treinamento ou base de dados, permitir que um algorítimo seja capaz de responder apropriadamente à novas situações de dados

#  Fundamentos de aprendizado máquina
#  História do Mahout
#  Características do Apache Mahout
#  Mahout – Classificação

Algoritmos de Aprendizado de Máquina
Características de algoritmos de aprendizado de máquina:

#  Uso intensivo de recursos (CPU, memória e Hard Disk)
#  São aplicados ( Na maioria das vezes ) em um grande volume de dados
# Requisitos:
>> Distribuição dos dados
>> Distribuição de tarefas

Características de Analytics:

slide10

Descrição Analytics Big Data Analytics
Custo de armazenamento Alto Baixo
Análises Off Line Tempo Real
Velocidade de carregamento de dados Baixa Alta
Tempo de carregamento dos dados Longo 50 a 60% mais rápido
Variedade dos dados Estruturados Não Estruturados
Custo com suporte Gigabyte, Terabyte Petabyte, Exabyte
Tempo de administração Longo 60% mais rápido

Escalabilidade horizontal – Necessidade de executar algoritmos Aprendizado de Máquina em larga escala

eh

Bibliotecas de Aprendizado de MÁQUINA

Comparação entre bibliotecas de aprendizado de máquina

Biblioteca Licença Linguagem Escalável
Matlab Comercial C Não
Pacotes R Open Source R Não
Weka Open Source Java Não
Scikit-learn Open Source Python Não
Mahout Open Source Java SIM

Mahout Definição & CARATERÍSTICAS

Quando usar Mahout?

#  Quantidade de dados muito grande para uma única máquina
#  Dados já estão no Hadoop
#  Dificuldade em paralelizar algoritmo de aprendizado de máquina
#  Necessidade de baixa latência e alta vazão de dados

Atualmente Mahout fornece suporte os seguintes tipos de algoritmos:

#  Recomendação: Mahout oferece uma API para o desenvolvimento de recomendações baseadas no usuário e baseada no item.

#  Classificação: Decide o quanto um item pertence a uma categoria em particular. Mahout oferece um vasto conjunto de APIs para conseguir um modelo classificador.

#  Agrupamento (Clustering): Técnica que tenta agrupar itens com base em algum tipo de semelhança. Aqui, encontramos os diferentes conjuntos de itens com base em certas propriedades, e não sabemos o nome do cluster em antecedência.
A principal diferença entre o agrupamento e classificação é que em classificação já se o nome da classe final.

#  Redução Dimensional: Processo de redução do número de variáveis aleatórias sob consideração em um modelo. Isso faz com que dados fiquem mais fáceis de usar e o modelo se torne mais rápido.
Mahout fornece alguns algoritmos para a redução dimensional, tal como o Singular
Value Decomposition

#  Modelagem de tópicos: usada para capturar a ideia abstrata de um documento. Um modelo de tópico é um modelo que associa distribuição de probabilidade com cada documento sobre tópicos.
Levando em conta o tema de um documento, espera-se que palavras específicas apareçam com mais ou menos frequência.

Exemplo:

“Futebol” e “time” aparecerá mais em um documento sobre Esportes.

Os algoritmos do Mahout podem ser categorizados em dois grupos:

Algoritmos sequenciais: esses algoritmos são executados sequencialmente (não brinca 😮 )  e não usam o processamento paralelo do Hadoop.

Exemplos:

#  Filtragem colaborativa baseada no usuário,
#  Regressão logística,
#  Hidden Markov Model,
#  Multi-layer perceptron,
#  Singular value decomposition.

Algoritmos paralelos: esses algoritmos podem suportar petabytes de dados usando a função Map do Hadoop e, consequentemente, utilizando processamento paralelo.

Exemplos:

#  Random Forest,
#  Naïve Bayes,
#  Clustering.
#  K-means,

Classificação

Em aprendizado de máquina, a classificação é a automatização do processo de tomada de decisão que aprende a partir de exemplos do passado e emula as decisões automaticamente. A emulação das decisões automaticamente é um conceito central na análise preditiva

Uma consulta médica pode ser um exemplo da vida real sobre classificação.

O médico faz algumas perguntas, e com base em suas respostas, ele é capaz de identificar se você tem uma determinada doença ou não. A classificação é a categorização de respostas possíveis, e na aprendizagem de máquina, busca-se automatizar este processo.

Um problema relacionado a esta área é descobrir a probabilidade de um indivíduo pertencer a uma determinada classe.

A classificação é uma técnica de aprendizado supervisionado. Com ​ base em dados históricos, um agente aprende e adquire a capacidade para prever o desconhecido

“Entre os clientes da operadora Xis, quais aceitarão ou podem ter uma tendência a aceitar a oferta realizada pelo concorrente?”

Aprendizado supervisionado

“Os algoritmos presentes nessa categoria deduzem uma função a partir dos dados de treinamento, que consistem em pares de exemplos de entradas e saídas.

As saídas podem conter um rótulo utilizado para a classificação ou ser um valor contínuo. Dessa forma, o objetivo dos algoritmos desse tipo de aprendizado de máquina é predizer uma saída para qualquer entrada válida, após um treinamento suficiente.” (Mitchel, 1997)

No processo de Classificação, com o conjunto de dados obtido, tenta-se descobrir variáveis explanatórias que podemos reduzir a incerteza e categorizar alguma coisa.

Exemplo:

Um conjunto de dados sobre “pedidos de empréstimo do cliente”, busca-se construir um classificador para descobrir se um novo cliente é elegível para um empréstimo ou não.
Neste conjunto de dados, podemos ter os seguintes campos: Idade, Renda, Saldo da conta do cliente. O campo empréstimo concedido será a variável alvo.

Conjunto de dados de treinamento: a partir do conjunto de dados a ser utilizado, uma parte é utilizada para criar o conjunto de dados de treino. Este conjunto de dados é utilizado para construir o classificador. Todos os conjuntos de características são usados neste conjunto de dados.

Conjunto de dados de teste: o conjunto de dados que é deixado após o conjunto de dados de treinamento é usado para testar o modelo criado. Esse modelo é então utilizado para prever o valor da variável alvo.

Passos para a construção de um classificador

#  Coleta de dados históricos?
#  Limpeza dos dados
#  Definição de variáveis
#  Definição de variáveis explanatórias?
#  Seleção de um algoritmo?
#  Construção de um modelo
#  Execução com dados de teste
#  Avaliação do modelo
#  Ajuste de variáveis explanatórias
#  Executar novamente com a base de teste

Algoritmos de classificação suportados pelo Mahout

Regressão logística – Prever a probabilidade de algo ocorrer. Mahout oferece a regressão logística pelo algoritmo Stochastic Gradiente Descent.

Naïve Bayes – Algoritmo baseado no teorema de Bayes, muito popular para classificação de texto. Utiliza o conceito de probabilidade para classificar novos itens.

Hidden Markov Model (HMM) – Utilizado em diversas áreas como reconhecimento de fala, categorização de partes de um discurso, predição de genes, análise de série temporal, etc..

Random Forest – O algoritmo mais utilizado para classificação. Consiste em uma coleção de árvores preditoras, cada uma capaz de produzir uma resposta quando apresentada com um conjunto de variáveis explanatórias

Métodos para medir a qualidade predição :

Acurácia = classificados corretamente /total de exemplos
( Verdadeiros positivos + Verdadeiros Negativos) / (Positivos + Negativos )
Erro = 1-Acurácia

A matriz de confusão oferece uma medida efetiva do modelo de classificação, ao mostrar o número de classificações corretas versus as classificações preditas para cada classe, sobre um conjunto de exemplos T

Vamos supor que temos um classificador que classifica três frutas: morangos, cerejas e uvas. Supondo que temos uma amostra de 24 frutos: 7 morangos, 8 cerejas, e 9 uvas, a matriz de confusão resultante será como mostrado na tabela a seguir.

Neste modelo, a partir de 8 morangos, 3 foram classificados como cerejas. A partir das 8 cerejas, 2 foram classificados como morangos, e 1 foi classificado como uma uva. Das uvas, 1 é classificada como uma cereja.

A partir dessa matriz, vamos criar a tabela de confusão.

  Morangos Cerejas Uvas
Morangos 4 3 0
Cerejas 2 5 1
Uvas 0 1 8

O que se pode extrair da tabela confusão:

Precisão: proporção do número total de previsões que foram corretamente classificados. É calculado como (Verdadeiro Positivo + Verdadeiro Negativo) /
Positivo + Negativo. Considerando a = Verdadeiro Positivo, b = Verdadeiro Negativo, c = Positivo, d = Negativo. Precisão = (a + d) / (a ​ + b + c + d)

Valor preditivo positivo: proporção de casos positivos que foram corretamente classificados. É calculado como (Verdadeiro Positivo) / (Verdadeiro Positivo +
Falso Positivo). Portanto, precisão = a / (a ​ + b)

Valor preditivo negativo: proporção de casos negativos que foram classificadas corretamente. É calculado como Verdadeiro Negativo / (Verdadeiro Negativo +
Falso Negativo). Portanto, o valor preditivo negativo = d / (c + d)

Sensibilidade: proporção de casos reais positivos que foram corretamente identificados. Calculado como Verdadeiro positivo / (Verdadeiro Positivo + Falso
Negativo). Portanto, sensibilidade = a / (a ​ + c)

Especificidade: proporção dos casos reais negativos. Calculado como Verdadeiro Negativo / (Falso Positivo + Verdadeiro Negativo). Por isso, especificidade = d /(b+d)

Regressão logística

A regressão logística é um modelo utilizado para a previsão da probabilidade de ocorrência de um evento. Ele faz uso de várias variáveis de previsão que podem ser tanto numérica ou categóricas.

É utilizada para prever a resposta de um binário a partir de um preditor binário, usado para predizer o resultado de uma variável dependente categórica com base em uma ou mais variáveis de previsão (características).

Exemplos de aplicações:

#  Vendas: comprar ou não comprar
#  Marketing: aderir ou não aderir
#  Websites: click versus não-click
#  Cuidados da saúde: curar ou não curar
#  Game: vencer ou perder

Mahout implementa regressão logística com o algoritmo Stochastic Gradient Descent (SGD).

Este algoritmo é sequencial, porém permite rápido processamento, enquanto trabalha com grandes volumes de dados, o algoritmo SGD utiliza uma quantidade constante de memória independentemente do tamanho da entrada.

A implementação de regressão logística usando SGD no Mahout suporta os seguintes nomes de programas em linha de comando:

#  cat: Imprimir um arquivo ou recurso do modo que os modelos de regressão logística os vêem
#  runlogistic: Executar um modelo de regressão logística em relação aos dados de entrada
#  trainlogistic: treinar uma regressão logística, utilizando SGD

COM EXTRAIR DADOS RELEVANTES E PREDITIVOS DAS BUSCAS DO SEU E-COMMERCE

Olá, bom te ver por aqui!
Meu nome é Alexandre Volpi, para os amigos apenas Volpi.

Nas minhas andanças pelo mundo digital, tanto na parte superior quando na inferior, muito se tem dito sobre Big Data, ei fique calmo, não será hoje que falarei sobre esta revolução, o ponto é, temos como extrair dados e mais de alta relevância no quintal de casa…e posso lhe afirmar que com esses dados podemos reinventar o nosso negócio.

Hoje o nosso astro rei é o campo de busca de uma loja virtual, sim aquele carinha que quase sempre está no seu cantinho direito superior, caladão e de poucos amigos, esquecido por muitos, não visto como útil por tantos outros,  mas que esconde um enorme poder de captar informações relevantes para o nosso negócio.

Iniciaremos a nossa jornada rumo ao conhecimento com com a nossa amiga kaoru, ela quer comprar um presente especial para o aniversário do seu amigo o Dr. Gensai e para isso escolheu comprar o presente na loja virtual ZZZZ.COM, ela entra na loja virtual e digita no campo de busca camisa polo azul tamanho 44, clica no botão de pesquisar e adivinha o que acontece…nadaaaaaa, apenas uma mensagem nada amigável informando que o produto não foi encontrado.

Mas a kaoru, xxiii ela é persistente, com muita fé ela digita novamente no campo de busca short amarelo e nada de resultado… ela tenta bermuda azul, tenis nike verde tamanho 45 e com apenas 3% de esperança em encontrar o presente ela digita camisa regata branca…e adivinha…. coisas boas acontecem com quem tem fé, e  kaoru foi agraciada com uma camisa regata branca no resultado da busca….ok ela queria 44 mas só tinha 38 mais isso é outra história.

Você meu amigo leitor e minha amiga leitora, consegue imaginar a quantidade de pessoas que entram em uma loja virtual e saem frustadas sem comprar absolutamente nada? É alto, muito alto. O que mais doí financeiramente é que muitos destes clientes foram embora put.s da vida com a loja virtual pois não encontraram o presente que tanto queriam, e….calma ai, vai piorar…muitas, muita e muitas lojas virtual nem sequer sabem que isso ocorreu!

E como podemos resolver isso? Relativamente Simples!!!, temos de ter acesso aos dados, as palavras e aos termos buscados/pesquisados em nossa loja virtual, isso vale ouro, o mais puro ouro digital!

E onde e como solicitamos tais dados? Fale com a empresa que administra sua plataforma virtual, solicite detalhes sobre como baixar o Log ou o arquivo com as buscas/pesquisas do site ou se elas estão conectadas no Google Analytics podemos pegar lá!

Xiii, sua plataforma não tem isso, fique 35% em pânico, veja se eles utilizam UTM nas buscas ou outro método ou formato que permita a integração ou a comunicação dos termos buscados para o Google Analytics. Falei com a minha plataforma e eles não tem nada disso, xiii já dá para ficar 78% em pânico, pois não conseguiremos extrair informações vitais para várias análises de comportamento.

Já estou com eles em mãos e agora? o que podemos saber?

1) O Ranking dos produtos mais procurados

35   pesquisas por            camisa polo azul tamanho 44
23   pesquisas por            short amarelo
19   pesquisas por            shorts azul
13   pesquisas por            tenis nike verde tamanho 45

Podemos compará-los com as vendas e mensurar o quanto poderemos aumentar o faturamento após os ajustes na busca. OK, eu sei que são só buscas e que isso não é garantia de venda, mas já temos a informação e agora a meta transforma-la em venda, OK?

Este processo é um ciclo infinito: Levantamento,  Análise,  Ação, Mensuração, Lições aprendidas, Levantamento….

2) Buscas sem resultado

Buscas sem resultado é uma pepita grande de ouro, ela poderá indicar, regionalismo, problemas com a escrita da palavra, termo ou expressão, gírias, nomes técnicos e mais um monte de possibilidades.

Vamos aos exemplos:

      –  nike azul ou nique asul ou naike azul
      –  Abraçadeira ou laça gato ou enforca gato
      –  shorts ou bermuda ou calção
      –  geladeira ou refrigerador

Lembre-se de uma coisa importante:
Quando o cliente não encontra o produto desejado nós perdemos a venda e a fé do cliente em nossa loja virtual

Então, vamos levantar o máximo de informação sobre como os clientes buscam o produto em nosso site, vamos pesquisar erros ortográficos, nomes técnicos, gírias, apelidos, nomes específicos de uma cidade ou região, quanto mais informação melhor!

Atualmente muitas plataformas permitem a associação de palavras (tags) diretamente no cadastro do produto com isso dá para melhorar sensivelmente o resultado da busca. Tente monitorar diariamente o log de buscas e fazer os ajustes dos termos e palavras diretamente no cadastro, com isso você aumenta a exibição do produto nos resultados de busca e tem mais chances de converter a venda. $$$

Outro detalhe importante, não é necessário exibir o “você quis dizer” já vá direto para o resultado, isto já caiu em desuso e alguns clientes podem ficar ofendidos com a correção!

3) Palavras e termos para Publicidade

Relacione as palavras buscadas e o seu potencial de conversão ou cruze com as vendas e saiba no detalhe quanto cada palavra gerou de venda.

Agora que sabemos quais as palavras e termos são pesquisados em nossa loja virtual podemos ter uma base para campanhas de Adwords ou até mesmo compará-las com as palavras que já definimos.

Será que o valor que pagamos nesta ou em outra palavra está de acordo com o que ela gera de faturamento? Será que não é hora de investir em outras palavras ou mesmo de aumentar o investimento em Adwords, agora você tem como saber!

4) Prevendo o futuro

Como assim prever o futuro? Opa então quais os números da mega-sega mega acumulada?? ei pera lá, não é este tipo de futuro….infelizmente 😦 … mas sim o futuro das nossas vendas, da nossa querida loja virtual e do nosso share de mercado cada vez maior.

Imagine um monte de buscas de diversos produtos que não vendemos, ou que vendemos parcialmente….  só temos a cor X no tamanho Y e os nossos clientes estão buscando incansavelmente a cor A, B, C, D, E nos tamanhos 33, 38, 44, 45, 46 em nossa loja virtual, isso pode ser uma indicação de:

a) demanda reprimida –  estamos marcando toca em não atendê-la?… tem um monte de clientes ávidos por comprar e não temos o produto ou descontinuamos ou não importaremos mais o modelo BJU…. com base nesses dados temos informações que poderá nos fazer repensar a estratégia ou podem realmente confirmar que o seu feeling de lobo digital ainda está a toda!!  AAAAUUUUU!!!

b) micro sazonalidade, eventos não mapeados e/ou não previstos podem ser identificados ao analisar estes dados, venda e mais vendas em uma semana ou mês em que as vendas são baixa  pode indicar alguma coisa nova…tem uma nova onda, um novo nicho de mercado se formando..

5) Palavras para o SEO

SEO (Search Engine Optimization), significa o um conjunto de técnicas que têm como principal objetivo tornar os sites mais amigáveis para os sites de busca, trabalhando palavras-chave selecionadas no conteúdo do site de forma que este fique melhor posicionado nos resultados orgânicos. (sem pagar)

Uma campanha de SEO bem planejada poderá melhorar o nosso posicionamento nos resultados de buscas orgânica do Google, imagine o impacto que isso terá nos investimentos em publicidade digital. O Departamento financeiro ficará em festa!

Bem e o que mais?

Com um pouco de esforço e um Excel ou uma planilha de código aberto ou a planilha do Google Docs podemos levantar e extrair dados relevantes sobre o que os clientes estão buscando, se estão satisfeitos, se estamos fazendo bonito ou se estamos deixando os clientes escapar para os concorrentes.

DADOS, DADOS, DADOS, NÃO POSSO FAZER TIJOLOS SEM BARRO

Sherlock Holmes

Olá, meu nome é Alexandre Volpi, sou pesquisador de tecnologias disruptivas em Big Data e E-commerce tento misturar e entender diversas variáveis em uma equação onde o resultado seja dados relevantes para os clientes apostarem suas preciosas e finitas fichas no neste grande e intrincado cassino digital!… Façam suas apostas…Vermelho 13 leva tudo..

Para contato, envios de spam ou pedido de música solicitar para alexandredvolpi@gmail.com

Obrigado e paz nos corações de todos

Bancos de Dados NoSQL | HBase

Primeiramente vamos a definição de banco de dados NoSQL, é um quebra de paradigma pois  a informação, toda a informação estará agrupada no mesmo registro, sim no mesmo registro, neste modelo de banco de dados não existe o relacionamento entre várias tabelas para formar uma informação.

HBase é um banco de dados distribuído open-source criado a partir do Google BigTable e escrito em Java.

Por que usar HBase?

Qual tipo de dado pode ser armazenado?

Entidade ou dado de entidade é a informação sobre o estado atual, geralmente leitura e escrita em real time

Exemplos:

>  Pontos de Geolocalização
> Contagem e métricas de clicks
> Receber dados de diferentes sensores

Evento ou dados de eventos são séries temporais, são pontos sucessivamente salvos entre intervalos de tempo, geralmente escrita em real time, algumas combinações de leitura real time e batch

Exemplos:

>  Dados de sensores no tempo
>  Dados históricos de ações na bolsa de valores
>  Métricas históricas
>  Series temporais de clicks

Por que devem ser armazenados?

Tipos de questões que podem ser feitas para esses dados?

>  Casos de uso operacionais
>  Casos de uso Analíticos

Questões baseadas em evento

>  Me dê tudo sobre a entidade E
>  Me dê o mais recente evento V sobre a entidade E
>  Me dê os n eventos V mais recentes sobre a entidade E
>  Mê todos os eventos V sobre a entidade E entre o período [ t1,t2 ]

Questões baseadas em tempo e evento

>  Me dê uma visão agregada de cada entidade entre o período [ t1,t2 ]
>  Me dê uma visão agregada de cada intervalo para uma entidade E
>  Busque todos os eventos V que atendam a um determinado critério

Como os dados podem ser acessados?

>  Real time e Batch
>  Aleatório (Random) e Sequencial

HBase – Arquitetura

Tabela – Modelo Lógico

ModeloLogico

Temos os dados de contato e foto do perfil na mesma Column Family

ModeloLogico2

Divisão da Tabela em Regions

DivisaoTabela

Regions gerenciada pelos RegionServers

RegionServer

Vamos no detalhe

  1. HBase escalonado de forma linear, exige de todas as tabelas uma chave primária denominada Row Key ou UserID
  2. O espaço da chave está dividida em blocos sequenciais distribuídas em uma região.
  3. RegionServers pode ter uma ou mais regiões, a carga é espalhada uniformemente em todo o cluster.
  4. Se as chaves dentro de uma região são acessados ​​freqüentemente, HBase pode subdividir ainda mais a região, dividindo-o automaticamente, de modo que sharding manual de dados não é necessário.
  5. Servidores tais como Zookeeper e HMaster disponibilizam a informação sobre a topologia de cluster disponíveis para os clientes
  6. Os clientes se conectam nos clusters e baixam uma lista de RegionServers, as regiões contidas dentro desses RegionServers e os intervalos de chaves hospedados pelas regiões.
  7. Os clientes sabem exatamente onde qualquer peça de dados está no HBase e pode contactar o RegionServer diretamente, sem qualquer necessidade de um coordenador central.
  8. Os RegionServers incluem um memstore para armazenar em cache linhas freqüentemente acessados ​​na memória. Opcionalmente, os usuários podem armazenar linhas off-heap, gigabytes de armazenamento em cache de dados, minimizando pausas para coleta de lixo.

Tipos de Tabelas

Tabela userspace (dados)

>  Tabelas criadas por meio de API ou hbase shell
>  Tabelas que são criadas e armazenam os dados (registros)

Tabelas Catalog (metadados)

>  Tipo especial de tabela, é acessada somente pelo HBase.
>  Gerencia a localização dos RegionServers e Regions.
>  Essas tabelas nunca são divididas em Regions.
>  Nomes das tabelas:
–  .ROOT – lista a localização da tabela .META
–  .META – lista os Regions e as suas respectivas localizações

Buscar Regions – acesso ao dado (resumo)

Etapas para acessar os dados:

1) Cliente se comunica com o Zookeeper para receber o servidor (hostname) que possui a tabela -ROOT-.

2) Com essa informação, o cliente pode se comunicar com o servidor que possui a tabela -ROOT- que sabe onde está armazenada a tabela .META.

3) Acessar a tabela .META. para o cliente recebe a informação de qual Region e
RegionServer possuem a row key.

4) Cliente realiza acesso ao RegionServer onde está a Region que possui a row  key. Todas essas informações de localização dos metadados e dados são armazenadas em cache no cliente.

Regions

Arquitetura – HBase, HDFS e Zookeeper

Arquitetura

Arquitetura – HBase, HDFS e Zookeeper

Arquitetura2

Arquitetura – RegionServer

RegionServer2

Arquitetura – RegionServer, Tabela, HRegion, HStore e StorageFile

Arquitetura3

Estrutura do HFile

O HFile tem o único objetivo de armazenar os dados do Hbase de forma eficiente. Ele é imutável e contém uma quantidade variável de blocos (os blocos fixos são file info e trailer blocks).

O trailer possui os ponteiros para os blocks. O index block armazena os offsets dos dados e metadados dos blocks. Block Size padrão é 64 KBs esse tamanho pode variar entre 8KB e 1MB. Blocos menores são melhores para acesso aleatório e blocos maiores para acesso sequencial

Estrutura do HFile

Estrutura

Distribuição dos HFiles nos blocos do HDFS

Distribuicao

Formato tabela lógica e física

>  O HBase possui dois tipos de estruturas de chave: row key e column key.
>  A column key é composta pela Column Family e Column Qualifier (coluna).
>  A row key permite que seja possível acessar todas as colunas em uma única row logica.
>  Tabela com formato lógico: Row, Column Family (CF), Column Qualifier (col).
>  O formato lógico não é igual ao formato físico da tabela.
>  Todos os valores são armazenados fisicamente com todas as coordenadas              – Row key, Column Family, Column Qualifier e timestamp

Formato do KeyValue (par de chave-valor)Formato

>  O processo de Fold divide cada célula de cada linha (row) em diferentes StoreFiles, um por Column Family. Em outras palavras, no disco serão armazenados todas as células de uma única CF em um StoreFile, e células de outra CF será armazenada em um StoreFile diferente.
>  Versions (versões do dado baseado em timestamp) são linhas (rows) diferentes no StoreFile (formato físico da tabela).
>  Os pares de chaves-valores (KeysValues) são ordenados primeiro por row key, então por column key e por último por timestamp.

Abaixo uma imagem para consolidar a explicação!

TabelaLogica

Fluxo de escrita dos dados do HBase

DIVERSOS COMPUTADORES | APENAS UM TECLADO E MOUSE

mouse-without-borders

Em nossa humilde opinião a Microsoft marcou um ponto com este software o Garage Mouse without Borders permite controlar vários computadores com apenas um teclado e um mouse, a ferramenta faz uso da rede para que as máquinas consigam se comunicar.

Funciona e funciona bem, nos testes que fizemos controlamos 4 computadores todos com Windows sem qualquer problema e com uma velocidade de transição do mouse entre as telas dos computadores bem interessante, praticamente sem atraso!

Ainda não conseguimos testar a integração com Linux, no site da Microsoft não existe sequer a possibilidade de baixar o Mouse without Borders para o linux. Mas estamos na busca e nos testes.

Abaixo o link para página da Microsoft (em inglês) para o Download, mas vai na fé que é fácil de instalar, é o velho e bom… next, next, finish!

http://www.microsoft.com/en-us/download/details.aspx?id=35460

Bateu uma dúvida ou deu erro,
manda o print do problema e vamos
ver o que podemos fazer para resolver juntos!

alexandredvolpi@gmail.com

… Ah! não esqueça de comentar e de curtir, OK?


Olá Meu nome até o momento é Alexandre Volpi, gosto de estudar e pesquisar muito sobre tecnologia, internet, análise de dados e de física quântica….se vc achou algum erro de português, coisinha corriqueira do dia a dia, deixe-o em paz, agora se for algo do tipo agente pagaremos ou nois vai te ajudar…pelo amor me avisa…

…bem é isso vamos nos falando! Mais informações sobre a minha pessoa, clica aqui


CRIANDO VALOR AO NEGÓCIO

NovoXVelho

Novo Mundo Velho

“ 89% das empresas listadas no FORTUNE 500 de 1955, Não existem hoje…”

.

“ Desde 2000, 52% dAs empresas listadas na FORTUNE 500 se foram ”

.

Algumas empresas perdem a chance de se redefinir.

>  Kodak
>  BlockBuster
>  BlackBerry
>  Borders
>  Circuit City

Cigarro Eletrônico – O velho e desprezado inimigo CIGARRO volta com sabores e com uma opção eletronica!

Bancos que não são bancos tradicionais – Os bancos que além da pseudo concorrência entre si, agora enfrentam players inimagináveis como Google e Apple

MUDANÇA DE ESCALA

Antes eramos milhões de pessoas, hoje somos bilhões….

MUDANÇA DE CAPACIDADE

Antes com poucos bytes poderíamos armazenar o nosso conteúdo, agora estamos saturando o Petabytes e escorregando para o Terabyte.

MUDANÇA DE ARQUITETURA DE APLICAÇÕES

Antes Monolítica agora Composta

.

Big Data vai transformar seu negócio

Novas fontes de clientes, produtos, mercado e insights operacionais

Insights

>  Aproximadamente 10% dos dados disponíveis
>  Incompleto, desintegrado e incorreto
>  Otimização do negócio

Recomendações

>  Explora todos os dados de diferente origens
>   Real-time, correlacionado, conforme
>  Monitoramento do negócio

.

Evolução do processo analítico

Data Science (Advanced Analytics)

Técnicas Tipos de Dados

>  Otimização, Modelagem Preditiva, Forecasting
>  Dados Estruturados, Semiestruturados, Não-
>  Estruturados, múltiplos tipos com conjunto de dados extremamente grandes

Questões Frequentes

>  E se (What if)…?
>  Qual é o melhor senário para nosso negócio?
>  O que irá acontecer depois?
      – E se a tendência continuar?
– Por que isso está acontecendo?
.

Business Intelligence

Técnicas Tipos de Dados

>  Relatórios padrão e ad hoc
>  Relatórios, dashboards, alertas, queries, etc
>  Dados estruturados e convencionais, conjunto de dados administráveis

Questões Frequentes

O que aconteceu no último trimestre?
>  Quantas unidades foram vendidas?
>  Onde está o problema? Em qual situação?

.

Índice de maturidade BIG DATA

Em qual nível está a integração entre os dados e “Analytics” no seu negócio?
  1. Monitoramento
  2. Insights
  3. Business Optimization
  4. Monetização
  5. Metamorfose do Negócio
.

Junte Dados, Analytics e APPS

APPS

Construa a coisa certa

>  Obtenha informações rápidas
>  Entregue dados consistentes e de uma forma padronizada
>  Construa visualizações e aplicações que cada usuário realmente precise

ANALYTICS

Analise Tudo

>  Todos os dados
>  Analises mais sofisticadas
>  Novas combinações e correlações

DADOS

Armazene tudo

>  Estruturado e não estruturado
>  Interno ou Externo
>  Gerado pelo usuário ou por um dispositivo
>  Histórico em tempo real ( Real-Time )

Foco no resultado do negócio,  Não em decisões tecnológicas de baixo nível

INGEST – Capture dados de várias fontes, dados tradicionais e novos dados

STORE – Armazene todos estes dados em um ambiente que possa ser cruzado e analisado

ANALYZE – Use avançados algorítimos para novas descobertas e para identificar padrões preditivos

SURFACE – Compartilhe estas ideias com os gestores

ACT – Construa Data-drive para atender as necessidades do negócio
Data-drive – insights de marketing e decisões que surgem da análise de dados

Entregue uma experiência “sem remendos” para todos
BIG DATA É UM ESPORTE COLETIVO

>  Usuários de Negócio
> Desenvolvedores de Aplicações
>  Implementadores de Infraestrutura
>  Cientista de Dados
>  Engenheiro de Dados
>  Analista de Negócios

.

Processo de Engenharia de Solução

  1. Entenda como a organização faz dinheiro
  2. Identifique as principais iniciativas do negócio
  3. Faça sessões de Brainstorm sobre o impacto no negócio
  4. Classifique os casos de uso
  5. Prove!
  6. Desenhe e implemente a solução

.

Criando a Visão

>  Pesquise e entreviste para entender as áreas de negócio alvo
>  Analise os dados e provoque os usuários
>  Explore o “Reino do possível”
>  Discuta e priorize os casos de uso
>  Identifique os riscos de implementação e os direcionadores do negócio

.

Identificando as Iniciativas de Negócio

As iniciativas mais importantes incluem o que a organização planeja atingir com sua
estratégia de negócio nos próximos 9-12 meses, normalmente os objetivos de negócio
incluem metas financeiras, indicadores em uma janela de tempo.

As iniciativas de negócio que suportam a estratégia possuem as seguintes
características:

>  Crítico
>  Formalizado
>  Múltiplas Áreas envolvidas
>  Liderada por um executivo sênior
>  Possui metas financeiras claras
>  Possui cronograma de execução bem definido
>  Entrega resultados financeiros atraentes ou vantagem competitiva

Exercício:

Identificando as Iniciativas do seu Negócio

>__________________________________________________________
>__________________________________________________________
>__________________________________________________________
>__________________________________________________________
>__________________________________________________________

Programação em R

R é uma linguagem e um ambiente de desenvolvimento integrado, para cálculos estatísticos e gráficos.

.

Como foi criado o R?

Criado inicialmente para testar ideias estatísticas. Utilizado posteriormente como ferramenta de ensino de cursos de estatística foi adotado posteriormente por um grande número de usuários e desenvolvedores

Características do R

>  Open source, http://cran.r-project.org/
>  Derivado das linguagens de programação “Squeme” e “S”
>  Possui múltiplos paradigmas de programação
– Funcional
– Interpretada
– Orientada a objetos

R pode ser definido como…

>  Software estatístico
>  Linguagem de programação
>  Grande coleção de bibliotecas
>  Ambiente de software para análise de dados

R oferece suporte à diversas operações de análise de dados

>  Classificação
>  Agrupamento
>  Análise de série temporal
>  K-Means
>  Modelos lineares e não lineares
>  Muito mais…

R é aplicado em diferentes áreas

>  Finanças
>  Ciências sociais
>  Genética
>  Medicina
>  Redes sociais

Benefícios do R

Plataforma única para análise de dados

>  Manipulação de dados
>  Mineração de dados
>  Visualização de dados

Permite integração com diversos bancos de dados

>  Banco de dados Relacionais
>  Banco de dados Distribuídos
>  Streaming de dados
>  Arquivo de texto

Grande variedade de recursos para visualização de dados

>  Permite a exibição dos dados em diversos tipos de gráficos

.

ANALISE DE DADOS

Como gerar soluções orientadas por dados?

>  Dados
>  Insights
>  Ações

Como obter esses insights?

>  Mineração de texto
>  Métodos estatísticos
>  Aprendizado de máquina
>  Visualização de dados

.

Variáveis

Podem ser definidas como containers que fazem referências a todos os tipos de objetos no R

Define-se uma variável com um nome e um valor

Exemplo:

varA <- 10

O nome das variáveis pode conter letras, dígitos, ponto e underscore(“_”), porém o nome não pode iniciar com um dígito ( 0123456789 )

As variáveis armazenam o valor de um objeto. No R, todos os objetos possuem uma classe, podendo ser:

>  Numeric
>  Logical
>  Character
>  List
>  Vector
>  Matrix
>  Factor
>  Data.frame

Exemplos de uso de funções

abs(x)            Valor absoluto de x
log(x)             Logaritmo natural de x
exp(x)            Exponencial elevado a x
sin(x)             Seno de x
cos(x)            Cosseno de x
tan(x)             Tangente de x
length(x)        Numero de elementos no vetor x
sum(x)           Soma de elementos do vetor x
round(x, digits=n) Arredonda x com n decimais

.

Estrutura de dados

R permite atuar com diversas estruturas de dados

Vetor (Vector)
>  1 linha, N colunas, 1 tipo de dado

Matriz (Matrix)
>  N linhas, N colunas, 1 tipo de dado

Lista (List)
>  1 linha, N colunas, N tipos de dados

Data frame
>  N linhas, N colunas, N tipos de dados

Estrutura de dados de 1 dimensão que permite armazenar dados que sejam do mesmo tipo

As funções c(), seq() e rep() permitem armazenar em um vetor múltiplos valores numéricos

.

Manipulação de arquivos

R permite importar dados que estão salvos em arquivos externos, tais como planilhas, arquivos de texto, arquivos XML e arquivos CSV

Os dados importados pelo R são transformados em objetos, ele também permite exportar dados para os formatos mencionados anteriormente

Comando read.table() : faz a leitura de uma tabela de dados e gera um data frame com os campos correspondentes aos dados

Argumentos
File: nome do arquivo a ser carregado
Header: valor lógico indicando se a primeira linha da tabela contem os nomes das variáveis
Sep: caracter utilizado para separar os campos da tabela
Dec: caracter utilizado para os valores decimais

.

Instalando o R

Windows e todos os seus sabores
R              http://www.r-project.org
R Studio   http://www.rstudio.com/ide/download/desktop

Ubuntu
>  sudo apt-get update
>  sudo apt-get install r-base-core

No R Studio podemos?:

>  Console de execução
>  Visualizar o conteúdo dos objetos
>  Objetos criados na sessão
>  Visualização de arquivos, gráficos e ajuda

R Studio   http://www.rstudio.com/ide/download/desktop

Os pacotes ”libssl0.9.8″, “libapparmor1” e “apparmor-utils” são necessários, basta executar o comando abaixo:

>  apt-get install libssl0.9.8 libapparmor1 apparmor-utils

.

R NA PŔÁTICA