SlideShare uma empresa Scribd logo
Web Data Mining com R
Fabr´ıcio J. Barth
fabricio.barth@gmail.com
VAGAS Tecnologia e Faculdade BandTec
Maio de 2014
Objetivo
O objetivo desta palestra ´e apresentar conceitos sobre Web
Data Mining, fluxo de trabalho e exemplos de tarefas de
Web Data Mining utilizando o R.
Web Data Mining com R — Objetivo 2
Sum´ario
• Conceitos: web data mining, aprendizagem de
m´aquina e a linguagem de programa¸c˜ao R.
• An´alise de mensagens do twitter usando algoritmos de
agrupamento.
• Desenvolvimento de algoritmos anti-spam.
• Considera¸c˜oes finais.
• Referˆencias.
Web Data Mining com R — Sum´ario 3
Conceitos
4
Web Data Mining
A ´area de Web Data Mining tem como objetivo descobrir
conhecimento ´util a partir da estrutura dos hyperlinks da
Web, conte´udo das p´aginas e log de utiliza¸c˜ao dos sites.
Conceitos — Web Data Mining 5
Descobrir conhecimento ´util:
• Sintetizar informa¸c˜ao:
a partir de logs de servidores web, identificar qual ´e o
caminho mais frequente de navega¸c˜ao dos usu´arios no
site.
a partir de not´ıcias publicadas em ve´ıculos web,
sumarizar os principais eventos do dia.
• Prescrever a¸c˜oes:
a partir do hist´orico de candidaturas em vagas de um
candidato, recomendar novas vagas para o mesmo.
a partir de conte´udo previamente moderado, construir
uma aplica¸c˜ao capaz de moderar conte´udo
automaticamente.
Conceitos — Web Data Mining 6
Aprendizagem de m´aquina
Classificação Regressão
Supervisionada
Modelos preditivos
AssociaçãoSumarização Agrupamento
Não supervisionada
Modelos descritivos
Aprendizagem
Conceitos — Aprendizagem de m´aquina 7
Exemplo de dataset com classe
Idade Miopia Astigmat. Lacrimej. Lentes
jovem m´ıope n˜ao reduzido nenhuma
jovem m´ıope n˜ao normal fraca
jovem m´ıope sim reduzido nenhuma
jovem m´ıope sim normal forte
· · · · · · · · · · · · · · ·
adulto m´ıope n˜ao reduzido nenhuma
Conceitos — Exemplo de dataset com classe 8
Exemplo de modelo preditivo
Conceitos — Exemplo de modelo preditivo 9
Exemplos de aprendizagem n˜ao
supervisionada
Table 1: Exemplo de tabela com as transa¸c˜oes dos usu´arios
usu´ario categoria1 categoria2 categoria3 · · · categoriam
user1 0 2 0 · · · 1
user2 1 1 0 · · · 0
user3 2 0 1 · · · 0
user4 0 1 0 · · · 0
· · · · · · · · · · · · · · · · · ·
usern 1 1 0 · · · 1
Conceitos — Exemplos de aprendizagem n˜ao supervisionada 10
Exemplo de identifica¸c˜ao de grupos em
redes sociais
Conceitos — Exemplo de identifica¸c˜ao de grupos em redes sociais 11
Projeto R
• http://www.r-project.org/
• R Studio - http://www.rstudio.com/
• ´E free
• ´E a linguagem de programa¸c˜ao mais popular para
an´alise de dados
• Script ´e melhor que clicar e arastar:
´E mais f´acil de comunicar.
Reproduz´ıvel.
´E necess´ario pensar mais sobre o problema.
• Existe uma quantia grande de pacotes dispon´ıveis
Conceitos — Projeto R 12
Web Data Mining e dados n˜ao
estruturados
A ´area de Web Data Mining tem como objetivo descobrir
conhecimento ´util a partir da estrutura dos hyperlinks da
Web, conte´udo das p´aginas e log de utiliza¸c˜ao dos
sites.
• S˜ao todos dados n˜ao estruturados.
• Estes dados precisam ser pr´e-processados e
convertidos em dados estruturados.
Conceitos — Web Data Mining e dados n˜ao estruturados 13
An´alise de mensagens do
twitter usando
algoritmos de
agrupamento
14
Componentes para uma solu¸c˜ao...
Coletor
Fonte
Pré-processamento
dos documentos
Agrupa
documentos
Agrupamentos de
documentos
An´alise de mensagens do twitter usando algoritmos de agrupamento — Componentes para uma solu¸c˜ao... 15
Coletando dados do twitter com o R
§ ¤
l i b r a r y ( twitteR )
cred <− OAuthFactory$new(
consumerKey=”XXXX” ,
consumerSecret=”XXXX” ,
requestURL=” h t t p s : // a pi . t w i t t e r . com/ oauth / r e q u e s t token ” ,
accessURL=” h t t p s : // a pi . t w i t t e r . com/ oauth / a c c e s s token ” ,
authURL=” http : // api . t w i t t e r . com/ oauth / a u t h o r i z e ” )
cred $ handshake ()
r e g i s t e r T w i t t e r O A u t h ( cred )
dados <− s e a r c h T w i t t e r ( ’ economist b r a s i l ’ , n=250)
df <− twListToDF ( dados )
save ( df , f i l e=” . . / data /20140424 economist b r a s i l . rda ” )
¦ ¥
An´alise de mensagens do twitter usando algoritmos de agrupamento — Coletando dados do twitter com o R 16
Formato de um documento
... Esta disciplina tem como objetivo apresentar os principais
conceitos da ´area de Inteligˆencia Artificial, caracterizar as
principais t´ecnicas e m´etodos, e implementar alguns problemas
cl´assicos desta ´area sob um ponto de vista introdut´orio.
A estrat´egia de trabalho, o conte´udo ministrado e a forma
depender˜ao dos projetos selecionados pelos alunos.
Inicialmente, os alunos dever˜ao trazer os seus Projetos de
Conclus˜ao de Curso, identificar intersec¸c˜oes entre o projeto e a
disciplina, e propor atividades para a disciplina. ...
An´alise de mensagens do twitter usando algoritmos de agrupamento — Formato de um documento 17
Conjunto de Exemplos - Atributo/Valor
Doc. apresent form tecnic caracteriz · · ·
d1 0.33 0.33 0.33 0.33 · · ·
d2 0 0.5 0.2 0.33 · · ·
d3 1 0.6 0 0 · · ·
d4 0.4 0.3 0.33 0.4 · · ·
d5 1 0.4 0.1 0.1 · · ·
dn · · · · · · · · · · · · · · ·
An´alise de mensagens do twitter usando algoritmos de agrupamento — Conjunto de Exemplos - Atributo/Valor 18
Atributo/Valor usando vetores
Como representar os documentos?
−→
di = (pi1, pi2, · · · , pin) (1)
• Os atributos s˜ao as palavras que aparecem nos
documentos.
• As palavras do texto precisam ser normalizadas: caixa
baixa, remover acentua¸c˜ao, remover stop-words,
aplicar algoritmos de steamming.
An´alise de mensagens do twitter usando algoritmos de agrupamento — Atributo/Valor usando vetores 19
Remover stop-words
• Em todos os idiomas existem ´atomos (palavras) que
n˜ao significam muito. Stop-words
Esta disciplina tem como objetivo apresentar os principais
conceitos da ´area de Inteligˆencia Artificial, caracterizar as
principais t´ecnicas e m´etodos, e implementar alguns problemas
cl´assicos desta ´area sob um ponto de vista introdut´orio.
· · ·
An´alise de mensagens do twitter usando algoritmos de agrupamento — Remover stop-words 20
Algoritmos de steamming
• Algumas palavras podem aparecer no texto de diversas
maneiras: t´ecnica, t´ecnicas, implementar,
implementa¸c˜ao...
• Stemming - encontrar o radical da palavra e usar
apenas o radical.
An´alise de mensagens do twitter usando algoritmos de agrupamento — Algoritmos de steamming 21
Atributo/Valor usando vetores
• J´a conhecemos os atributos.
• E os valores?
Booleana - se a palavra aparece ou n˜ao no
documento (1 ou 0)
Por freq¨uˆencia do termo - a freq¨uˆencia com que
a palavra aparece no documento (normalizada ou
n˜ao)
Pondera¸c˜ao tf-idf - o peso ´e proporcional ao
n´umero de ocorrˆencias do termo no documento e
inversamente proporcional ao n´umero de
documentos onde o termo aparece.
An´alise de mensagens do twitter usando algoritmos de agrupamento — Atributo/Valor usando vetores 22
Por freq¨uˆencia do termo
(apresent,0.33) (form,0.33) (tecnic,0.33) (caracteriz,0.33)
(projet,1.0) (introdutori,0.33) (objet,0.33) (inteligente,0.33)
(conclusa,0.33) (selecion,0.33) (intersecco,0.33) (classic,0.33)
(identific,0.33) (conceit,0.33) (trabalh,0.33) (disciplin,1.0)
(traz,0.33)
An´alise de mensagens do twitter usando algoritmos de agrupamento — Por freq¨uˆencia do termo 23
Executando esta etapa no R
http://rpubs.com/fbarth/agrupamentoTwitterConalytics
An´alise de mensagens do twitter usando algoritmos de agrupamento — Executando esta etapa no R 24
Componentes para uma solu¸c˜ao...
Coletor
Fonte
Pré-processamento
dos documentos
Agrupa
documentos
Agrupamentos de
documentos
An´alise de mensagens do twitter usando algoritmos de agrupamento — Componentes para uma solu¸c˜ao... 25
Algoritmos para
Agrupamento
26
Defini¸c˜oes de Algoritmos de Agrupamento
• O objetivo dos algoritmos de agrupamento ´e colocar
os objetos similares em um mesmo grupo e objetos
n˜ao similares em grupos diferentes.
• Normalmente, objetos s˜ao descritos e agrupados
usando um conjunto de atributos e valores.
• N˜ao existe nenhuma informa¸c˜ao sobre a classe ou
categoria dos objetos.
Algoritmos para Agrupamento — Defini¸c˜oes de Algoritmos de Agrupamento 27
Algoritmos para Agrupamento - K-means
• K significa o n´umero de agrupamentos (que deve ser
informado `a priori).
• Sequˆencia de a¸c˜oes iterativas.
• A parada ´e baseada em algum crit´erio de qualidade
dos agrupamentos (por exemplo, similaridade m´edia).
Algoritmos para Agrupamento — Algoritmos para Agrupamento - K-means 28
Algoritmo para Agrupamento - K-means
1
2
3
4
5
0
1 2 3 4 5 6 7 8
1
2
3
4
5
0
1 2 3 4 5 6 7 8
1
2
3
4
5
0
1 2 3 4 5 6 7 8
(1) Objetos que devem ser agrupados
1
2
3
4
5
0
1 2 3 4 5 6 7 8
(2) Sorteio dos pontos centrais dos agrupamentos
(3) Atribuição dos objetos aos agrupamentos (4) Definição do centro do agrupamento
Algoritmos para Agrupamento — Algoritmo para Agrupamento - K-means 29
Algoritmo K-means
• A medida de distˆancia pode ser a distˆancia Euclidiana:
| −→x − −→y |=
n
i=1
(xi − yi)2 (2)
• a fun¸c˜ao para computar o ponto central pode ser:
−→µ =
1
M −→x ∈C
−→x (3)
onde M ´e igual ao n´umero de pontos no agrupamento
C.
Algoritmos para Agrupamento — Algoritmo K-means 30
Algoritmos para Agrupamento — 31
Como determinar o melhor k?
A medida de distribui¸c˜ao dos pontos normalmente empregada ´e sum of squared errors.
Algoritmos para Agrupamento — Como determinar o melhor k? 32
Agrupamento de mensagens do twitter
com o R
http://rpubs.com/fbarth/agrupamentoTwitterConalytics
Algoritmos para Agrupamento — Agrupamento de mensagens do twitter com o R 33
Desenvolvimento de algoritmos anti-spam
Algoritmos para Agrupamento — Desenvolvimento de algoritmos anti-spam 34
Algoritmos para Agrupamento — 35
Modelos preditivos para classifica¸c˜ao
Algoritmos para Agrupamento — Modelos preditivos para classifica¸c˜ao 36
Desenvolvimento de modelos preditivos
para classifica¸c˜ao
Algoritmos para Agrupamento — Desenvolvimento de modelos preditivos para classifica¸c˜ao 37
Aprendizado de ´arvores de decis˜ao
Algoritmos para Agrupamento — Aprendizado de ´arvores de decis˜ao 38
Florestas de ´arvores de decis˜ao
Algoritmos para Agrupamento — Florestas de ´arvores de decis˜ao 39
Exemplo de classifica¸c˜ao de Spam usando
RandomForest
http://rpubs.com/fbarth/classificacaoSpamRandomForest
Algoritmos para Agrupamento — Exemplo de classifica¸c˜ao de Spam usando RandomForest 40
Considera¸c˜oes finais
• An´alise de mensagens do twitter
Transforma¸c˜ao de informa¸c˜ao n˜ao-estruturada em
estruturada.
Uso do algoritmo k-means
Este mesmo processo pode ser aplicado para outros
problemas similares: an´alise de not´ıcias, an´alise de
patentes e artigos cient´ıficos.
Algoritmos para Agrupamento — Considera¸c˜oes finais 41
• Desenvolvimento de algoritmos anti-spam
Uso do algoritmo random forest.
Como desenvolver e avaliar um modelo preditivo.
Este mesmo processo pode ser aplicado para outros
problemas similares, inclusive problemas de
recomenda¸c˜ao de itens.
Algoritmos para Agrupamento — Considera¸c˜oes finais 42
Material de consulta
• fbarth.net.br/materiais/docs/webMiningRconalytics.pdf:
link para os slides.
• http://fbarth.net.br/materiais/webMiningR.html: tutorial
apresentado no Mozilla Tech Day 2013.
• http://rpubs.com/fbarth/: scripts em R para problemas de
Aprendizagem de M´aquina.
• fabricio.barth@gmail.com
Algoritmos para Agrupamento — Material de consulta 43
Referˆencias
• Bing Liu. Web Data Mining: exploring hyperlinks,
contents, and usage data, 2008.
• Tom Mitchell. Machine Learning, 1997.
• Iah H. Witteh and Eibe Frank. Data Mining: Practical
Machine Learning Tools and Techniques (Third
Edition), 2011.
• Pang-Ning Tan, Michael Steinbach and Vipin Kumar.
Introduction to Data Mining, 2006.
• Andrew Ng. http://www.ml-class.org
Algoritmos para Agrupamento — Referˆencias 44
• Andy and Matthew. Classification and regression by
randomForest. R News, vol. 3, number 3, pages 18-22,
2002.
• Costa, H.; Merschmann, L. H. C.; Barth, F.; Benevenuto,
F. Pollution, Bad-mouthing, and Local Marketing: The
Underground of Location-based Social Networks.
Information Sciences, 2014.
• RDataMining.com: Text Mining.
http://www.rdatamining.com/examples/text-mining.
Acessado em 14 de junho de 2013.
• Ingo Feinerer. Introduction to the tm Package: Text
Mining in R. http://cran.r-
project.org/web/packages/tm/vignettes/tm.pdf. Acessado
em 14 de junho de 2013.
Algoritmos para Agrupamento — Referˆencias 45
• Barth, F. J. Ferramentas para a detec¸c˜ao de grupos em
Wikis. In: VII Simp´osio Brasileiro de Sistemas
Colaborativos, 2010, Belo Horizonte. Anais do VII
Simp´osio Brasileiro de Sistemas Colaborativos. IEEE
Computer Society, 2010. v.II. p.8 - 11.
• Barth, F. J. ; Belderrain, M. C. R. ; Quadros, N. L. P. ;
Ferreira, L. L. ; Timoszczuk, A. P. . Recupera¸c˜ao e
minera¸c˜ao de informa¸c˜oes para a ´area criminal. In: VI
Encontro Nacional de Inteligˆencia Artificial, 2007, Rio de
Janeiro. Anais do XXVII Congresso da SBC, 2007.
Algoritmos para Agrupamento — Referˆencias 46

Mais conteúdo relacionado

PDF
Web Data Mining em R: agrupamento de mensagens do twitter
PDF
Oficina: construção de modelos descritivos e preditivos utilizando R
PPT
Demo Simplificada Data Mining
PDF
eBook Web Analytics Brasil - Uma visão brasileira.
PDF
Uma Experiência de Solução de Business Intelligence com Software Livre na UFB...
PPT
Big data Instituto Big Data Brasil Crie
PDF
Mineração de padrões frequentes - Pós Graduação em Big Data
PPTX
BIG data
Web Data Mining em R: agrupamento de mensagens do twitter
Oficina: construção de modelos descritivos e preditivos utilizando R
Demo Simplificada Data Mining
eBook Web Analytics Brasil - Uma visão brasileira.
Uma Experiência de Solução de Business Intelligence com Software Livre na UFB...
Big data Instituto Big Data Brasil Crie
Mineração de padrões frequentes - Pós Graduação em Big Data
BIG data

Destaque (20)

PDF
Web Data Mining com R: design de projetos para criação de modelos preditivos
PPT
Minicurso Prática de Revisão Bibliográfica - Encontro de Saberes/UFOP - Esse...
PDF
Workshop Prático | Location Intelligence
PPTX
Big Data
PPTX
Big Data for Healthcare - INTELIGÊNCIA EM SAÚDE ORIZON
PDF
Big Data, o que é isso?
PDF
Palestra garimpando com pentaho data mining latinoware
PPS
Redes de coautoria em ciência da informação
ODP
Introdução ao Big Data para Desenvolvedores Python
PPTX
Slide cebrap
PDF
Cidades Inteligentes: a exploração do digital
PPT
Treinamento Portal NCBI
PPTX
Big data apresentacao
PDF
Data mining: Auxiliando as empresas na tomada de decisão
PDF
ODI Tutorial - Desenvolvendo Procedures
PPTX
Aula Magna Sobre BI & BigData na UNIA, Luanda - Angola
PDF
TDC2016SP - Desenvolva e Execute Aplicações Feitas para a Nuvem numa Arquitet...
PDF
Curso de Análise de Informações p/ Concurso TCU
PDF
Smart Cities e Big Data
Web Data Mining com R: design de projetos para criação de modelos preditivos
Minicurso Prática de Revisão Bibliográfica - Encontro de Saberes/UFOP - Esse...
Workshop Prático | Location Intelligence
Big Data
Big Data for Healthcare - INTELIGÊNCIA EM SAÚDE ORIZON
Big Data, o que é isso?
Palestra garimpando com pentaho data mining latinoware
Redes de coautoria em ciência da informação
Introdução ao Big Data para Desenvolvedores Python
Slide cebrap
Cidades Inteligentes: a exploração do digital
Treinamento Portal NCBI
Big data apresentacao
Data mining: Auxiliando as empresas na tomada de decisão
ODI Tutorial - Desenvolvendo Procedures
Aula Magna Sobre BI & BigData na UNIA, Luanda - Angola
TDC2016SP - Desenvolva e Execute Aplicações Feitas para a Nuvem numa Arquitet...
Curso de Análise de Informações p/ Concurso TCU
Smart Cities e Big Data
Anúncio

Semelhante a Web Data Mining com R (20)

PDF
Introducao ao python - Luciana Mota
PDF
Uma introdução à mineração de informações
PDF
Modelagem de Sistemas de Informação
PDF
Machine learning java ce conference 2012 - fortaleza ce
PDF
Modelagem Dados - Introdução à Conceitos
PPTX
Introdução à Engenharia de Software e UML
PDF
[TDC2016] Apache SparkMLlib: Machine Learning na Prática
ODP
Construção de Classificadores utilizando Pentaho Data Mining (WEKA) - FTSL 2014
PDF
Programação Web com PHP 7.x
PDF
Aula 01 - O Aprendizado de Máquina IA.pdf
PDF
Análise de Redes Sociais - Agroplus
PDF
TDC2016SP - SparkMLlib Machine Learning na Prática
PPTX
Aula 4 - Engenharia de Software - Slide.
PPT
Experimentation of the Model Driven RichUbi Process in the Adaptive Rich Inte...
PPT
Gestão de Projectos de SW OO Métricas Estimações e Planificações
PDF
SQLAlchemy - Desenvolvendo uma aplicação com Python
PDF
Case Recommender: Fazendo recomendação em Python
PDF
Portifoliogrupo 130109082241-phpapp02
PDF
Aplicações não convencionais de grafos
PDF
Sobre o workshop "Raspagem de dados para mulheres"
Introducao ao python - Luciana Mota
Uma introdução à mineração de informações
Modelagem de Sistemas de Informação
Machine learning java ce conference 2012 - fortaleza ce
Modelagem Dados - Introdução à Conceitos
Introdução à Engenharia de Software e UML
[TDC2016] Apache SparkMLlib: Machine Learning na Prática
Construção de Classificadores utilizando Pentaho Data Mining (WEKA) - FTSL 2014
Programação Web com PHP 7.x
Aula 01 - O Aprendizado de Máquina IA.pdf
Análise de Redes Sociais - Agroplus
TDC2016SP - SparkMLlib Machine Learning na Prática
Aula 4 - Engenharia de Software - Slide.
Experimentation of the Model Driven RichUbi Process in the Adaptive Rich Inte...
Gestão de Projectos de SW OO Métricas Estimações e Planificações
SQLAlchemy - Desenvolvendo uma aplicação com Python
Case Recommender: Fazendo recomendação em Python
Portifoliogrupo 130109082241-phpapp02
Aplicações não convencionais de grafos
Sobre o workshop "Raspagem de dados para mulheres"
Anúncio

Mais de Fabrício Barth (17)

PDF
Redução de dimensionalidade - Pós Graduação em Big Data
PDF
Hierarquia de modelos e Aprendizagem de Máquina - Pós Graduação em Big Data
PDF
Contexto de Big Data, Ciência de Dados e KDD - Pós Graduação em Big Data
PDF
Pré-processamento [no R] e Análise Exploratória - Curso de Big Data
PDF
Algoritmos de Agrupamento - Aprendizado não supervisionado
PDF
Human Activity Recognition
PPT
Iniciativas em Big Data no VAGAS.com
PDF
Web Data Mining com R: identificação de spam utilizando Random Forest
PDF
Web Data Mining com R: criação de regras de associação a partir da navegação ...
PDF
Web Data Mining com r: aprendizagem de máquina
PDF
Web Data Mining com R: pré-processamento de dados [no R]
PDF
Data Science, Machine Learning and Big Data
PDF
Uma introdução à mineração de informações na era do Big Data
PDF
Projeto Simple Maps
PDF
Data, Text and Web Mining
PDF
Ferramentas Java para Recuperação e Mineração de Informações
PPT
Atena: um sistema para suporte ao planejamento na área de Gestão de Projeto
Redução de dimensionalidade - Pós Graduação em Big Data
Hierarquia de modelos e Aprendizagem de Máquina - Pós Graduação em Big Data
Contexto de Big Data, Ciência de Dados e KDD - Pós Graduação em Big Data
Pré-processamento [no R] e Análise Exploratória - Curso de Big Data
Algoritmos de Agrupamento - Aprendizado não supervisionado
Human Activity Recognition
Iniciativas em Big Data no VAGAS.com
Web Data Mining com R: identificação de spam utilizando Random Forest
Web Data Mining com R: criação de regras de associação a partir da navegação ...
Web Data Mining com r: aprendizagem de máquina
Web Data Mining com R: pré-processamento de dados [no R]
Data Science, Machine Learning and Big Data
Uma introdução à mineração de informações na era do Big Data
Projeto Simple Maps
Data, Text and Web Mining
Ferramentas Java para Recuperação e Mineração de Informações
Atena: um sistema para suporte ao planejamento na área de Gestão de Projeto

Último (16)

PDF
Termos utilizados na designação de relação entre pessoa e uma obra.pdf
PPTX
Gestao-de-Bugs-em-Software-Introducao.pptxxxxxxxx
PDF
Mergulho profundo técnico para gestão de transportes no SAP S/4HANA, S4TM6 Col14
PDF
COBITxITIL-Entenda as diferença em uso governança TI
PPTX
Informática Aplicada Informática Aplicada Plano de Ensino - estudo de caso NR...
PDF
Custos e faturamento no SAP S/4HANA Transportation Management, S4TM3 Col26
PDF
Fundamentos de gerenciamento de ordens e planejamento no SAP TransportationMa...
PDF
Fullfilment AI - Forum ecommerce 2025 // Distrito e Total Express
PDF
Otimizador de planejamento e execução no SAP Transportation Management, TM120...
PDF
Gestão de transportes básica no SAP S/4HANA, S4611 Col20
PPTX
Arquitetura de computadores - Memórias Secundárias
PPTX
Programação - Linguagem C - Variáveis, Palavras Reservadas, tipos de dados, c...
PPTX
Como-se-implementa-um-softwareeeeeeeeeeeeeeeeeeeeeeeee.pptx
PDF
Custos e liquidação no SAP Transportation Management, TM130 Col18
PDF
Processos na gestão de transportes, TM100 Col18
PDF
20250805_ServiceNow e a Arquitetura Orientada a Serviços (SOA) A Base para Ap...
Termos utilizados na designação de relação entre pessoa e uma obra.pdf
Gestao-de-Bugs-em-Software-Introducao.pptxxxxxxxx
Mergulho profundo técnico para gestão de transportes no SAP S/4HANA, S4TM6 Col14
COBITxITIL-Entenda as diferença em uso governança TI
Informática Aplicada Informática Aplicada Plano de Ensino - estudo de caso NR...
Custos e faturamento no SAP S/4HANA Transportation Management, S4TM3 Col26
Fundamentos de gerenciamento de ordens e planejamento no SAP TransportationMa...
Fullfilment AI - Forum ecommerce 2025 // Distrito e Total Express
Otimizador de planejamento e execução no SAP Transportation Management, TM120...
Gestão de transportes básica no SAP S/4HANA, S4611 Col20
Arquitetura de computadores - Memórias Secundárias
Programação - Linguagem C - Variáveis, Palavras Reservadas, tipos de dados, c...
Como-se-implementa-um-softwareeeeeeeeeeeeeeeeeeeeeeeee.pptx
Custos e liquidação no SAP Transportation Management, TM130 Col18
Processos na gestão de transportes, TM100 Col18
20250805_ServiceNow e a Arquitetura Orientada a Serviços (SOA) A Base para Ap...

Web Data Mining com R

  • 1. Web Data Mining com R Fabr´ıcio J. Barth fabricio.barth@gmail.com VAGAS Tecnologia e Faculdade BandTec Maio de 2014
  • 2. Objetivo O objetivo desta palestra ´e apresentar conceitos sobre Web Data Mining, fluxo de trabalho e exemplos de tarefas de Web Data Mining utilizando o R. Web Data Mining com R — Objetivo 2
  • 3. Sum´ario • Conceitos: web data mining, aprendizagem de m´aquina e a linguagem de programa¸c˜ao R. • An´alise de mensagens do twitter usando algoritmos de agrupamento. • Desenvolvimento de algoritmos anti-spam. • Considera¸c˜oes finais. • Referˆencias. Web Data Mining com R — Sum´ario 3
  • 5. Web Data Mining A ´area de Web Data Mining tem como objetivo descobrir conhecimento ´util a partir da estrutura dos hyperlinks da Web, conte´udo das p´aginas e log de utiliza¸c˜ao dos sites. Conceitos — Web Data Mining 5
  • 6. Descobrir conhecimento ´util: • Sintetizar informa¸c˜ao: a partir de logs de servidores web, identificar qual ´e o caminho mais frequente de navega¸c˜ao dos usu´arios no site. a partir de not´ıcias publicadas em ve´ıculos web, sumarizar os principais eventos do dia. • Prescrever a¸c˜oes: a partir do hist´orico de candidaturas em vagas de um candidato, recomendar novas vagas para o mesmo. a partir de conte´udo previamente moderado, construir uma aplica¸c˜ao capaz de moderar conte´udo automaticamente. Conceitos — Web Data Mining 6
  • 7. Aprendizagem de m´aquina Classificação Regressão Supervisionada Modelos preditivos AssociaçãoSumarização Agrupamento Não supervisionada Modelos descritivos Aprendizagem Conceitos — Aprendizagem de m´aquina 7
  • 8. Exemplo de dataset com classe Idade Miopia Astigmat. Lacrimej. Lentes jovem m´ıope n˜ao reduzido nenhuma jovem m´ıope n˜ao normal fraca jovem m´ıope sim reduzido nenhuma jovem m´ıope sim normal forte · · · · · · · · · · · · · · · adulto m´ıope n˜ao reduzido nenhuma Conceitos — Exemplo de dataset com classe 8
  • 9. Exemplo de modelo preditivo Conceitos — Exemplo de modelo preditivo 9
  • 10. Exemplos de aprendizagem n˜ao supervisionada Table 1: Exemplo de tabela com as transa¸c˜oes dos usu´arios usu´ario categoria1 categoria2 categoria3 · · · categoriam user1 0 2 0 · · · 1 user2 1 1 0 · · · 0 user3 2 0 1 · · · 0 user4 0 1 0 · · · 0 · · · · · · · · · · · · · · · · · · usern 1 1 0 · · · 1 Conceitos — Exemplos de aprendizagem n˜ao supervisionada 10
  • 11. Exemplo de identifica¸c˜ao de grupos em redes sociais Conceitos — Exemplo de identifica¸c˜ao de grupos em redes sociais 11
  • 12. Projeto R • http://www.r-project.org/ • R Studio - http://www.rstudio.com/ • ´E free • ´E a linguagem de programa¸c˜ao mais popular para an´alise de dados • Script ´e melhor que clicar e arastar: ´E mais f´acil de comunicar. Reproduz´ıvel. ´E necess´ario pensar mais sobre o problema. • Existe uma quantia grande de pacotes dispon´ıveis Conceitos — Projeto R 12
  • 13. Web Data Mining e dados n˜ao estruturados A ´area de Web Data Mining tem como objetivo descobrir conhecimento ´util a partir da estrutura dos hyperlinks da Web, conte´udo das p´aginas e log de utiliza¸c˜ao dos sites. • S˜ao todos dados n˜ao estruturados. • Estes dados precisam ser pr´e-processados e convertidos em dados estruturados. Conceitos — Web Data Mining e dados n˜ao estruturados 13
  • 14. An´alise de mensagens do twitter usando algoritmos de agrupamento 14
  • 15. Componentes para uma solu¸c˜ao... Coletor Fonte Pré-processamento dos documentos Agrupa documentos Agrupamentos de documentos An´alise de mensagens do twitter usando algoritmos de agrupamento — Componentes para uma solu¸c˜ao... 15
  • 16. Coletando dados do twitter com o R § ¤ l i b r a r y ( twitteR ) cred <− OAuthFactory$new( consumerKey=”XXXX” , consumerSecret=”XXXX” , requestURL=” h t t p s : // a pi . t w i t t e r . com/ oauth / r e q u e s t token ” , accessURL=” h t t p s : // a pi . t w i t t e r . com/ oauth / a c c e s s token ” , authURL=” http : // api . t w i t t e r . com/ oauth / a u t h o r i z e ” ) cred $ handshake () r e g i s t e r T w i t t e r O A u t h ( cred ) dados <− s e a r c h T w i t t e r ( ’ economist b r a s i l ’ , n=250) df <− twListToDF ( dados ) save ( df , f i l e=” . . / data /20140424 economist b r a s i l . rda ” ) ¦ ¥ An´alise de mensagens do twitter usando algoritmos de agrupamento — Coletando dados do twitter com o R 16
  • 17. Formato de um documento ... Esta disciplina tem como objetivo apresentar os principais conceitos da ´area de Inteligˆencia Artificial, caracterizar as principais t´ecnicas e m´etodos, e implementar alguns problemas cl´assicos desta ´area sob um ponto de vista introdut´orio. A estrat´egia de trabalho, o conte´udo ministrado e a forma depender˜ao dos projetos selecionados pelos alunos. Inicialmente, os alunos dever˜ao trazer os seus Projetos de Conclus˜ao de Curso, identificar intersec¸c˜oes entre o projeto e a disciplina, e propor atividades para a disciplina. ... An´alise de mensagens do twitter usando algoritmos de agrupamento — Formato de um documento 17
  • 18. Conjunto de Exemplos - Atributo/Valor Doc. apresent form tecnic caracteriz · · · d1 0.33 0.33 0.33 0.33 · · · d2 0 0.5 0.2 0.33 · · · d3 1 0.6 0 0 · · · d4 0.4 0.3 0.33 0.4 · · · d5 1 0.4 0.1 0.1 · · · dn · · · · · · · · · · · · · · · An´alise de mensagens do twitter usando algoritmos de agrupamento — Conjunto de Exemplos - Atributo/Valor 18
  • 19. Atributo/Valor usando vetores Como representar os documentos? −→ di = (pi1, pi2, · · · , pin) (1) • Os atributos s˜ao as palavras que aparecem nos documentos. • As palavras do texto precisam ser normalizadas: caixa baixa, remover acentua¸c˜ao, remover stop-words, aplicar algoritmos de steamming. An´alise de mensagens do twitter usando algoritmos de agrupamento — Atributo/Valor usando vetores 19
  • 20. Remover stop-words • Em todos os idiomas existem ´atomos (palavras) que n˜ao significam muito. Stop-words Esta disciplina tem como objetivo apresentar os principais conceitos da ´area de Inteligˆencia Artificial, caracterizar as principais t´ecnicas e m´etodos, e implementar alguns problemas cl´assicos desta ´area sob um ponto de vista introdut´orio. · · · An´alise de mensagens do twitter usando algoritmos de agrupamento — Remover stop-words 20
  • 21. Algoritmos de steamming • Algumas palavras podem aparecer no texto de diversas maneiras: t´ecnica, t´ecnicas, implementar, implementa¸c˜ao... • Stemming - encontrar o radical da palavra e usar apenas o radical. An´alise de mensagens do twitter usando algoritmos de agrupamento — Algoritmos de steamming 21
  • 22. Atributo/Valor usando vetores • J´a conhecemos os atributos. • E os valores? Booleana - se a palavra aparece ou n˜ao no documento (1 ou 0) Por freq¨uˆencia do termo - a freq¨uˆencia com que a palavra aparece no documento (normalizada ou n˜ao) Pondera¸c˜ao tf-idf - o peso ´e proporcional ao n´umero de ocorrˆencias do termo no documento e inversamente proporcional ao n´umero de documentos onde o termo aparece. An´alise de mensagens do twitter usando algoritmos de agrupamento — Atributo/Valor usando vetores 22
  • 23. Por freq¨uˆencia do termo (apresent,0.33) (form,0.33) (tecnic,0.33) (caracteriz,0.33) (projet,1.0) (introdutori,0.33) (objet,0.33) (inteligente,0.33) (conclusa,0.33) (selecion,0.33) (intersecco,0.33) (classic,0.33) (identific,0.33) (conceit,0.33) (trabalh,0.33) (disciplin,1.0) (traz,0.33) An´alise de mensagens do twitter usando algoritmos de agrupamento — Por freq¨uˆencia do termo 23
  • 24. Executando esta etapa no R http://rpubs.com/fbarth/agrupamentoTwitterConalytics An´alise de mensagens do twitter usando algoritmos de agrupamento — Executando esta etapa no R 24
  • 25. Componentes para uma solu¸c˜ao... Coletor Fonte Pré-processamento dos documentos Agrupa documentos Agrupamentos de documentos An´alise de mensagens do twitter usando algoritmos de agrupamento — Componentes para uma solu¸c˜ao... 25
  • 27. Defini¸c˜oes de Algoritmos de Agrupamento • O objetivo dos algoritmos de agrupamento ´e colocar os objetos similares em um mesmo grupo e objetos n˜ao similares em grupos diferentes. • Normalmente, objetos s˜ao descritos e agrupados usando um conjunto de atributos e valores. • N˜ao existe nenhuma informa¸c˜ao sobre a classe ou categoria dos objetos. Algoritmos para Agrupamento — Defini¸c˜oes de Algoritmos de Agrupamento 27
  • 28. Algoritmos para Agrupamento - K-means • K significa o n´umero de agrupamentos (que deve ser informado `a priori). • Sequˆencia de a¸c˜oes iterativas. • A parada ´e baseada em algum crit´erio de qualidade dos agrupamentos (por exemplo, similaridade m´edia). Algoritmos para Agrupamento — Algoritmos para Agrupamento - K-means 28
  • 29. Algoritmo para Agrupamento - K-means 1 2 3 4 5 0 1 2 3 4 5 6 7 8 1 2 3 4 5 0 1 2 3 4 5 6 7 8 1 2 3 4 5 0 1 2 3 4 5 6 7 8 (1) Objetos que devem ser agrupados 1 2 3 4 5 0 1 2 3 4 5 6 7 8 (2) Sorteio dos pontos centrais dos agrupamentos (3) Atribuição dos objetos aos agrupamentos (4) Definição do centro do agrupamento Algoritmos para Agrupamento — Algoritmo para Agrupamento - K-means 29
  • 30. Algoritmo K-means • A medida de distˆancia pode ser a distˆancia Euclidiana: | −→x − −→y |= n i=1 (xi − yi)2 (2) • a fun¸c˜ao para computar o ponto central pode ser: −→µ = 1 M −→x ∈C −→x (3) onde M ´e igual ao n´umero de pontos no agrupamento C. Algoritmos para Agrupamento — Algoritmo K-means 30
  • 32. Como determinar o melhor k? A medida de distribui¸c˜ao dos pontos normalmente empregada ´e sum of squared errors. Algoritmos para Agrupamento — Como determinar o melhor k? 32
  • 33. Agrupamento de mensagens do twitter com o R http://rpubs.com/fbarth/agrupamentoTwitterConalytics Algoritmos para Agrupamento — Agrupamento de mensagens do twitter com o R 33
  • 34. Desenvolvimento de algoritmos anti-spam Algoritmos para Agrupamento — Desenvolvimento de algoritmos anti-spam 34
  • 36. Modelos preditivos para classifica¸c˜ao Algoritmos para Agrupamento — Modelos preditivos para classifica¸c˜ao 36
  • 37. Desenvolvimento de modelos preditivos para classifica¸c˜ao Algoritmos para Agrupamento — Desenvolvimento de modelos preditivos para classifica¸c˜ao 37
  • 38. Aprendizado de ´arvores de decis˜ao Algoritmos para Agrupamento — Aprendizado de ´arvores de decis˜ao 38
  • 39. Florestas de ´arvores de decis˜ao Algoritmos para Agrupamento — Florestas de ´arvores de decis˜ao 39
  • 40. Exemplo de classifica¸c˜ao de Spam usando RandomForest http://rpubs.com/fbarth/classificacaoSpamRandomForest Algoritmos para Agrupamento — Exemplo de classifica¸c˜ao de Spam usando RandomForest 40
  • 41. Considera¸c˜oes finais • An´alise de mensagens do twitter Transforma¸c˜ao de informa¸c˜ao n˜ao-estruturada em estruturada. Uso do algoritmo k-means Este mesmo processo pode ser aplicado para outros problemas similares: an´alise de not´ıcias, an´alise de patentes e artigos cient´ıficos. Algoritmos para Agrupamento — Considera¸c˜oes finais 41
  • 42. • Desenvolvimento de algoritmos anti-spam Uso do algoritmo random forest. Como desenvolver e avaliar um modelo preditivo. Este mesmo processo pode ser aplicado para outros problemas similares, inclusive problemas de recomenda¸c˜ao de itens. Algoritmos para Agrupamento — Considera¸c˜oes finais 42
  • 43. Material de consulta • fbarth.net.br/materiais/docs/webMiningRconalytics.pdf: link para os slides. • http://fbarth.net.br/materiais/webMiningR.html: tutorial apresentado no Mozilla Tech Day 2013. • http://rpubs.com/fbarth/: scripts em R para problemas de Aprendizagem de M´aquina. • fabricio.barth@gmail.com Algoritmos para Agrupamento — Material de consulta 43
  • 44. Referˆencias • Bing Liu. Web Data Mining: exploring hyperlinks, contents, and usage data, 2008. • Tom Mitchell. Machine Learning, 1997. • Iah H. Witteh and Eibe Frank. Data Mining: Practical Machine Learning Tools and Techniques (Third Edition), 2011. • Pang-Ning Tan, Michael Steinbach and Vipin Kumar. Introduction to Data Mining, 2006. • Andrew Ng. http://www.ml-class.org Algoritmos para Agrupamento — Referˆencias 44
  • 45. • Andy and Matthew. Classification and regression by randomForest. R News, vol. 3, number 3, pages 18-22, 2002. • Costa, H.; Merschmann, L. H. C.; Barth, F.; Benevenuto, F. Pollution, Bad-mouthing, and Local Marketing: The Underground of Location-based Social Networks. Information Sciences, 2014. • RDataMining.com: Text Mining. http://www.rdatamining.com/examples/text-mining. Acessado em 14 de junho de 2013. • Ingo Feinerer. Introduction to the tm Package: Text Mining in R. http://cran.r- project.org/web/packages/tm/vignettes/tm.pdf. Acessado em 14 de junho de 2013. Algoritmos para Agrupamento — Referˆencias 45
  • 46. • Barth, F. J. Ferramentas para a detec¸c˜ao de grupos em Wikis. In: VII Simp´osio Brasileiro de Sistemas Colaborativos, 2010, Belo Horizonte. Anais do VII Simp´osio Brasileiro de Sistemas Colaborativos. IEEE Computer Society, 2010. v.II. p.8 - 11. • Barth, F. J. ; Belderrain, M. C. R. ; Quadros, N. L. P. ; Ferreira, L. L. ; Timoszczuk, A. P. . Recupera¸c˜ao e minera¸c˜ao de informa¸c˜oes para a ´area criminal. In: VI Encontro Nacional de Inteligˆencia Artificial, 2007, Rio de Janeiro. Anais do XXVII Congresso da SBC, 2007. Algoritmos para Agrupamento — Referˆencias 46