O
cina: construc~ao de modelos 
descritivos e preditivos utilizando R 
Fabrcio J. Barth 
fabricio.barth@gmail.com 
Faculdade BandTec e Watson Group IBM 
Outubro de 2014
Objetivo 
O objetivo desta o
cina e apresentar exemplos de 
construc~ao de modelos descritos e preditivos utilizando a 
linguagem de programac~ao R. 
O
cina: construc~ao de modelos descritivos e preditivos utilizando R | Objetivo 2
Sumario 
 Conceitos: aprendizagem de maquina, knowledge 
discovery in databases e a linguagem de programac~ao 
R. 
 Analise de mensagens do twitter usando algoritmos de 
agrupamento. 
 Desenvolvimento de algoritmos anti-spam. 
 Considerac~oes
nais. 
 Refer^encias. 
O
cina: construc~ao de modelos descritivos e preditivos utilizando R | Sumario 3
Conceitos 
4
Knowledge Discovery in Databases 
(KDD) 
KDD e o processo n~ao trivial de identi
cac~ao de padr~oes 
em dados que sejam validos, novos, potencialmente uteis e 
compreensveis [Fayyad, 1996]. 
Conceitos | Knowledge Discovery in Databases (KDD) 5
Descobrir conhecimento util: 
 Sintetizar informac~ao: 
? a partir de logs de servidores web, identi
car qual e o 
caminho mais frequente de navegac~ao dos usuarios no 
site. 
? a partir de notcias publicadas em veculos web, 
sumarizar os principais eventos do dia. 
 Prescrever ac~oes: 
? a partir do historico de candidaturas em vagas de um 
candidato, recomendar novas vagas para o mesmo. 
? a partir de conteudo previamente moderado, construir 
uma aplicac~ao capaz de moderar conteudo 
automaticamente. 
Conceitos | Knowledge Discovery in Databases (KDD) 6
Processo de KDD 
1. Qual e a pergunta? 
2. Aquisic~ao e pre-processamento dos dados. 
3. Analise Descritiva. 
4. Modelagem: construc~ao do modelo descritivo ou 
preditivo. 
5. Avaliac~ao do modelo. 
6. Entrega: relatorios estaticos, din^amicos, sistemas ou 
funcionalidade de sistemas. 
Conceitos | Processo de KDD 7
Aprendizagem de maquina 
Supervisionada 
Modelos preditivos 
Classificação Regressão 
Não supervisionada 
Modelos descritivos 
Aprendizagem 
Sumarização Associação Agrupamento 
Conceitos | Aprendizagem de maquina 8
Exemplo de dataset com classe 
Sepal.Length Sepal.Width Petal.Length Petal.Width Species 
1 5.10 3.50 1.40 0.20 setosa 
2 4.90 3.00 1.40 0.20 setosa 
3 4.70 3.20 1.30 0.20 setosa 
4 4.60 3.10 1.50 0.20 setosa 
5 5.00 3.60 1.40 0.20 setosa 
52 6.40 3.20 4.50 1.50 versicolor 
53 6.90 3.10 4.90 1.50 versicolor 
54 5.50 2.30 4.00 1.30 versicolor 
55 6.50 2.80 4.60 1.50 versicolor 
56 5.70 2.80 4.50 1.30 versicolor 
104 6.30 2.90 5.60 1.80 virginica 
105 6.50 3.00 5.80 2.20 virginica 
110 7.20 3.60 6.10 2.50 virginica 
115 5.80 2.80 5.10 2.40 virginica 
Conceitos | Exemplo de dataset com classe 9
Exemplo de modelo preditivo 
Conceitos | Exemplo de modelo preditivo 10
Exemplos de aprendizagem n~ao 
supervisionada 
Table 1: Exemplo de tabela com conex~oes entre usuarios 
usuario user1 user2 user3    usern 
user1 1 1 0    1 
user2 1 1 0    0 
user3 1 0 1    0 
user4 0 1 0    0 
                  
