SlideShare a Scribd company logo
1 of 46
Download to read offline
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

More Related Content

Viewers also liked

Web Data Mining com R: design de projetos para criação de modelos preditivos
Web Data Mining com R: design de projetos para criação de modelos preditivosWeb Data Mining com R: design de projetos para criação de modelos preditivos
Web Data Mining com R: design de projetos para criação de modelos preditivosFabrício Barth
 
Minicurso Prática de Revisão Bibliográfica - Encontro de Saberes/UFOP - Esse...
Minicurso Prática de Revisão Bibliográfica  - Encontro de Saberes/UFOP - Esse...Minicurso Prática de Revisão Bibliográfica  - Encontro de Saberes/UFOP - Esse...
Minicurso Prática de Revisão Bibliográfica - Encontro de Saberes/UFOP - Esse...Essevalter de Sousa
 
Big Data
Big DataBig Data
Big DataQx3
 
Big Data for Healthcare - INTELIGÊNCIA EM SAÚDE ORIZON
Big Data for Healthcare - INTELIGÊNCIA EM SAÚDE ORIZONBig Data for Healthcare - INTELIGÊNCIA EM SAÚDE ORIZON
Big Data for Healthcare - INTELIGÊNCIA EM SAÚDE ORIZONLeopoldo Veras da Rocha
 
Big Data, o que é isso?
Big Data, o que é isso?Big Data, o que é isso?
Big Data, o que é isso?Ambiente Livre
 
Palestra garimpando com pentaho data mining latinoware
Palestra garimpando com pentaho data mining latinowarePalestra garimpando com pentaho data mining latinoware
Palestra garimpando com pentaho data mining latinowareMarcos Vinicius Fidelis
 
Redes de coautoria em ciência da informação
Redes de coautoria em ciência da informaçãoRedes de coautoria em ciência da informação
Redes de coautoria em ciência da informaçãoUFPB
 
Introdução ao Big Data para Desenvolvedores Python
Introdução ao Big Data para Desenvolvedores PythonIntrodução ao Big Data para Desenvolvedores Python
Introdução ao Big Data para Desenvolvedores PythonLuiz Eduardo Le Masson
 
Cidades Inteligentes: a exploração do digital
Cidades Inteligentes: a exploração do digitalCidades Inteligentes: a exploração do digital
Cidades Inteligentes: a exploração do digitalLuis Borges Gouveia
 
Data mining: Auxiliando as empresas na tomada de decisão
Data mining: Auxiliando as empresas na tomada de decisãoData mining: Auxiliando as empresas na tomada de decisão
Data mining: Auxiliando as empresas na tomada de decisãoAntonioEE256
 
ODI Tutorial - Desenvolvendo Procedures
ODI Tutorial - Desenvolvendo ProceduresODI Tutorial - Desenvolvendo Procedures
ODI Tutorial - Desenvolvendo ProceduresCaio Lima
 
Aula Magna Sobre BI & BigData na UNIA, Luanda - Angola
Aula Magna Sobre BI & BigData na UNIA, Luanda - AngolaAula Magna Sobre BI & BigData na UNIA, Luanda - Angola
Aula Magna Sobre BI & BigData na UNIA, Luanda - Angolaalexculpado
 
TDC2016SP - Desenvolva e Execute Aplicações Feitas para a Nuvem numa Arquitet...
TDC2016SP - Desenvolva e Execute Aplicações Feitas para a Nuvem numa Arquitet...TDC2016SP - Desenvolva e Execute Aplicações Feitas para a Nuvem numa Arquitet...
TDC2016SP - Desenvolva e Execute Aplicações Feitas para a Nuvem numa Arquitet...tdc-globalcode
 
Curso de Análise de Informações p/ Concurso TCU
Curso de Análise de Informações p/ Concurso TCUCurso de Análise de Informações p/ Concurso TCU
Curso de Análise de Informações p/ Concurso TCUEstratégia Concursos
 
Smart Cities e Big Data
Smart Cities e Big DataSmart Cities e Big Data
Smart Cities e Big DataKiev Gama
 

Viewers also liked (20)

