Apache Spark

Hadoop e Spark

Hadoop é uma plataforma de software em Java de computação distribuída voltada para clusters e processamento de grandes massas de dados. Foi inspirada no MapReduce e no GoogleFS (GFS).

.

O Que é o Apache Spark?

Apache Spark é uma engine rápida para processamento em larga escala desenvolvido em linguagem Scala. Originalmente desenvolvida no AMPLab na UC Berkeley

Começou como um processo de pesquisa em 2009, em 2010 o seu código foi aberto e em 2013 foi transferido para ASF. Atualmente é um projeto top-level.

Projeto de Código Aberto na Fundação Apache:

Commiters da Cloudera, Yahoo, Databricks, UC Berkeley, Intel,Groupon,…um dos mais ativos e um dos projetos com maior crescimento da Fundação Apache

É possível fazer aplicações Spark

Em Python, Scala ou Java, suporte a R e Dataframes chegando em junho/2015

.

Vantagens do Spark

Programação de alto nível, programadores podem focar na lógica

Computação em Cluster, processos são distribuídos ao redor do cluster, gerenciado por um único “master”, escalável e tolerante a erro

Dados em memória, cache configurável para iteração eficiente

Spark Core: Possui as funções básicas, incluindo os componentes para agendamento de tarefas (task scheduling), gerenciamento de memória, recuperação de falha, interação com sistemas de armazenamento (HDFS, Hbase, etc), dentre outros. É o home para API que define os RDDs (representa uma coleção de itens distribuídos entre os nodes).

 Spark SQL: É o componente que suporta a interação com o Spark por meio de linguagem SQL e HiveQL. Basicamente converte query SQL em operações no Spark. É uma evolução do projeto Shark iniciado pela UC Berkeley.

Spark Streaming: É o componente que permite processar stream de dados em real time. Exemplos de stream de dados: log de web servers, mensagens em uma fila. Tem o mesmo nível de tolerância a falha e escalabilidade que o Spark Core.

MLib: É uma biblioteca que contem as funções e algoritmos de Machine Learning, incluindo regressão, cluster, collaborative filtering, dentre outros.

GraphX: É uma biblioteca que prove uma API para manipular gráficos em paralelo. Muito utilizado para análise de rede social (Social Network Analysis).

Cluster Managers: O Spark pode utilizar diversos cluster manager, como YARN, Mesos ou Standalone Scheduler se você tiver apenas Spark no seu cluster.

.

Casos de Uso do Spark

• ETL
• Text Mining
• Index Building
• Criação de Grafo e Análise
• Reconhecimento de padrões
• Filtro colaborativo
• Modelos preditivos
• Análise de Sentimento
• Assessment de Risco
• Real-Time Analytics

.

Spark x Hadoop MapReduce

Spark leva o conceito do MapReduce ao próximo nível
• API de alto nível: desenvolvimento mais rápido,mais fácil
• Latência baixa:  processamento próximo de tempo real
• Armazenamento in-memory: até 100x de melhoria de performance

.

RDD (Resilient Distributed Dataset)

RDDs são a unidade fundamental do Spark. É uma coleção de objetos distribuídos. Eles são imutáveis.

Resilient: se os dados em memória são perdidos, eles podem ser recriados.

Distributed: armazenado em memória através do cluster.

Dataset: dados iniciais podem vir de um arquivo ou serem criados programaticamente.

.

Operações em RDD – Transformação

Há dois tipos de operações RDD:

UM : Transformação: operações que definem um novo RDD, utilizando Lazy Evalution (Spark não irá executar até haver uma ação).

Função map: Cria um novo RDD realizando um determinada função para cada registro.

Função filter: Cria um novo RDD incluindo ou excluindo cada registro do RDD baseada em uma função boolean.

Outras funções em um RDD: distinct, sample.

Outras funções em pares de RDD: union, intersection, subtract, cartesian, combineByKey(), groupByKey(), join, etc.

.

DOIS : Ação: Uma ação que retorna um resultado para o driver ou escreve no Storage. A mais comum utiliza reduce que realiza operações envolvendo dois elementos do mesmo tipo e retorna um novo elemento do mesmo tipo.