usern 1 1 0    1 
Conceitos | Exemplos de aprendizagem n~ao supervisionada 11
Exemplo de identi
cac~ao de grupos em 
redes sociais 
Conceitos | Exemplo de identi
cac~ao de grupos em redes sociais 12
Ferramentas que suportam o processo de 
KDD 
O processo de KDD (pode/deve) ser suportado por 
ferramentas computacionais, tais como: 
 R 
 SPSS 
 RapidMiner 
 Weka 
 Tableau 
 Python, Julia, Octave, Matlab. 
Conceitos | Ferramentas que suportam o processo de KDD 13
Projeto R 
 http://www.r-project.org/ 
 R Studio - http://www.rstudio.com/ 
 E 
free 
 E 
a linguagem de programac~ao mais popular para 
analise de dados 
 Script e melhor que clicar e arastar: 
? E 
mais facil de comunicar. 
? Reproduzvel. 
? E 
necessario pensar mais sobre o problema. 
 Existe uma quantia grande de pacotes disponveis 
Conceitos | Projeto R 14
Analise de mensagens do 
twitter usando 
algoritmos de 
agrupamento 
15
Componentes para uma soluc~ao... 
Coletor 
Fonte 
Pré-processamento 
dos documentos 
Agrupa 
documentos 
Agrupamentos de 
documentos 
Analise de mensagens do twitter usando algoritmos de agrupamento | Componentes para uma soluc~ao... 16
Acessar e fazer o download do projeto 
https://github.com/fbarth/mlr 
Analise de mensagens do twitter usando algoritmos de agrupamento | Acessar e fazer o download do projeto 17
Formato de um documento 
... Esta disciplina tem como objetivo apresentar os principais 
conceitos da area de Intelig^encia Arti
cial, caracterizar as 
principais tecnicas e metodos, e implementar alguns problemas 
classicos desta area sob um ponto de vista introdutorio. 
A estrategia de trabalho, o conteudo 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, identi
car intersecc~oes entre o projeto e a 
disciplina, e propor atividades para a disciplina. ... 
Analise de mensagens do twitter usando algoritmos de agrupamento | Formato de um documento 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                
Analise de mensagens do twitter usando algoritmos de agrupamento | Conjunto de Exemplos - Atributo/Valor 19
Atributo/Valor usando vetores 
Como representar os documentos? 
!d 
i = (pi1; pi2;    ; pin) (1) 
 Os atributos s~ao as palavras que aparecem nos 
documentos. 
 As palavras do texto precisam ser normalizadas: caixa 
baixa, remover acentuac~ao, remover stop-words, 
aplicar algoritmos de steamming. 
Analise de mensagens do twitter usando algoritmos de agrupamento | Atributo/Valor usando vetores 20
Remover stop-words 
 Em todos os idiomas existem atomos (palavras) que 
n~ao signi
cam muito. Stop-words 
Esta disciplina tem como objetivo apresentar os principais 
conceitos da area de Intelig^encia Arti
cial, caracterizar as 
principais tecnicas e metodos, e implementar alguns problemas 
classicos desta area sob um ponto de vista introdutorio. 
   
Analise de mensagens do twitter usando algoritmos de agrupamento | Remover stop-words 21
Algoritmos de steamming 
 Algumas palavras podem aparecer no texto de diversas 
maneiras: tecnica, tecnicas, implementar, 
implementac~ao... 
 Stemming - encontrar o radical da palavra e usar 
apenas o radical. 
Analise de mensagens do twitter usando algoritmos de agrupamento | Algoritmos de steamming 22
Atributo/Valor usando vetores 
 Ja conhecemos os atributos. 
 E os valores? 
? Booleana - se a palavra aparece ou n~ao no 
documento (1 ou 0) 
? Por frequ^encia do termo - a frequ^encia com que 
a palavra aparece no documento (normalizada ou 
n~ao) 
? Ponderac~ao tf-idf - o peso e proporcional ao 
numero de ocorr^encias do termo no documento e 
inversamente proporcional ao numero de 
documentos onde o termo aparece. 
Analise de mensagens do twitter usando algoritmos de agrupamento | Atributo/Valor usando vetores 23
Por frequ^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) 
(identi
c,0.33) (conceit,0.33) (trabalh,0.33) (disciplin,1.0) 
(traz,0.33) 
Analise de mensagens do twitter usando algoritmos de agrupamento | Por frequ^encia do termo 24
Componentes para uma soluc~ao... 
Coletor 
Fonte 
Pré-processamento 
dos documentos 
Agrupa 
documentos 
Agrupamentos de 
documentos 
Analise de mensagens do twitter usando algoritmos de agrupamento | Componentes para uma soluc~ao... 25
Algoritmos para 
Agrupamento 
26
De
nic~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 informac~ao sobre a classe ou 
categoria dos objetos. 
Algoritmos para Agrupamento | De
nic~oes de Algoritmos de Agrupamento 27
Algoritmos para Agrupamento - K-means 
 K signi