Web Data Mining com R: design de projetos para criação de modelos preditivos
Web Data Mining com R: design de projetos para criação de modelos preditivosWeb Data Mining com R: design de projetos para criação de modelos preditivos
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...
Minicurso Prática de Revisão Bibliográfica  - Encontro de Saberes/UFOP - Esse...Minicurso Prática de Revisão Bibliográfica  - Encontro de Saberes/UFOP - Esse...
Minicurso Prática de Revisão Bibliográfica - Encontro de Saberes/UFOP - Esse...
 
Workshop Prático | Location Intelligence
Workshop Prático | Location IntelligenceWorkshop Prático | Location Intelligence
Workshop Prático | Location Intelligence
 
Big Data
Big DataBig Data
Big Data
 
Big Data for Healthcare - INTELIGÊNCIA EM SAÚDE ORIZON
Big Data for Healthcare - INTELIGÊNCIA EM SAÚDE ORIZONBig Data for Healthcare - INTELIGÊNCIA EM SAÚDE ORIZON
Big Data for Healthcare - INTELIGÊNCIA EM SAÚDE ORIZON
 
Big Data, o que é isso?
Big Data, o que é isso?Big Data, o que é isso?
Big Data, o que é isso?
 
Palestra garimpando com pentaho data mining latinoware
Palestra garimpando com pentaho data mining latinowarePalestra garimpando com pentaho data mining latinoware
Palestra garimpando com pentaho data mining latinoware
 
Redes de coautoria em ciência da informação
Redes de coautoria em ciência da informaçãoRedes de coautoria em ciência da informação
Redes de coautoria em ciência da informação
 
Introdução ao Big Data para Desenvolvedores Python
Introdução ao Big Data para Desenvolvedores PythonIntrodução ao Big Data para Desenvolvedores Python
Introdução ao Big Data para Desenvolvedores Python
 
Slide cebrap
Slide cebrapSlide cebrap
Slide cebrap
 
Cidades Inteligentes: a exploração do digital
Cidades Inteligentes: a exploração do digitalCidades Inteligentes: a exploração do digital
Cidades Inteligentes: a exploração do digital
 
Treinamento Portal NCBI
Treinamento Portal NCBITreinamento Portal NCBI
Treinamento Portal NCBI
 
Big data apresentacao
Big data apresentacaoBig data apresentacao
Big data apresentacao
 
Data mining: Auxiliando as empresas na tomada de decisão
Data mining: Auxiliando as empresas na tomada de decisãoData mining: Auxiliando as empresas na tomada de decisão
Data mining: Auxiliando as empresas na tomada de decisão
 
ODI Tutorial - Desenvolvendo Procedures
ODI Tutorial - Desenvolvendo ProceduresODI Tutorial - Desenvolvendo Procedures
ODI Tutorial - Desenvolvendo Procedures
 
Big Data Analytics
Big Data AnalyticsBig Data Analytics
Big Data Analytics
 
Aula Magna Sobre BI & BigData na UNIA, Luanda - Angola
Aula Magna Sobre BI & BigData na UNIA, Luanda - AngolaAula Magna Sobre BI & BigData na UNIA, Luanda - Angola
Aula Magna Sobre BI & BigData na UNIA, Luanda - Angola
 
TDC2016SP - Desenvolva e Execute Aplicações Feitas para a Nuvem numa Arquitet...
TDC2016SP - Desenvolva e Execute Aplicações Feitas para a Nuvem numa Arquitet...TDC2016SP - Desenvolva e Execute Aplicações Feitas para a Nuvem numa Arquitet...
TDC2016SP - Desenvolva e Execute Aplicações Feitas para a Nuvem numa Arquitet...
 
Curso de Análise de Informações p/ Concurso TCU
Curso de Análise de Informações p/ Concurso TCUCurso de Análise de Informações p/ Concurso TCU
Curso de Análise de Informações p/ Concurso TCU
 
Smart Cities e Big Data
Smart Cities e Big DataSmart Cities e Big Data
Smart Cities e Big Data
 

Similar to Web Data Mining com R: técnicas e exemplos

Introducao ao python - Luciana Mota
Introducao ao python - Luciana MotaIntroducao ao python - Luciana Mota
Introducao ao python - Luciana Motalucianacmota
 
Uma introdução à mineração de informações
Uma introdução à mineração de informaçõesUma introdução à mineração de informações
Uma introdução à mineração de informaçõesFabrício Barth
 
Modelagem de Sistemas de Informação
Modelagem de Sistemas de InformaçãoModelagem de Sistemas de Informação
Modelagem de Sistemas de InformaçãoHelder Lopes
 