Collect () : Retorna todos os elementos de um RDD. Grava todo o dataset na memória. Não deve ser utilizado em datasets com tamanho muito grande que possa exceder a memória.

Count () : Retorna o número de elementos de um RDD.

Top(num) : Retorna os top elementos.

Reduce(func) : combina os elementos do RDD juntos em paralelo (ex: soma).

Post em  produção


Anúncios

Virtual Machine : Virtualização

Virtualização é a tecnologia que transforma, obedecidas certas condições, um servidor físico em vários servidores virtuais. Oferece um ambiente similar a um servidor físico e otimiza recursos, tornando a aplicação independente do hardware.

Isto tem por objetivo sair de um ambiente 1:1 (onde uma aplicação deve ser executada em um servidor físico) para N:1 (N aplicações para um servidor físico).

Motivação, redução de custo de hardware, otimização do uso da infraestrutura de data center, melhoria de recuperação de desastre e continuidade de negócios.

Existem algumas limitações neste modelo, aplicativos de carga excessiva, gerenciamento de licenciamento.

Conceitos utilizados em Virtualização:

Workload (carga de trabalho): Constitui-se dos dados a serem processados, as instruções a serem executadas sobre estes dados se define a qualidade de serviços percebida pelo usuário final.

>  Varia de acordo com a aplicação que será processada.
>   Podem variar dia para dia, hora para hora, minuto para minuto, segundo para segundo.
>  Pode ser previsível ou imprevisível.
>  Tem grande impacto no desempenho da aplicação.

Exemplos:

>  Transações online,
>  Batch Jobs
>  Consultas ad hoc
>  Consultas analíticas.

Throughput (taxa de transferência): define a capacidade do hardware/software para processar os dados. É composto pela velocidade de CPU, I/O, capacidades de paralelismo e eficiência do Sistema Operaciona (SO). O kernel do sistema operacional (SO), espaço em disco, os controladores de cache e o microcódigo são exemplos de recursos a serem avaliados para definir o throughput.

.

Monitor de Máquina Virtual

Virtual Machine Monitor – VMM

O VMM também é conhecido como Hypervisor. É o componente de software que hospeda as máquinas virtuais.

Ele tem como objetivo controlar os recursos compartilhados pelas máquinas virtuais, tais como: processadores, memória, dispositivos de entrada e saída, armazenamento.

Também possui a função de escalonar o processo que vai executar a cada momento, semelhante ao escalonador do próprio sistema operacional.

Exemplos de Monitores de Máquinas Virtuais:

VMware: É um dos mais populares softwares de virtualização. Oferece virtualização desde desktops, notebooks até data centers. VMware Workstation é a versão utilizada para desktops e notebooks. Essa versão é executada em um sistema operacional hospedeiro. Existe outra versão chamada VMware ESX que se consiste, por si só, em um sistema operacional hospedeiro.

Oracle Virtual Box: Também é largamente utilizado. Foi criado pela Sun Microsystems. Possui uma versão GPL (General Public License) e outra comercial full. A versão comercial possui suporte a conexão RDP (Remote Desktop Control) para USB e para i-SCSI.

Hyper-V  da Microsoft

Xen Server da Citrix)

.

Virtual Machine

É o contêiner de software totalmente isolado e capaz de executar sistemas operacionais e aplicações próprias como se fosse um servidor físico.

Possui CPU, memória, disco rígido, NIC (Network Interface Card) – interface de rede.

Tem como objetivo se comportar com uma duplicata eficiente e isolada de uma máquina real

Java Virtual Machine (JVM)

Java é uma linguagem de propósito geral, concorrente, orientada a objetos, que foi designada com a especificidade de possuir o mínimo de dependências possíveis. Os códigos são compilados para bytecodes que podem ser executados em uma máquina virtual Java (Java Virtual Machine).

O objetivo da JVM é executar código Java em qualquer dispositivo ou sistema operacional, independente do fornecedor ou tecnologia, podendo ser executado em desktop, notebook, celulares,SmartPhones, SmartTV, impressoras, dentre outros.

