Cadastre-se Revistas DevMedia Cursos
 

Space de MARCELO BRITO
Busca Autor


Últimas 20 atualizações de MARCELO BRITO

Artigo - Extração de dados do Facebook com a suíte Pentaho

Introdução

Perguntava-me recentemente se haveria a possibilidade de efetuar busca de dados existentes no Facebook no intuito de efetuar análises de tendências variadas a partir das informações geradas. Surpreendentemente, descobri que o próprio Facebook oferece API (Application Programming Interface) para efetuar tal integração. Através desta API, é possível desenvolver softwares que interajam diretamente com a rede social. Para tanto, a extração de tais dados será efetuada através da suíte Pentaho.

Pentaho é uma plataforma Open Source para criação de soluções de Inteligência de Negócios (Business Intelligence-BI). Ela possui uma suíte completa de BI, apresentando grande flexibilidade e independência entre diversas plataformas além de alta confiabilidade e segurança. Este software tem por propósitos básicos os seguintes itens:

  • Geração de relatórios empresariais;
  • Processos de ETL (Extração, Transformação e Carga);
  • Análise de informações (OLAP);
  • Painéis (dashboards) para controle gerencial;
  • Mineração de dados (Data Mining);
  • Workflow;

Informações complementares e detalhadas sobre esta suíte podem ser encontradas nos seguintes endereços:

Nesse primeiro momento farei breve abordagem sobre o PDI(Pentaho Data Integration).

Você pode fazer o download da suíte completa no Sourceforge.org, ou baixar apenas a ferramenta Pentaho Data Integration, a qual nos interessa neste momento. O endereço para download é: http://sourceforge.net/projects/pentaho/files/.

É importante ressaltar que, feito o download, as ferramentas da suíte Pentaho não são instaláveis (via MSI, EXE, etc.), será necessário apenas extrair o arquivo compactado em um diretório qualquer e, seguidamente, executar o arquivo SPOON.BAT (para Windows).

Figura 1: Interface do Pentaho

Outras explicações sobre o PDI serão dadas mais adiante.

O Facebook Graph API 

Em síntese, a API gráfica do Facebook é um serviço do tipo RESTful que retorna arquivos do tipo JSON. O processo é feito através do envio de uma solicitação HTTP para iniciar conexão com o Facebook; isto permite executar métodos GET para retornar dados a serem analisados via linguagem de programação (Java, Python, PHP, etc.), ou sem programação, usando PDI.

Para a extração dos dados desejados, é necessário criar um aplicativo dentro do Facebook. Isto permite que obtenhamos um número ID e uma chave secreta para autorização da rede social.

Este artigo não se propõe a ensinar como criar aplicativos dentro do Facebook, contudo, segue um tutorial bastante compacto.

Criação de Aplicativos no Facebook

1 – A criação requer o uso de uma conta na rede social. No caso de você não possuir uma, será preciso criá-la.

2 – Considerando que você já possui conta na rede social, será necessário instalar o aplicativo Developer, visitando http://www.facebook.com/developers e selecionando as opções da solicitação para instalar a aplicação. Feito isto, surgirá tela requerendo autorização para acesso às informações básicas de seu perfil.

Registro para desenvolvedores

Figura 2: Registro para desenvolvedores

3 – Assim que a aplicação Developer tiver sido instalada e a autorização concedida, você poderá clicar no botão “Criar Novo Aplicativo” para criar sua aplicação.

Criar novo aplicativo

Figura 3: Criar novo aplicativo

Informações para criação do aplicativo

Figura 4: Informações para criação do aplicativo

Verificação de segurança

Figura 5: Verificação de segurança

É importante esclarecer nesse ponto que a API do Facebook exige, por questão de segurança, que seu aplicativo seja redirecionado para um servidor que utilize o protocolo HTTPS. Nas opções Canvas URL e Secure Canvas URL é necessário informar uma página HTTPS para que você possa utilizar os dados da rede social que necessitem de autorização de usuários. Observe na figura abaixo que o Facebook gerou um App ID e App Secret. Guarde esses números, utilizaremos ele no PDI.

Informações detalhadas do aplicativo

Figura 6: Informações detalhadas do aplicativo