ca o numero de agrupamentos (que deve ser 
informado a priori). 
 Sequ^encia de ac~oes iterativas. 
 A parada e baseada em algum criterio de qualidade 
dos agrupamentos (por exemplo, similaridade media). 
Algoritmos para Agrupamento | Algoritmos para Agrupamento - K-means 28
Algoritmo para Agrupamento - K-means 
5 
4 
3 
2 
5 
4 
3 
2 
1 
0 
1 2 3 4 5 6 7 8 
5 
4 
3 
2 
5 
4 
3 
2 
1 
0 
1 2 3 4 5 6 7 8 
1 
0 
1 2 3 4 5 6 7 8 
(1) Objetos que devem ser agrupados 
1 
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: 
j !x 
 !yj= 
vuut 
Xn 
i=1 
(xi  yi)2 (2) 
 a func~ao para computar o ponto central pode ser: 
! 
= 
1 
M 
X 
!x 
2C 
!x 
(3) 
onde M e igual ao numero de pontos no agrupamento 
C. 
Algoritmos para Agrupamento | Algoritmo K-means 30
Algoritmos para Agrupamento | 31
Como determinar o melhor k? 
A medida de distribuic~ao dos pontos normalmente empregada e sum of squared errors. 
Algoritmos para Agrupamento | Como determinar o melhor k? 32
Desenvolvimento de 
algoritmos anti-spam 
33
Exemplos onde aplicar 
Desenvolvimento de algoritmos anti-spam | Exemplos onde aplicar 34
Desenvolvimento de algoritmos anti-spam | 35