.

VMWare

VMware é um software/máquina virtual que permite a instalação e utilização de um sistema operacional dentro de outro dando suporte real a software de outros sistemas operativos.

Sistemas operacionais que suporta ser instalado:

Windows hosts:

>  Windows XP, all service packs (32-bit)
>  Windows Server 2003 (32-bit)
>  Windows Vista (32-bit and 64-bit1 )
>  Windows Server 2008 (32-bit and 64-bit)
>  Windows 7 (32-bit and 64-bit)
>  Windows 8 (32-bit and 64-bit)
>  Windows Server 2012 (64-bit)

Linux:

>  Mandrake Linux
>  Red Hat
>  SUSE.

.

Oracle VirtualBox

O Oracle VM Virtual Box é um software livre multi-plataforma que permite efetuar virtualização de um ou mais sistemas operacionais em um computador com Sistema Operacional (SO) Windows (XP ou superior), Linux, Macintosh ou Solaris.

Sistemas operacionais que suporta ser instalado:

Windows hosts:

>  Windows XP, all service packs (32-bit)
>  Windows Server 2003 (32-bit)
>  Windows Vista (32-bit and 64-bit1 )
>  Windows Server 2008 (32-bit and 64-bit)
>  Windows 7 (32-bit and 64-bit)
>  Windows 8 (32-bit and 64-bit)
>  Windows Server 2012 (64-bit)

Mac OS X hosts:

>  10.6 (Snow Leopard, 32-bit and 64-bit)
>  10.7 (Lion, 32-bit and 64- bit)
>  10.8 (Mountain Lion, 64-bit)
>  10.9 (Mavericks, 64-bit)

Linux hosts (32-bit and 64-bit3 ):

>  10.04 (“Lucid Lynx”)
>  10.10 (“Maverick Meerkat)
>  11.04 (“Natty Narwhal”)
>  11.10 (“Oneiric Oncelot”)
>  12.04 (“Precise Pangolin”)
>  12.10 (“Quantal Quetzal”)
>  13.04 (“Raring Ringtail”)
>  13.10 (“Saucy Salamander”)

>  Debian GNU/Linux 6.0 (“squeeze”) and 7.0 (“wheezy”)

>  Oracle Enterprise Linux 5, Oracle Linux 6

>  Redhat Enterprise Linux 5 and 6

>  Fedora Core 6 to 19

>  Gentoo Linux

>  openSUSE 11.0, 11.1, 11.2, 11.3, 11.4, 12.1, 12.2

>  Mandriva 2010 and 2011

>  Solaris hosts (64-bit only)*

.

VM Cloudera

Pré-requisitos: Sistema Operacional e Hardware que suportem 64-bits; 20 GBs de espaço em disco; mínimo na máquina física com 4 GBs e ideal com 8 GBs de memória.

.

VM Hortonworks

Pré-requisitos: Sistema Operacional e Hardware que suportem 32-bits ou 64-bits; 20 GBs de espaço em disco; mínimo na máquina física com 4 GBs e ideal com 8 GBs de memória para o Ambari e HBase.

.

VM MapR

Pré-requisitos: Sistema Operacional e Hardware que suportem 64-bits; 20 GBs de espaço em disco; no mínimo máquina física com 4 GBs e ideal com 8 GBs de memória.

.

VM .iso CentOS

Pré-requisitos: Sistema Operacional e Hardware que suportem 64-bits; 20 GBs de espaço em disco; no mínimo máquina física com 2 GBs e ideal com 4 GBs de memória.

Introdução ao Big Data : Parte 2 e meio

Olá seja bem-vindo de volta, fico feliz em saber que você não aceita passivamente tudo o que existe à sua volta e deseja libertar-se e conhecer a verdade absoluta das coisas e o acesso ao conhecimento.

Então vamos a ele!

Vivemos em um mundo interconectado onde praticamente todos somos amigos de todos e em nossas redes sociais temos mais amigos do que conseguimos gerenciar.

E neste cenário caótico de dados e mais dados surge um movimento chamado Big Data que tem como missão colocar ordem nas coisas.