Machine learning java ce conference 2012 - fortaleza ce
Machine learning java ce conference 2012 - fortaleza ceMachine learning java ce conference 2012 - fortaleza ce
Machine learning java ce conference 2012 - fortaleza ceLuca Bastos
 
Modelagem Dados - Introdução à Conceitos
Modelagem Dados - Introdução à ConceitosModelagem Dados - Introdução à Conceitos
Modelagem Dados - Introdução à Conceitospaulocoob
 
Introdução à Engenharia de Software e UML
Introdução à Engenharia de Software e UMLIntrodução à Engenharia de Software e UML
Introdução à Engenharia de Software e UMLNatanael Simões
 
[TDC2016] Apache SparkMLlib: Machine Learning na Prática
[TDC2016] Apache SparkMLlib:  Machine Learning na Prática[TDC2016] Apache SparkMLlib:  Machine Learning na Prática
[TDC2016] Apache SparkMLlib: Machine Learning na PráticaEiti Kimura
 
Construção de Classificadores utilizando Pentaho Data Mining (WEKA) - FTSL 2014
Construção de Classificadores utilizando Pentaho Data Mining (WEKA) - FTSL 2014 Construção de Classificadores utilizando Pentaho Data Mining (WEKA) - FTSL 2014
Construção de Classificadores utilizando Pentaho Data Mining (WEKA) - FTSL 2014 Marcos Vinicius Fidelis
 
Programação Web com PHP 7.x
Programação Web com PHP 7.xProgramação Web com PHP 7.x
Programação Web com PHP 7.xNorton Guimarães
 
Análise de Redes Sociais - Agroplus
Análise de Redes Sociais - AgroplusAnálise de Redes Sociais - Agroplus
Análise de Redes Sociais - Agroplusequipeagroplus
 
TDC2016SP - SparkMLlib Machine Learning na Prática
TDC2016SP -  SparkMLlib Machine Learning na PráticaTDC2016SP -  SparkMLlib Machine Learning na Prática
TDC2016SP - SparkMLlib Machine Learning na Práticatdc-globalcode
 
Experimentation of the Model Driven RichUbi Process in the Adaptive Rich Inte...
Experimentation of the Model Driven RichUbi Process in the Adaptive Rich Inte...Experimentation of the Model Driven RichUbi Process in the Adaptive Rich Inte...
Experimentation of the Model Driven RichUbi Process in the Adaptive Rich Inte...Luciana Zaina
 
Gestão de Projectos de SW OO Métricas Estimações e Planificações
Gestão de Projectos de SW OO Métricas Estimações e PlanificaçõesGestão de Projectos de SW OO Métricas Estimações e Planificações
Gestão de Projectos de SW OO Métricas Estimações e PlanificaçõesRogerio P C do Nascimento
 
Case Recommender: Fazendo recomendação em Python
Case Recommender: Fazendo recomendação em PythonCase Recommender: Fazendo recomendação em Python
Case Recommender: Fazendo recomendação em PythonArthur Fortes
 
Aplicações não convencionais de grafos
Aplicações não convencionais de grafosAplicações não convencionais de grafos
Aplicações não convencionais de grafospichiliani
 
Sobre o workshop "Raspagem de dados para mulheres"
Sobre o workshop "Raspagem de dados para mulheres"Sobre o workshop "Raspagem de dados para mulheres"
Sobre o workshop "Raspagem de dados para mulheres"Patricia Minamizawa
 
Keynote Arquitetura InformaçãO
Keynote Arquitetura InformaçãOKeynote Arquitetura InformaçãO
Keynote Arquitetura InformaçãOAna Brambilla
 
Apresentação da Disciplina Gerência de Projetos - DCOMP - UFS
Apresentação da Disciplina Gerência de Projetos - DCOMP - UFSApresentação da Disciplina Gerência de Projetos - DCOMP - UFS
Apresentação da Disciplina Gerência de Projetos - DCOMP - UFSRogerio P C do Nascimento
 

Similar to Web Data Mining com R: técnicas e exemplos (20)

Introducao ao python - Luciana Mota
Introducao ao python - Luciana MotaIntroducao ao python - Luciana Mota
Introducao ao python - Luciana Mota
 