Oficina: construção de modelos descritivos e preditivos utilizando R

  • 1.
  • 2.
    cina: construc~ao demodelos descritivos e preditivos utilizando R Fabrcio J. Barth fabricio.barth@gmail.com Faculdade BandTec e Watson Group IBM Outubro de 2014
  • 3.
  • 4.
    cina e apresentarexemplos de construc~ao de modelos descritos e preditivos utilizando a linguagem de programac~ao R. O
  • 5.
    cina: construc~ao demodelos descritivos e preditivos utilizando R | Objetivo 2
  • 6.
    Sumario Conceitos:aprendizagem de maquina, knowledge discovery in databases e a linguagem de programac~ao R. Analise de mensagens do twitter usando algoritmos de agrupamento. Desenvolvimento de algoritmos anti-spam. Considerac~oes
  • 7.
  • 8.
    cina: construc~ao demodelos descritivos e preditivos utilizando R | Sumario 3
  • 9.
  • 10.
    Knowledge Discovery inDatabases (KDD) KDD e o processo n~ao trivial de identi
  • 11.
    cac~ao de padr~oes em dados que sejam validos, novos, potencialmente uteis e compreensveis [Fayyad, 1996]. Conceitos | Knowledge Discovery in Databases (KDD) 5
  • 12.
    Descobrir conhecimento util: Sintetizar informac~ao: ? a partir de logs de servidores web, identi
  • 13.
    car qual eo caminho mais frequente de navegac~ao dos usuarios no site. ? a partir de notcias publicadas em veculos web, sumarizar os principais eventos do dia. Prescrever ac~oes: ? a partir do historico de candidaturas em vagas de um candidato, recomendar novas vagas para o mesmo. ? a partir de conteudo previamente moderado, construir uma aplicac~ao capaz de moderar conteudo automaticamente. Conceitos | Knowledge Discovery in Databases (KDD) 6
  • 14.
    Processo de KDD 1. Qual e a pergunta? 2. Aquisic~ao e pre-processamento dos dados. 3. Analise Descritiva. 4. Modelagem: construc~ao do modelo descritivo ou preditivo. 5. Avaliac~ao do modelo. 6. Entrega: relatorios estaticos, din^amicos, sistemas ou funcionalidade de sistemas. Conceitos | Processo de KDD 7
  • 15.
    Aprendizagem de maquina Supervisionada Modelos preditivos Classificação Regressão Não supervisionada Modelos descritivos Aprendizagem Sumarização Associação Agrupamento Conceitos | Aprendizagem de maquina 8
  • 16.
    Exemplo de datasetcom classe Sepal.Length Sepal.Width Petal.Length Petal.Width Species 1 5.10 3.50 1.40 0.20 setosa 2 4.90 3.00 1.40 0.20 setosa 3 4.70 3.20 1.30 0.20 setosa 4 4.60 3.10 1.50 0.20 setosa 5 5.00 3.60 1.40 0.20 setosa 52 6.40 3.20 4.50 1.50 versicolor 53 6.90 3.10 4.90 1.50 versicolor 54 5.50 2.30 4.00 1.30 versicolor 55 6.50 2.80 4.60 1.50 versicolor 56 5.70 2.80 4.50 1.30 versicolor 104 6.30 2.90 5.60 1.80 virginica 105 6.50 3.00 5.80 2.20 virginica 110 7.20 3.60 6.10 2.50 virginica 115 5.80 2.80 5.10 2.40 virginica Conceitos | Exemplo de dataset com classe 9
  • 17.
    Exemplo de modelopreditivo Conceitos | Exemplo de modelo preditivo 10
  • 18.
    Exemplos de aprendizagemn~ao supervisionada Table 1: Exemplo de tabela com conex~oes entre usuarios usuario user1 user2 user3 usern user1 1 1 0 1 user2 1 1 0 0 user3 1 0 1 0 user4 0 1 0 0 usern 1 1 0 1 Conceitos | Exemplos de aprendizagem n~ao supervisionada 11
  • 19.
  • 20.
    cac~ao de gruposem redes sociais Conceitos | Exemplo de identi
  • 21.
    cac~ao de gruposem redes sociais 12
  • 22.
    Ferramentas que suportamo processo de KDD O processo de KDD (pode/deve) ser suportado por ferramentas computacionais, tais como: R SPSS RapidMiner Weka Tableau Python, Julia, Octave, Matlab. Conceitos | Ferramentas que suportam o processo de KDD 13
  • 23.
    Projeto R http://www.r-project.org/ R Studio - http://www.rstudio.com/ E free E a linguagem de programac~ao mais popular para analise de dados Script e melhor que clicar e arastar: ? E mais facil de comunicar. ? Reproduzvel. ? E necessario pensar mais sobre o problema. Existe uma quantia grande de pacotes disponveis Conceitos | Projeto R 14
  • 24.
    Analise de mensagensdo twitter usando algoritmos de agrupamento 15
  • 25.
    Componentes para umasoluc~ao... Coletor Fonte Pré-processamento dos documentos Agrupa documentos Agrupamentos de documentos Analise de mensagens do twitter usando algoritmos de agrupamento | Componentes para uma soluc~ao... 16
  • 26.
    Acessar e fazero download do projeto https://github.com/fbarth/mlr Analise de mensagens do twitter usando algoritmos de agrupamento | Acessar e fazer o download do projeto 17
  • 27.
    Formato de umdocumento ... Esta disciplina tem como objetivo apresentar os principais conceitos da area de Intelig^encia Arti
  • 28.
    cial, caracterizar as principais tecnicas e metodos, e implementar alguns problemas classicos desta area sob um ponto de vista introdutorio. A estrategia de trabalho, o conteudo 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, identi
  • 29.
    car intersecc~oes entreo projeto e a disciplina, e propor atividades para a disciplina. ... Analise de mensagens do twitter usando algoritmos de agrupamento | Formato de um documento 18
  • 30.
    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 Analise de mensagens do twitter usando algoritmos de agrupamento | Conjunto de Exemplos - Atributo/Valor 19
  • 31.
    Atributo/Valor usando vetores Como representar os documentos? !d i = (pi1; pi2; ; pin) (1) Os atributos s~ao as palavras que aparecem nos documentos. As palavras do texto precisam ser normalizadas: caixa baixa, remover acentuac~ao, remover stop-words, aplicar algoritmos de steamming. Analise de mensagens do twitter usando algoritmos de agrupamento | Atributo/Valor usando vetores 20
  • 32.
    Remover stop-words Em todos os idiomas existem atomos (palavras) que n~ao signi
  • 33.
    cam muito. Stop-words Esta disciplina tem como objetivo apresentar os principais conceitos da area de Intelig^encia Arti
  • 34.
    cial, caracterizar as principais tecnicas e metodos, e implementar alguns problemas classicos desta area sob um ponto de vista introdutorio. Analise de mensagens do twitter usando algoritmos de agrupamento | Remover stop-words 21
  • 35.
    Algoritmos de steamming Algumas palavras podem aparecer no texto de diversas maneiras: tecnica, tecnicas, implementar, implementac~ao... Stemming - encontrar o radical da palavra e usar apenas o radical. Analise de mensagens do twitter usando algoritmos de agrupamento | Algoritmos de steamming 22
  • 36.
    Atributo/Valor usando vetores Ja conhecemos os atributos. E os valores? ? Booleana - se a palavra aparece ou n~ao no documento (1 ou 0) ? Por frequ^encia do termo - a frequ^encia com que a palavra aparece no documento (normalizada ou n~ao) ? Ponderac~ao tf-idf - o peso e proporcional ao numero de ocorr^encias do termo no documento e inversamente proporcional ao numero de documentos onde o termo aparece. Analise de mensagens do twitter usando algoritmos de agrupamento | Atributo/Valor usando vetores 23
  • 37.
    Por frequ^encia dotermo (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) (identi
  • 38.
    c,0.33) (conceit,0.33) (trabalh,0.33)(disciplin,1.0) (traz,0.33) Analise de mensagens do twitter usando algoritmos de agrupamento | Por frequ^encia do termo 24
  • 39.
    Componentes para umasoluc~ao... Coletor Fonte Pré-processamento dos documentos Agrupa documentos Agrupamentos de documentos Analise de mensagens do twitter usando algoritmos de agrupamento | Componentes para uma soluc~ao... 25
  • 40.
  • 41.
  • 42.
    nic~oes de Algoritmosde 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 informac~ao sobre a classe ou categoria dos objetos. Algoritmos para Agrupamento | De
  • 43.
    nic~oes de Algoritmosde Agrupamento 27
  • 44.
    Algoritmos para Agrupamento- K-means K signi
  • 45.
    ca o numerode agrupamentos (que deve ser informado a priori). Sequ^encia de ac~oes iterativas. A parada e baseada em algum criterio de qualidade dos agrupamentos (por exemplo, similaridade media). Algoritmos para Agrupamento | Algoritmos para Agrupamento - K-means 28
  • 46.
    Algoritmo para Agrupamento- K-means 5 4 3 2 5 4 3 2 1 0 1 2 3 4 5 6 7 8 5 4 3 2 5 4 3 2 1 0 1 2 3 4 5 6 7 8 1 0 1 2 3 4 5 6 7 8 (1) Objetos que devem ser agrupados 1 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
  • 47.
    Algoritmo K-means A medida de dist^ancia pode ser a dist^ancia Euclidiana: j !x !yj= vuut Xn i=1 (xi yi)2 (2) a func~ao para computar o ponto central pode ser: ! = 1 M X !x 2C !x (3) onde M e igual ao numero de pontos no agrupamento C. Algoritmos para Agrupamento | Algoritmo K-means 30
  • 48.
  • 49.
    Como determinar omelhor k? A medida de distribuic~ao dos pontos normalmente empregada e sum of squared errors. Algoritmos para Agrupamento | Como determinar o melhor k? 32
  • 50.
  • 51.
    Exemplos onde aplicar Desenvolvimento de algoritmos anti-spam | Exemplos onde aplicar 34
  • 52.