Como vimos antes de tomar a pílula vermelha o Big Data tem alguns desafios que incluem:

>  análise
>  captura
>  curadoria de dados
>  pesquisa
>  compartilhamento
>  armazenamento
>  transferência
>  visualização

Além disso temos os famosos 5 Vs.

> Volume
> Velocidade
> Variedade
> Veracidade
>  Valor

.

Volume

Imagine uma quantidade grande de dados, imaginou…
agora multiplique por 10x…ou quem sabe 100x

Some todos os e-mails enviados, as mensagens de Twitter, as fotos e mais fotos, os vídeos que trafegam pela internet diariamente. Só no nosso amigo Facebook gera incríveis 10 bilhões de mensagens diariamente, sem contar os 4,5 bilhões de curtidas nem as 350 milhões de fotos..tudo isso em um lindo e maravilhoso dia…

E o nosso querido Big Data entre para armazenar tudo isso, e quando necessário mastigar este volume monstruoso de dados para nos fornecer análises preditivas de onde investir nosso dinheiro, quais clientes são mais confiáveis para eu emprestar meu dinheiro ou quais dos nossos clientes estão propensos a ir embora com as ofertas persuasivas dos nossos concorrentes…

Um pouco mais sobre o que é volume de dados, vamos deste os primórdios
neandertais do bit até o mundo do futuro não tão distante do 
Yottabyte

1 byte = 8 bits
é o suficiente para armazenar um caractere de texto no PC;

1 Kilobyte = 1.000 bytes
é a informação contida em uma página de livro;

1 Megabyte =  1.000.000 de bytes
representa um quinto da obra de W. Shakespeare;

1 Gigabyte = 1.000.000.000 de bytes
equivale a uma hora de vídeo em baixa resolução;

1 Terabyte = 1.000.000.000.000 de bytes
385 terabytes guardam todo o catálogo da biblioteca do Congresso Americano – a maior do mundo;

1 Petabyte = 1.000.000.000.000.000 de bytes
1,5 petabyte armazena todas as musicas criadas pela humanidade;

1 Exabyte = 1.000.000.000.000.000.000 de bytes
3 exabytes é tudo o que a humanidade conseguia guardar em 1986 – hoje produzimos quase o dobro em dois dias;

1 Zettabyte = 1.000.000.000.000.000.000.000 de bytes ((( ESTAMOS AQUI )))
1,8 zettabyte armazena todos os dados acumulados pela civilização em um ano;

1 Yottabyte = 1.000.000.000.000.000.000.000.000 de bytes.
Yodabyte

.

velocidade

A velocidade neste caso está intimamente ligada a quão rápido criamos conteúdo… somemos a tudo o que foi dito acima, as transações de cartões de crédito são milhões e milhões de transações por dia.

A cada dia geramos incríveis:

>  2,5 hexabytes de informações são produzidos pela humanidade;

>  375 megabytes de dados são acumulados por família;

>  24 petabytes são processados pelo site do Google;

>  10 petabytes correspondem aos emails enviados;

>  43 petabytes de dados são trocados por smartphones e tablets conectados à internet;

A velocidade é um fator crítico e de alta  importancia para o Big Data porque em muitos casos a decisão, fundamentada em um imenso volume de dados, precisa ser tomada em tempo real.

Flops = unidade para calcular a velocidade de processamento de computadores: equivale à capacidade de realizar um calculo simples em um segundo;

Kiloflops = 1.000 flops
processamento de um super computador em 1951;

Megaflops = 1.000.000 de flops
velocidade alcançada por PCs, no início dos anos 90;

Gigaflops = 1.000.000.000 de flops
é nesta faixa que operam os PCs mais comuns;

Teraflops = 1.000.000.000.000 de flops
capacidade da próxima geração de videogames, PlayStation 4 e o Xbox 720 que serão lançados neste ano;

Petaflops = 1.000.000.000.000.000 de flops
apenas super computadores chegam a esse patamar: o mais poderoso deles, o americano Titan, roda a 27 petaflops;