Uma introdução à mineração de informações
Uma introdução à mineração de informaçõesUma introdução à mineração de informações
Uma introdução à mineração de informações
 
Modelagem de Sistemas de Informação
Modelagem de Sistemas de InformaçãoModelagem de Sistemas de Informação
Modelagem de Sistemas de Informação
 
Machine learning java ce conference 2012 - fortaleza ce
Machine learning java ce conference 2012 - fortaleza ceMachine learning java ce conference 2012 - fortaleza ce
Machine learning java ce conference 2012 - fortaleza ce
 
Modelagem Dados - Introdução à Conceitos
Modelagem Dados - Introdução à ConceitosModelagem Dados - Introdução à Conceitos
Modelagem Dados - Introdução à Conceitos
 
Introdução à Engenharia de Software e UML
Introdução à Engenharia de Software e UMLIntrodução à Engenharia de Software e UML
Introdução à Engenharia de Software e UML
 
[TDC2016] Apache SparkMLlib: Machine Learning na Prática
[TDC2016] Apache SparkMLlib:  Machine Learning na Prática[TDC2016] Apache SparkMLlib:  Machine Learning na Prática
[TDC2016] Apache SparkMLlib: Machine Learning na Prática
 
Construção de Classificadores utilizando Pentaho Data Mining (WEKA) - FTSL 2014
Construção de Classificadores utilizando Pentaho Data Mining (WEKA) - FTSL 2014 Construção de Classificadores utilizando Pentaho Data Mining (WEKA) - FTSL 2014
Construção de Classificadores utilizando Pentaho Data Mining (WEKA) - FTSL 2014
 
Programação Web com PHP 7.x
Programação Web com PHP 7.xProgramação Web com PHP 7.x
Programação Web com PHP 7.x
 
Análise de Redes Sociais - Agroplus
Análise de Redes Sociais - AgroplusAnálise de Redes Sociais - Agroplus
Análise de Redes Sociais - Agroplus
 
TDC2016SP - SparkMLlib Machine Learning na Prática
TDC2016SP -  SparkMLlib Machine Learning na PráticaTDC2016SP -  SparkMLlib Machine Learning na Prática
TDC2016SP - SparkMLlib Machine Learning na Prática
 
Experimentation of the Model Driven RichUbi Process in the Adaptive Rich Inte...
Experimentation of the Model Driven RichUbi Process in the Adaptive Rich Inte...Experimentation of the Model Driven RichUbi Process in the Adaptive Rich Inte...
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
Gestão de Projectos de SW OO Métricas Estimações e PlanificaçõesGestão de Projectos de SW OO Métricas Estimações e Planificações
Gestão de Projectos de SW OO Métricas Estimações e Planificações
 
SQLAlchemy - Desenvolvendo uma aplicação com Python
SQLAlchemy - Desenvolvendo uma aplicação com Python SQLAlchemy - Desenvolvendo uma aplicação com Python
SQLAlchemy - Desenvolvendo uma aplicação com Python
 
Case Recommender: Fazendo recomendação em Python
Case Recommender: Fazendo recomendação em PythonCase Recommender: Fazendo recomendação em Python
Case Recommender: Fazendo recomendação em Python
 
Portifoliogrupo 130109082241-phpapp02
Portifoliogrupo 130109082241-phpapp02Portifoliogrupo 130109082241-phpapp02
Portifoliogrupo 130109082241-phpapp02
 
Aplicações não convencionais de grafos
Aplicações não convencionais de grafosAplicações não convencionais de grafos
Aplicações não convencionais de grafos
 
Sobre o workshop "Raspagem de dados para mulheres"
Sobre o workshop "Raspagem de dados para mulheres"Sobre o workshop "Raspagem de dados para mulheres"
Sobre o workshop "Raspagem de dados para mulheres"
 
Keynote Arquitetura InformaçãO
Keynote Arquitetura InformaçãOKeynote Arquitetura InformaçãO
Keynote Arquitetura InformaçãO
 
Apresentação da Disciplina Gerência de Projetos - DCOMP - UFS
Apresentação da Disciplina Gerência de Projetos - DCOMP - UFSApresentação da Disciplina Gerência de Projetos - DCOMP - UFS
Apresentação da Disciplina Gerência de Projetos - DCOMP - UFS
 

More from Fabrício Barth