OBS: Clique em Use Graph API Explorer, você será redirecionado para uma página contendo seu token. Guarde-o para que possamos utilizamos mais adiante no PDI.

Nota: Volto a dizer que a intenção não é explicar detalhadamente sobre a criação de um aplicativo dentro do Facebook. Existem diversos sites e vídeos no YouTube mostrando como fazer. Seja investigativo e estude a documentação sobre a API do Facebook através do endereço: https://developers.facebook.com/docs/

Após criação do aplicativo acesse-o através do navegador: https://apps.facebook.com/ nome_do

...
Exibição do post interrompida. Para ler conteúdo completo, clique aqui
21/08/2012 11:39:00





Artigo - Aspectos teóricos da mineração de dados e aplicação das regras de classificação para apoiar o comércio

Resumo

Entre várias questões estratégicas que giram em torno de uma organização, pode-se dizer que a capacidade de analisar e reagir rapidamente às mudanças impostas pelo mercado, esta diretamente relacionada à capacidade de digerir as informações e transformá-las em conhecimento.

A utilização da mineração de dados pode trazer diversos benefícios as empresas e organizações. Para isso, existem importantes técnicas que auxiliam nesse processo, dentre as quais se destacam as regras de Classificação e associação. Partindo dessa observação, definiu-se como objetivo geral, aplicar as técnicas de mineração de dados a um subconjunto de dados de uma empresa varejista.

1. Introdução

Com avanço na coleta e no armazenamento de dados, permitiu-se que organizações acumulassem em base de dados uma enorme quantidade de informações. Entretanto, a extração de conhecimento nesses dados, tem provado ser extremamente desafiador. Normalmente, técnicas tradicionais de análise de dados não podem ser usadas devido ao tamanho do conjunto de dados ser muito grande. Em outras situações a natureza não trivial dos dados significa que abordagens tradicionais não podem ser aplicadas.

Diversas organizações, por exemplo, a Wal-Mart, TAM linhas áreas, IBGE e a NASA, detém em seu departamento de tecnologia bases de dados de centenas de terabytes de informações. Sabendo-se que o armazenamento do maior volume possível de informações é benéfico para os seus processos, é aceitável deduzir que a dificuldade de interpretar e analisar esses dados são diretamente proporcionais à quantidade dos mesmos.

Diversas pesquisas têm sido direcionadas para o desenvolvimento de técnicas com objetivo de extrair informações a partir de um grande volume de dados e transformar estas informações em conhecimento útil. Esta área é conhecida na literatura como KDD (Fayyad et al., 1996b).

O processo de KDD surgiu no final da década de 80 com o objetivo principal de procurar conhecimento em bases de dados. Há várias definições do seu conceito, sendo a seguinte definição a mais utilizada:

“KDD é um processo, de várias etapas, não trivial, interativo e iterativo, para identificação de padrões compreensíveis, válidos, novos e potencialmente úteis a partir de grandes conjuntos de dados” (FAYYAD, 1996).

Este processo pode identificar padrões e descobrir informações relevantes que auxiliam o comerciante no processo de formação de preços, nas estratégias de marketing, no comportamento de clientes em relação às compras, entre outras coisas.

A fase de mineração de dados é onde realmente se extrai as informações através de algoritmos que executam uma determinada tarefa, consequentemente gerando um padrão entre itens em uma base de dados.

Este artigo está estruturado da seguinte forma: na seção 2 são apresentados os conceitos a cerca da descoberta de conhecimento (KDD), mineração de dados e a tarefa de Classificação. São apresentados na seção 3 os experimentos e resultados. Por fim não seção 4 apresentam-se as conclusões.

2. Descoberta de Conhecimento em Bases de Dados(KDD)

A mineração de dados não foi criada com objetivo de substituir as técnicas atuais de análise de dados. Ela utiliza como base para a maioria de seus trabalhos os experimentos da Estatística, Inteligência Artificial, Máquina de Estado e Banco de dados para construir seu modelo.

O desejo dos pesquisadores em mineração de dados de trazer tais técnicas existentes tem contribuído para amplitude do campo, assim como seu rápido crescimento.

O termo KDD surgiu no final da década de 80, com objetivo de procurar conhecimento em bases de dados. Muitas são as definições para este conceito, sendo a seguinte definição a mais utilizada:

“KDD é um processo, de várias etapas, não trivial, interativo e iterativo, para identificação de padrões compreensíveis, válidos, novos e potencialmente úteis a partir de grandes conjuntos de dados” (FAYYAD, 1996).

A expressão “não trivial”, demonstra a complexidade na execução e manutenção dos processos de KDD, o termo “interativo” indica a relevância de se ter um elemento controlando o processo, o termo “iterativo” sugere a possibilidade de repetições em qualquer uma das etapas do processo e finalmente o “conhecimento útil” que é aquele onde o objetivo foi alcançado, trazendo consigo benefícios as aplicações de KDD.

A extração de conhecimento em bases de dados é um processo dinâmico e evolutivo, que envolve relacionamento com outras áreas como estatística, inteligência artificial, maquina de estado e banco de dados. Os padrões extraídos devem ser úteis, gerando um conhecimento que poderá tirar alguma vantagem, seja cientifica ou comercial.

De acordo com FAYYAD et al. (1996), o processo de KDD é constituído de diversas fases, explicadas na figura 1, e tem início na análise do domínio da aplicação e dos objetivos a serem realizados, sendo este processo dividido em 5 fases:

  1. Seleção de dados;
  2. Pré-processamento;
  3. Transformação;
  4. Mineração;
  5. Análise e assimilação de resultados

2.1 FASES DO KDD

A primeira etapa do processo consiste na escolha da base a ser minerada, podendo ser amostras de dados, subconjuntos de variáveis até grandes massa de dados. A fase de pré-processamento tem como objetivo eliminar ruídos, tuplas vazias, valores ilegítimos. A etapa de transformação dos dados depende do objetivo da busca e do algoritmo a ser aplicado, pois é ele que possui as limitações a serem impostas a base de dados. A melhoria na qualidade dos dados é importante para que haja um melhor resultado, garantindo assim uma melhor qualidade nos padrões descobertos.

Após a realização fases anteriores, a mineração de dados (Data Mining) é aplicada. Essa fase é a mais importante do processo de KDD, sendo nela utilizado algum algoritmo que utiliza uma determinada técnica, e que tem como objetivo elaborar um modelo para representar um conjunto de dados.

A Interpretação ou Pós-Processamento é a fase que identifica, entre os padrões extraídos na etapa de Data Mining. Esta fase envolve todos os participantes que avaliam de forma criteriosa os resultados. É importante interpretar os padrões minerados, possivelmente retornando a qualquer fase anterior para novas iterações, caso seja necessário, a fim de apresentar o conhecimento descoberto ao usuário. A Figura 1 apresenta as atividades que compõem o processo de KDD.

2.2 MINERAÇÃO DE DADOS

Mineração de Dados ou Data Mining é o principal processo da fase de descoberta de conhecimento em bases de dados para extração de conhecimento, baseando-se em técnicas da estatística, inteligência artificial, computação paralela, máquina de estado, ela constrói um longo histórico de pesquisas relacionadas a estas áreas. Procurando por padrões, relacionamentos entre dados, anomalias e regras, com objetivo de encontrar informações ocultas, que possam ser relevantes a tomada de decisão e/ou avaliação de resultados.

Uma das motivações para a utilização da mineração de dados no comércio é a grande quantidade de dados armazenados eletronicamente, os varejistas podem juntar os dados do ponto de venda (leitores de código de barras) com informações de registros web, registros de atendimentos entre outros para lhes auxiliar a compreender melhor as necessidades de seus clientes e a tomar decisões de negócio com mais informações precisas. Em outras palavras, descobrir informações sem uma prévia formulação de hipóteses e buscar por algo não intuitivo, é na verdade tornar dados sem obviedade em valiosas informações estratégicas.

 Etapas do KDD (Fonte: Fayyad et al., 1996)

Figura 1: Etapas do KDD (Fonte: Fayyad et al., 1996)

2.3 TAREFAS DE MINERAÇÃO DE DADOS

As tarefas da mineração de dados são os tipos de descoberta que se pretende realizar em uma base de dados, isto é, são as informações que se deseja extrair. Para determinar qual tarefa a ser resolvida, deve-se ter um bom conhecimento do domínio da aplicação e saber o tipo de informação que se quer obter (FAYYAD, 1996; JOHN, 1997):