Exaflops = 1.000.000.000.000.000.000 de flops
um super computador deve alcançar essa velocidade em 2020.

LogoGoogle_2015

Google é uma das pioneiras no levantamento de informações e de utilização de Ferramentas / algoritmos de Big Data. Em frações de segundos realiza pesquisas em 3 bilhões de computadores.

.

Variedade

Atualmente temos 3 tipos de dados ou variedade de dados

Dados Estruturados

Dados com comprimento e tipo pré-definidos agrupados em linhas e colunas. Ex: Números, strings, Banco de Dados

DadosEstruturados

Dados com formato bem definido.

 Estuturados

Dados Semiestruturados

Dados que não possuem um comprimento ou tipo definido, mas tem formato padronizado. Ex: Arquivos XML, JSON.

Dados Semi-Estruturados

Dados com formato bem definido.

Dados irregulares – dados com a estrutura embutida; A estrutura é heterogênea; Sua principal característica é a facilidade de compartilhamento de informações pela internet;

Semi

.

Dados Não Estruturados

Dados que não possuem uma estrutura ou formato padrão. Ex: Vídeos, imagens, redes sociais, texto, etc.

DadosNaoEstruturadoss

.

Dados sem estrutura pré-definida.

Email, Textos, Fotos, Vídeos, Imagens ;

.

Veracidade

Veracidade = Qualidade da Informação (QI)

A informação não vale nada se não for confiável, se não podemos confiar no dado que estamos analisando ele é lixo, apenas lixo eletrônico, então a verdadicidade (ok, eu inventei este termo) da informação faz toda a diferença, imagine tomar decisões estratégicas com base neste tipo de dado?

Veracidade

.

Valor

Valor = Uso + Qualidade + Resultado

Para provar que é possível extrair valor com Big Data, comece pequeno. Pode ser mais fácil começar com dados internos e estruturados, foco no retorno para o negócio, explore os seus dados com a maior frequência possível.

A Netflix utiliza algoritmos de Big Data para recomendar filmes aos clientes e crias seriados (House of Cards).  Por meio de análise de dados utilizando técnicas de Machine Learning e estatísticas, a Netflix identificou que Kevin Spacey tinha grande aceitação e que thrillers políticos tinham grande apelo com o seu público.

Isso sim é gerar valor, veja só!

Akshara Foundation

Akshara Foundation (ONG) ajuda crianças a terem melhor desempenho e experiência educacional na Índia. Na zonal rural, há poucas escolas, os pais não tem opção para matricular os filhos em boas escolas. Se a qualidade do ensino não melhorar, eles irão ter uma geração perdida. (conseguem traçar um paralelo com um pais da América Latina que tem o nome iniciando com a segunda letra do Alfabeto?)

Desde 2006, a ONG coletou dados sobre recursos, instalações e registros de 40.000 escolas no país com o objetivo de melhorar as habilidades em matemática e leitura dos alunos nas escolas rurais.

Por meio de análises estatísticas com o apoio da HP, utilizando tecnologias de Big Data, foi possível identificar um número ótimo entre quantidade de alunos por professor e de livros por aluno.

Também foi encontrado um achado inesperado. O engajamento era muito baixo em meninas com idade entre 11 e 14 anos. Uma análise posterior,mostrou que banheiros separados reduziam muito as desistências dessas meninas nas escolas.

Os voluntários da HP ganharam o prêmio 2014 Global Volunteer Challenge: Most Impactful Program.

Quem quiser mais informações vai o link: http://akshara.org.in/

Big Data = 3 V’s (Volume + Variedade + Velocidade) + 2 V’s (Veracidade + Valor)

5vs

Este post ainda está em produção!!
Volte depois para cenas dos próximos capitulos

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 – parte 1

Objetivo é apresentar conceitos fundamentais de aprendizado de máquina e as ferramentas de Python que facilitam aplicar esses conceitos em problemas de Big Data.

“Arthur Samuel (1959) definiu que: ”Aprendizado de Máquina: Campo de estudo que permite que computadores tenham a habilidade de aprender sem que sejam explicitamente programados”