Redução de dimensionalidade - Pós Graduação em Big Data
Redução de dimensionalidade - Pós Graduação em Big DataRedução de dimensionalidade - Pós Graduação em Big Data
Redução de dimensionalidade - Pós Graduação em Big DataFabrício Barth
 
Hierarquia de modelos e Aprendizagem de Máquina - Pós Graduação em Big Data
Hierarquia de modelos e Aprendizagem de Máquina - Pós Graduação em Big DataHierarquia de modelos e Aprendizagem de Máquina - Pós Graduação em Big Data
Hierarquia de modelos e Aprendizagem de Máquina - Pós Graduação em Big DataFabrício Barth
 
Contexto de Big Data, Ciência de Dados e KDD - Pós Graduação em Big Data
Contexto de Big Data, Ciência de Dados e KDD - Pós Graduação em Big DataContexto de Big Data, Ciência de Dados e KDD - Pós Graduação em Big Data
Contexto de Big Data, Ciência de Dados e KDD - Pós Graduação em Big DataFabrício Barth
 
Pré-processamento [no R] e Análise Exploratória - Curso de Big Data
Pré-processamento [no R] e Análise Exploratória - Curso de Big DataPré-processamento [no R] e Análise Exploratória - Curso de Big Data
Pré-processamento [no R] e Análise Exploratória - Curso de Big DataFabrício Barth
 
Algoritmos de Agrupamento - Aprendizado não supervisionado
Algoritmos de Agrupamento - Aprendizado não supervisionadoAlgoritmos de Agrupamento - Aprendizado não supervisionado
Algoritmos de Agrupamento - Aprendizado não supervisionadoFabrício Barth
 
Human Activity Recognition
Human Activity RecognitionHuman Activity Recognition
Human Activity RecognitionFabrício Barth
 
Iniciativas em Big Data no VAGAS.com
Iniciativas em Big Data no VAGAS.comIniciativas em Big Data no VAGAS.com
Iniciativas em Big Data no VAGAS.comFabrício Barth
 
Web Data Mining com R: identificação de spam utilizando Random Forest
Web Data Mining com R: identificação de spam utilizando Random ForestWeb Data Mining com R: identificação de spam utilizando Random Forest
Web Data Mining com R: identificação de spam utilizando Random ForestFabrício Barth
 
Web Data Mining com R: criação de regras de associação a partir da navegação ...
Web Data Mining com R: criação de regras de associação a partir da navegação ...Web Data Mining com R: criação de regras de associação a partir da navegação ...
Web Data Mining com R: criação de regras de associação a partir da navegação ...Fabrício Barth
 
Web Data Mining com r: aprendizagem de máquina
Web Data Mining com r: aprendizagem de máquinaWeb Data Mining com r: aprendizagem de máquina
Web Data Mining com r: aprendizagem de máquinaFabrício Barth
 
Web Data Mining com R: pré-processamento de dados [no R]
Web Data Mining com R: pré-processamento de dados [no R]Web Data Mining com R: pré-processamento de dados [no R]
Web Data Mining com R: pré-processamento de dados [no R]Fabrício Barth
 
Data Science, Machine Learning and Big Data
Data Science, Machine Learning and Big DataData Science, Machine Learning and Big Data
Data Science, Machine Learning and Big DataFabrício Barth
 
Uma introdução à mineração de informações na era do Big Data
Uma introdução à mineração de informações na era do Big DataUma introdução à mineração de informações na era do Big Data
Uma introdução à mineração de informações na era do Big DataFabrício Barth
 
Data, Text and Web Mining
Data, Text and Web MiningData, Text and Web Mining
Data, Text and Web MiningFabrício Barth
 
Ferramentas Java para Recuperação e Mineração de Informações
Ferramentas Java para Recuperação e Mineração de InformaçõesFerramentas Java para Recuperação e Mineração de Informações
Ferramentas Java para Recuperação e Mineração de InformaçõesFabrício Barth
 
Atena: um sistema para suporte ao planejamento na área de Gestão de Projeto
Atena: um sistema para suporte ao planejamento na área de Gestão de ProjetoAtena: um sistema para suporte ao planejamento na área de Gestão de Projeto
Atena: um sistema para suporte ao planejamento na área de Gestão de ProjetoFabrício Barth
 

More from Fabrício Barth (17)

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

Web Data Mining com R: técnicas e exemplos

  • 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