A definição da técnica de mineração a ser aplicada está intimamente relacionada com a tarefa de mineração que se deseja executar, já que essa tarefa define o relacionamento entre os dados, ou seja, o modelo. Existem diversas tarefas da mineração de dados entre elas: classificação, clusterização, regressão e associação.

Um breve resumo das tarefas mais importantes são descritos a seguir.

A tarefa de associação foi desenvolvida inicialmente por Agrawal et al. (1993). E tem como objetivo principal encontrar padrões do tipo X→Y, ou seja, o quanto X implica em Y onde X e Y são conjuntos distintos. Por exemplo, um cliente que compra o item A freqüentemente compra também o item B. Através dessa tarefa pode-se estimar que um conjunto de item “X” possui uma tendência a se repetir freqüentemente em conjunto com um valor “Y”. Esta implicação é avaliada através de dois fatores: suporte e confiança. (Agrawal e Srikant, 1994).

A tarefa de Agrupamento, também denominada de clusterização ou segmentação, é utilizada para dividir os dados em grupos (clusters). O objetivo é que os objetos dentro de um grupo sejam semelhantes e diferentes de outros objetos de outros grupos. Quanto maior a semelhança dentro de um grupo e maior a diferença entre grupos, melhor ou mais distinto será o agrupamento (TAN, STEINBACH, KUMAR, 2006).

Pode-se, por exemplo, utilizar essa tarefa para analisar dados de tratamentos de uma doença, dividindo-se em grupos baseados na semelhança dos efeitos colaterais produzidos.

2.4 CLASSIFICAÇÃO

A tarefa de Classificação é uma tarefa da mineração de dados que associa ou classifica objetos a determinadas classes, ela busca prever uma classe de um novo dado automaticamente. Por exemplo, uma base de dados que armazena características de clientes, baseando em históricos de transações anteriores, podem-se classificar estes clientes em categorias para liberação de crédito. Um novo cliente poderá ser classificado em uma das categorias definidas, de acordo com suas características.

Na próxima Seção será demonstrado detalhadamente todo o processo de KDD, focando na fase de Data Mining e utilizando-se o algoritmo de classificação.

3 EXPERIMENTOS E RESULTADOS

Todo o processo de extração de conhecimento em bases de dados é evidenciado de fato, com os experimentos utilizando uma base de dados proveniente de uma empresa atuante na área do comércio varejista, optante por um acordo NDA(Non-Disclosure Agreement). O software de mineração de dados utilizado para realizar a geração de padrões úteis foi o Núcleo DM. Desenvolvido em Delphi, este software trabalha com o algoritmo de Classificação C4.5.

De acordo com o conhecimento adquirido na Seção 2.1, o início do processo de KDD encontra-se na escolha da massa de dados de acordo com os objetivos a serem alcançados, que neste caso, seria a descoberta de perfis dos clientes, buscar padrões que gerem regras do tipo: Cliente que compra produdo X, provavelmente levará o produto Y ex: “Se Produto1 = refrigerante então Produto2 = suco de laranja”.

Após análise do banco de dados, foi selecionado uma amostra de 268.788 registros identificando o faturamento das vendas realizadas no período de 04 de Fevereiro de 2011 a 11 de Abril 2011. Os atributos necessários ao processo de mineração de dados estão destacados na Tabela 1.

ATRIBUTODESCRIÇÃOVALORES DISTINTOS
...
Exibição do post interrompida. Para ler conteúdo completo, clique aqui
10/08/2012 11:08:00





 

Marcelo Brito é Bacharel em Sistemas de Informação, Pós Graduando em Gestão Estratégica da Tecnologia de Informação. Atualmente trabalha com desenvolvimento de processos de BPM e aplicações de Business Intelligence para negócios.
Arquivo de atualizações
 2012

Estatísticas do Autor:
Número de posts: 2
Características dos posts deste autor:
Conteúdo:
Utilidade:
7 0
 
DevMedia Group - Tel: (21) 3382-5038 - www.devmedia.com.br
Todos os Direitos Reservados a DevMedia Group