O que podemos entender por Inteligência Artificial?

Sabe-se, de forma genérica, que um sistema inteligente é aquele que apresenta capacidade mental para:

#  raciocinar;
#  planejar;
#  resolver problemas;
#  abstrair ideias;
#  armazenar conhecimento;
#  comunicar-se através de uma linguagem;
#  aprender.

Mas o que é aprender?

Do ponto de vista das máquinas aprender através dos dados, afinal é o que temos.  Se colocarmos do ponto de vista humano, podemos dizer que aprendemos através das experiências.
Demonstramos comportamentos que podemos classificar como inteligente quando aprendemos através das experiências. Isso nos dá flexibilidade em nossas vidas.
Podemos nos adaptar a certas circunstâncias e aprender sobre essas
situações, não importando o quão velhos somos.

Dado um conjunto de objetos, colocar os objetos em grupos baseados na similaridade entre eles.

E quais são as partes importantes do aprendizado?

Lembrar e adaptar

#  Temos uma determina situação para resolver.

#  Tentamos lembrar (reconhecer) a última vez que estivemos nessa situação (já visualizei esses dados) e qual foi a ação realizada (já imprimir essa saída) que funcionou (estava certo) para resolver essa situação.

#  Se a ação realizada deu certo, tentamos realiza-la novamente.
#  Caso não tenha funcionado, tentamos algo diferente.

Generalizar

#  Reconhecer similaridades possibilita aplicar as mesmas ações para diferentes situações. Isso permite que o aprendizado seja útil, pois podemos utilizar nosso conhecimento em diferentes situações.

Existem outras partes, como raciocínio e  a dedução, porém estamos interessados nas partes fundamentais do aprendizado (aprender e adaptar) e como podemos criar modelos computacionais.

Aprendizado de Máquina (Machine Learning)

É fazer os computadores modificarem ou adaptarem suas ações para que essas ações sejam cada vez mais precisas. A precisão é medida pelo quão bem as ações escolhidas refletem as corretas.

Por exemplo, se você jogar um jogo contra o computador, você irá derrotá-lo todas as vezes no inicio, até que em algum momento ele começa a te vencer, até que você nunca mais consiga vencê-lo.

Nesse cenário, ou você está ficando ruim, ou o computador esta aprendendo a vencer. A ideia de fazer o computador aprender surgiu de diversas áreas, como
neurociência, biologia, estatística, matemática e física.

Mais qual é a relação entre IA, Data Science e Big Data?

Inteligência artificial (IA) – é a inteligência empregada pelas máquinas ou software para ajudar a tecnologia realizar decisões através de aprendizado próprio.

Data Science – Obter conhecimento dos dados e criar produtos para ajudar pessoas e empresas a tomarem melhores decisões.

Big Data – “If data had mass, the earth would be a black hole” – Stephen Marsland.
Fluxo simples de um projeto de Data Science

DinoMaquina1

#  Definir objetivos e métricas
#  Coletar e limpar os dados
#  Explorar e analisar
#  Definir algorítimo ou método
#  Construir modelo / Aplicar o método
#  Avaliar os resultados
#  Produto dos dados
#  Tomar decisões


Fluxo Aprendizado de Máquina

dinoMaquina2

“Tom Mitchell (1998) definiu que: “Um programa de computador “aprende” a partir de experiências E com respeito a alguma classe de tarefas T e com medida de desempenho P, se o desempenho de tarefas em T, medido por P, melhora com experiências E.”

Exemplo:

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 esteja analisando quais e-mails você marca ou não como SPAM, e baseado nisso, aprende como melhorar a filtragem de SPAM. Qual é a
tarefa T nesse cenário?

1. Classificar emails como spam e não spam
2. Analisar a classificação de emails como spam ou não spam
3. O número (ou fração) de emails corretamente classificados como spam/não spam.
4. Nenhuma das anteriores – Não é um problema de aprendizado de máquina.

O problema de aprendizado geralmente 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. São categorizados em:


Aprendizado Supervisionada
(Supervised Learning)

Um conjunto de treinamento de exemplos fornecidos e, baseado no conjunto de treinamento, o algoritmo irá generalizar para responder corretamente para todas as entradas possíveis. Exemplo: Reconhecimento de Caracteres.

Classificação

As amostras pertencem a duas ou mais classes e o objetivo é aprender através de dados já rotulados qual a classe de um dado novo não rotulado.  Para determinar se uma pessoa tem câncer benigno ou maligno, podemos utilizar:

#  Atributos: tamanho do tumor, formato do tumor, idade do paciente
#  Classe: tumor benigno ou tumor maligno

Outro exemplo é verificar se um texto publicado em uma rede social é inadequado ou não, os atributos tais como : quantidade de palavras encontradas no texto, quantidade
de palavras proibidas encontradas no texto, quantidade de texto já
criados pelo usuário, idade do usuário no sistema, …

#  Classe: texto adequado ou não
#  Classes: texto adequado, texto inadequado, texto com propaganda
(classificação com múltiplas classes)

Regressão

Se a saída esperada do algoritmo é uma ou mais variáveis contínuas, o problema é chamado de regressão. Um exemplo de regressão é prever o preço de um imóvel levando em consideração suas características (features) como o tamanho, número de
quartos, número de garagens, etc.

#  Atributos: tamanho, posição geográfica, número de quartos, garagem
#   Classe: preço


Conjuntos de Exemplos (Dataset)

dinoMaquina3
Conjuntos de Exemplos para Classificação

#  Dez exemplos (n=10)
#  Duas classes (k=2): Sim ou Não
#  Dois atributos (m=2)
>> Idade
>> Tipo do Veículo é categórico (E –Esporte, V – Van, C – Caminhão)
#  Rótulo da classe indica se a pessoa comprou o produto
#  Atributo dependente (classe) é categórico.

dinoMaquina5

Conjuntos de Exemplos para Regressão

#  Dez exemplos (n=10)
#  Duas classes (k=2): Sim ou Não
#  Dois atributos (m=2)
>> Idade
>> Tipo do Veículo é categórico (E –Esporte, V – Van, C – Caminhão)
#  Despesa indica quanto a pessoa gastou durante visita recente à concessionária.
#  Atributo dependente (classe) é numérico.

dinoMaquina6

Hierarquia de Aprendizado de Máquina

dinoMl1

dinoML2

Aprendizado Não Supervisionada (Unsupervised Learning)

Respostas corretas não são fornecidas, ao invés o algoritmo tenta identificar similaridades entre as entradas para que elas tenham algo em comum e assim serem categorizadas juntas.  Exemplo: Agrupamento de imagens semelhantes.

dinoMaquina7

#  Agrupar notícias semelhantes publicadas por várias fontes de informação.
#  Numa rede social, identificar subgrupo de pessoas
#  Identificar padrões de navegação em sites.
#  Dado conjuntos de itens adquiridos na mesma compra, identificar padrões de         compra.

dinoMaquina8


Conjuntos de Exemplos

#  Dez exemplos (n=10)
#  Três atributos (m=3)
>> Idade
>> Tipo de veículo (E – Esporte, V – Van, C – Caminhão)
>> Cor do veículo

Neste caso, não há associação explícita de algum atributo com uma determinada classe.

dinoMaquina9


Fluxo simples do modelo não supervisionado

dinoMaquina10

Termologia

#  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 usuram seus dados para encaixar em um modelo

BibliotecaPython scikit-learn  para aprendizado de máquina

scikit-learn-logo

#  Extensões da biblioteca SciPy (Scientific Python) são chamadas de scikits.
#  Scikit-learn fornece algoritmos de aprendizado de máquina supervisionado e não supervisionado
#  Construída sobre as bibliotecas SciPy e Numpy
#  Ótima documentação
#  OpenSource: BSD License

http://scikit-learn.org/

História do Scikit-learn

#  David Cournapeau inicio como um projeto do Google Summer of code em 2007.
#  Matthieu Brucher utilizou para sua tese de doutorado
#  Em 2010, INRIA patrocinou e publicou a primeira versão, assim como Google, Tinyclues, PSF (Python Software Foundation)