SlideShare une entreprise Scribd logo
1  sur  13
Télécharger pour lire hors ligne
What’s	
  Cooking	
  
Um	
  Desafio	
  de	
  Classificação	
  de	
  Textos	
  
Mineração	
  de	
  Dados	
  
2º	
  Semestre	
  de	
  2015	
  
Professor:	
  Alexandre	
  PlasAno	
  
Aluno:	
  Paulo	
  Lacerda	
  
Aprendizado	
  de	
  Máquina	
  –	
  	
  2	
  /	
  2015	
  
Agenda	
  
•  Introdução	
  ao	
  Desafio	
  
•  Abordagem	
  UAlizada	
  
•  Método	
  de	
  Aprendizado	
  
•  Implementação	
  do	
  Algoritmo	
  
•  Resultados	
  ObAdos	
  
•  Próximos	
  Passos	
  
2	
  
What’s	
  Cooking	
  
hUps://www.kaggle.com/c/whats-­‐cooking	
  
	
  
Obje2vo:	
  dado	
  um	
  conjunto	
  de	
  9.944	
  receitas,	
  classificar	
  cada	
  uma	
  delas	
  em	
  um	
  Apo	
  
de	
  culinária,	
  baseado	
  nos	
  seus	
  ingredientes.	
  
Dados	
  de	
  treinamento:	
  	
  
•  39.774	
  receitas	
  classificadas	
  de	
  acordo	
  com	
  o	
  Apo	
  de	
  culinária.	
  
•  20	
  Apos	
  de	
  culinária	
  (italian,	
  mexican,	
  southern_us,	
  indian,	
  ...)	
  
•  Exemplo:	
  
	
  
Universidade	
  Federal	
  Fluminense	
   3	
  
{
"id": 24717,
"cuisine": "indian",
"ingredients": [
"tumeric",
"vegetable stock",
"tomatoes",
"garam masala",
"naan",
"red lentils",
"red chili peppers",
"onions",
"spinach",
"sweet potatoes"
]
},
Abordagem	
  UAlizada	
  
Universidade	
  Federal	
  Fluminense	
   4	
  
Treinamento	
  
Classificação	
  
Dados	
  de	
  
Treinamento	
  
Classificação	
  de	
  Texto	
  com	
  Método	
  Supervisionado	
  de	
  Aprendizado	
  de	
  Máquina	
  
1
2
Modelo	
  
Classificador	
  
Receitas	
  a	
  
Classificar	
  
Receitas	
  
Classificadas	
  
Abordagem	
  UAlizada	
  
Universidade	
  Federal	
  Fluminense	
   5	
  
Algoritmo	
  de	
  
Aprendizado	
  de	
  
Máquina	
  
Treinamento	
  
	
  {	
  
	
  	
  	
  	
  "id":	
  2941,	
  
	
  	
  	
  	
  "cuisine":	
  "thai",	
  
	
  	
  	
  	
  "ingredients":	
  [	
  
	
  	
  	
  	
  	
  	
  "sugar",	
  
	
  	
  	
  	
  	
  	
  "hot	
  chili",	
  
	
  	
  	
  	
  	
  	
  "lime	
  juice"	
  
	
  	
  	
  	
  ]	
  
	
  	
  }	
  
...	
  
0	
   1	
   0	
  0	
   0	
   0	
  0	
   1	
   1	
   1	
  
feature	
  vector	
  
Extrator	
  de	
  Features	
  
(bag-­‐of-­‐words)	
  
Classe	
  
Dados	
  de	
  
Treinamento	
  
Modelo	
  
Classificador	
  
para	
  cada	
  receita	
  do	
  	
  
data	
  set	
  de	
  treinamento	
  
Abordagem	
  UAlizada	
  
Universidade	
  Federal	
  Fluminense	
   6	
  
Classificação	
  
	
  {	
  
	
  	
  	
  	
  "id":	
  8732,	
  
	
  	
  	
  	
  "cuisine":	
  "?",	
  
	
  	
  	
  	
  "ingredients":	
  [	
  
	
  	
  	
  	
  	
  	
  "salt",	
  
	
  	
  	
  	
  	
  	
  "rice",	
  
	
  	
  	
  	
  	
  	
  "black	
  beans"	
  
	
  	
  	
  	
  ]	
  
	
  	
  }	
  
...	
  
0	
   1	
   0	
  0	
   0	
   0	
  0	
   1	
   1	
   1	
  
feature	
  vector	
  
Extrator	
  de	
  Features	
  
(bag-­‐of-­‐words)	
  
Receitas	
  a	
  
Classificar	
  
Modelo	
  
Classificador	
  
Receitas	
  
Classificadas	
  
para	
  cada	
  receita	
  do	
  	
  
data	
  set	
  a	
  classificar	
  
Método	
  de	
  Aprendizado	
  
Qual	
  método	
  uAlizar?	
  
	
  
•  Diversos	
  métodos	
  podem	
  ser	
  usados	
  para	
  classificação	
  de	
  texto:	
  
Naive	
  Bayes,	
  LogisAc	
  Regression,	
  k-­‐NN,	
  Redes	
  Neurais,	
  SVM,	
  Ensembles.	
  
	
   	
   	
   	
   	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  (Mining	
  Text	
  Data,	
  Springer,	
  2012)	
  
	
  
•  Naïve	
  Bayes	
  foi	
  escolhido	
  para	
  o	
  trabalho,	
  pois	
  tem	
  algumas	
  
caracterísAcas	
  interessantes	
  para	
  este	
  caso:	
  
–  Boa	
  performance	
  
–  Simples	
  de	
  implementar	
  
–  Hipótese	
  de	
  independência	
  das	
  probabilidades	
  condicionais	
  é	
  aceitável	
  
•  Resultado	
  será	
  baseline	
  para	
  outros	
  métodos	
  
Universidade	
  Federal	
  Fluminense	
   7	
  
•  Teorema	
  de	
  Bayes	
  
	
  
Dado	
  uma	
  receita	
  r	
  e	
  uma	
  classe	
  c:	
  
	
  
•  Como	
  classificar	
  uma	
  nova	
  receita	
  r?	
  
	
  	
  
Obtendo	
  a	
  classe	
  que	
  gere	
  a	
  maior	
  P(c|r):
	
  
	
  
	
  
	
  	
  	
  
Sendo	
  que	
  	
  	
  	
  P(r|c)  =  P(w1,  w2,  w3,  ...,  wn  |  c)	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  (bag	
  of	
  words)	
  
	
  	
  	
  	
  
Assumindo	
  independência	
  entre	
  as	
  probabilidades	
  condicionais	
  (Naïve):	
  	
  	
  
	
  
P(r|c)  =  P(w1|c)  x  P(w2|c)  x  P(w3|c)  x  ...  x  P(wN|c)  
Naïve	
  Bayes	
  
Universidade	
  Federal	
  Fluminense	
   8	
  
Implementação	
  do	
  Algoritmo	
  
•  Linguagem	
  Python	
  
–  Simples	
  e	
  bastante	
  uAlizada	
  em	
  referências	
  da	
  área	
  
–  Trabalha	
  bem	
  com	
  operações	
  em	
  vetores	
  (NumPy)	
  
•  Duas	
  funções	
  principais:	
  
–  	
  trainNB(trainRecipes,	
  vocabulary,	
  classes)	
  
–  	
  classifyNB(pc,	
  pwc,	
  ingredFeatVector)	
  
•  Código-­‐fonte:	
  
–  hUps://github.com/placerda/whatscooking	
  
Universidade	
  Federal	
  Fluminense	
   9	
  
Resultados	
  ObAdos	
  
•  Naïve	
  Bayes	
  
–  train	
  dataset	
  size:	
  39.774	
  
–  recipes	
  classified:	
  9.944	
  
–  Accuracy:	
  0.57862	
  (10-­‐fold	
  cross	
  validaAon)	
  
•  Ranking:	
  
Universidade	
  Federal	
  Fluminense	
   10	
  
…	
  
…	
  
Próximos	
  Passos	
  
Aplicar	
  outros	
  métodos:	
  	
  
–  SVM	
  e	
  kNN	
  
(A	
  loss	
  funcAon	
  analysis	
  for	
  classificaAon	
  methods	
  in	
  text	
  categorizaAon.Li,	
  Fan,	
  and	
  Yiming	
  Yang.	
  2003.)	
  
•  OAmizar	
  NB	
  
–  upweigh(ng	
  Adicionar	
  pesos	
  manualmente	
  
(um	
  ingrediente	
  tem	
  mais	
  peso	
  que	
  outro	
  em	
  determinadas	
  classes)	
  
•  Preparar	
  os	
  dados:	
  normalização,	
  stemming,	
  etc.	
  
–  “50%	
  less	
  sodium	
  black	
  beans”	
  	
  
–  “black	
  beans”	
  	
  
Universidade	
  Federal	
  Fluminense	
   11	
  
“black	
  beans”	
  
Obrigado!	
  
12	
  Aprendizado	
  de	
  Máquina	
  –	
  	
  2	
  /	
  2015	
  
Distribuição	
  Dados	
  de	
  Treinamento	
  
Aula	
  5	
  -­‐	
  21/09/2010	
   13	
  

Contenu connexe

Similaire à Tarefa Data Mining - Classificação de Textos

Unidade 0: Visão geral sobre o método científico
Unidade 0: Visão geral sobre o método científicoUnidade 0: Visão geral sobre o método científico
Unidade 0: Visão geral sobre o método científico
Alexandre Duarte
 
aula_00_apresentacao_programacao_python.pdf
aula_00_apresentacao_programacao_python.pdfaula_00_apresentacao_programacao_python.pdf
aula_00_apresentacao_programacao_python.pdf
andersonsoares275191
 

Similaire à Tarefa Data Mining - Classificação de Textos (14)

Um Mecanismo de Auto Elasticidade com base no Tempo de Resposta para Ambiente...
Um Mecanismo de Auto Elasticidade com base no Tempo de Resposta para Ambiente...Um Mecanismo de Auto Elasticidade com base no Tempo de Resposta para Ambiente...
Um Mecanismo de Auto Elasticidade com base no Tempo de Resposta para Ambiente...
 
00011
0001100011
00011
 
UMA TÉCNICA DE APRENDIZAGEM DE MÁQUINA BASEADA EM ÁRVORES DE DECISÃO: Um Est...
UMA TÉCNICA DE APRENDIZAGEM DE MÁQUINA BASEADA EM ÁRVORES DE  DECISÃO: Um Est...UMA TÉCNICA DE APRENDIZAGEM DE MÁQUINA BASEADA EM ÁRVORES DE  DECISÃO: Um Est...
UMA TÉCNICA DE APRENDIZAGEM DE MÁQUINA BASEADA EM ÁRVORES DE DECISÃO: Um Est...
 
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
 
Estrutura de Dados II - Plano de Ensino
Estrutura de Dados II - Plano de EnsinoEstrutura de Dados II - Plano de Ensino
Estrutura de Dados II - Plano de Ensino
 
Aprendizado de Máquina Supervisionado na Predição de Links em Redes Complexas...
Aprendizado de Máquina Supervisionado na Predição de Links em Redes Complexas...Aprendizado de Máquina Supervisionado na Predição de Links em Redes Complexas...
Aprendizado de Máquina Supervisionado na Predição de Links em Redes Complexas...
 
Sistemas Inteligentes para Textos da Web
Sistemas Inteligentes para Textos da WebSistemas Inteligentes para Textos da Web
Sistemas Inteligentes para Textos da Web
 
GOTEST-Aula2.1-Planejamento.pdf
GOTEST-Aula2.1-Planejamento.pdfGOTEST-Aula2.1-Planejamento.pdf
GOTEST-Aula2.1-Planejamento.pdf
 
Weka básico
Weka básicoWeka básico
Weka básico
 
Unidade 0: Visão geral sobre o método científico
Unidade 0: Visão geral sobre o método científicoUnidade 0: Visão geral sobre o método científico
Unidade 0: Visão geral sobre o método científico
 
aula_00_apresentacao_programacao_python.pdf
aula_00_apresentacao_programacao_python.pdfaula_00_apresentacao_programacao_python.pdf
aula_00_apresentacao_programacao_python.pdf
 
Aplicação de Técnicas de Mineração de Dados para o Mapeamento do Conhecimento...
Aplicação de Técnicas de Mineração de Dados para o Mapeamento do Conhecimento...Aplicação de Técnicas de Mineração de Dados para o Mapeamento do Conhecimento...
Aplicação de Técnicas de Mineração de Dados para o Mapeamento do Conhecimento...
 
PTI - PILHA em Python.pdf
PTI - PILHA em Python.pdfPTI - PILHA em Python.pdf
PTI - PILHA em Python.pdf
 
ed_aula01.pdf
ed_aula01.pdfed_aula01.pdf
ed_aula01.pdf
 

Plus de Paulo Lacerda

Innovate2014 ea 1833
Innovate2014 ea 1833Innovate2014 ea 1833
Innovate2014 ea 1833
Paulo Lacerda
 
Innovate2014 dev 1265
Innovate2014 dev 1265Innovate2014 dev 1265
Innovate2014 dev 1265
Paulo Lacerda
 
Modelagem de Software - Palestra RIORUG - Outubro 2013
Modelagem de Software - Palestra RIORUG - Outubro 2013Modelagem de Software - Palestra RIORUG - Outubro 2013
Modelagem de Software - Palestra RIORUG - Outubro 2013
Paulo Lacerda
 
Improving Predictability and Efficiency with Kanban Metrics using Rational In...
Improving Predictability and Efficiency with Kanban Metrics using Rational In...Improving Predictability and Efficiency with Kanban Metrics using Rational In...
Improving Predictability and Efficiency with Kanban Metrics using Rational In...
Paulo Lacerda
 
Case Study: How Caixa Econômica in Brazil Uses IBM® Rational® Insight and Per...
Case Study: How Caixa Econômica in Brazil Uses IBM® Rational® Insight and Per...Case Study: How Caixa Econômica in Brazil Uses IBM® Rational® Insight and Per...
Case Study: How Caixa Econômica in Brazil Uses IBM® Rational® Insight and Per...
Paulo Lacerda
 

Plus de Paulo Lacerda (10)

Containers, Kubernetes e porque estamos falando tanto disso…
Containers, Kubernetes e porque estamos falando tanto disso…Containers, Kubernetes e porque estamos falando tanto disso…
Containers, Kubernetes e porque estamos falando tanto disso…
 
Tarefa Data Mining - Classificação de Textos
Tarefa Data Mining - Classificação de TextosTarefa Data Mining - Classificação de Textos
Tarefa Data Mining - Classificação de Textos
 
Aspera Transferência de Arquivos em Alta Velocidade
Aspera Transferência de Arquivos em Alta VelocidadeAspera Transferência de Arquivos em Alta Velocidade
Aspera Transferência de Arquivos em Alta Velocidade
 
DevOps - Entrega Contínua de Software
DevOps - Entrega Contínua de SoftwareDevOps - Entrega Contínua de Software
DevOps - Entrega Contínua de Software
 
Innovate2014 ea 1833
Innovate2014 ea 1833Innovate2014 ea 1833
Innovate2014 ea 1833
 
Innovate2014 dev 1265
Innovate2014 dev 1265Innovate2014 dev 1265
Innovate2014 dev 1265
 
Modelagem de Software - Palestra RIORUG - Outubro 2013
Modelagem de Software - Palestra RIORUG - Outubro 2013Modelagem de Software - Palestra RIORUG - Outubro 2013
Modelagem de Software - Palestra RIORUG - Outubro 2013
 
Improving Predictability and Efficiency with Kanban Metrics using Rational In...
Improving Predictability and Efficiency with Kanban Metrics using Rational In...Improving Predictability and Efficiency with Kanban Metrics using Rational In...
Improving Predictability and Efficiency with Kanban Metrics using Rational In...
 
1214 deploying rational insight in a heterogenous environment
1214 deploying rational insight in a heterogenous environment1214 deploying rational insight in a heterogenous environment
1214 deploying rational insight in a heterogenous environment
 
Case Study: How Caixa Econômica in Brazil Uses IBM® Rational® Insight and Per...
Case Study: How Caixa Econômica in Brazil Uses IBM® Rational® Insight and Per...Case Study: How Caixa Econômica in Brazil Uses IBM® Rational® Insight and Per...
Case Study: How Caixa Econômica in Brazil Uses IBM® Rational® Insight and Per...
 

Tarefa Data Mining - Classificação de Textos

  • 1. What’s  Cooking   Um  Desafio  de  Classificação  de  Textos   Mineração  de  Dados   2º  Semestre  de  2015   Professor:  Alexandre  PlasAno   Aluno:  Paulo  Lacerda  
  • 2. Aprendizado  de  Máquina  –    2  /  2015   Agenda   •  Introdução  ao  Desafio   •  Abordagem  UAlizada   •  Método  de  Aprendizado   •  Implementação  do  Algoritmo   •  Resultados  ObAdos   •  Próximos  Passos   2  
  • 3. What’s  Cooking   hUps://www.kaggle.com/c/whats-­‐cooking     Obje2vo:  dado  um  conjunto  de  9.944  receitas,  classificar  cada  uma  delas  em  um  Apo   de  culinária,  baseado  nos  seus  ingredientes.   Dados  de  treinamento:     •  39.774  receitas  classificadas  de  acordo  com  o  Apo  de  culinária.   •  20  Apos  de  culinária  (italian,  mexican,  southern_us,  indian,  ...)   •  Exemplo:     Universidade  Federal  Fluminense   3   { "id": 24717, "cuisine": "indian", "ingredients": [ "tumeric", "vegetable stock", "tomatoes", "garam masala", "naan", "red lentils", "red chili peppers", "onions", "spinach", "sweet potatoes" ] },
  • 4. Abordagem  UAlizada   Universidade  Federal  Fluminense   4   Treinamento   Classificação   Dados  de   Treinamento   Classificação  de  Texto  com  Método  Supervisionado  de  Aprendizado  de  Máquina   1 2 Modelo   Classificador   Receitas  a   Classificar   Receitas   Classificadas  
  • 5. Abordagem  UAlizada   Universidade  Federal  Fluminense   5   Algoritmo  de   Aprendizado  de   Máquina   Treinamento    {          "id":  2941,          "cuisine":  "thai",          "ingredients":  [              "sugar",              "hot  chili",              "lime  juice"          ]      }   ...   0   1   0  0   0   0  0   1   1   1   feature  vector   Extrator  de  Features   (bag-­‐of-­‐words)   Classe   Dados  de   Treinamento   Modelo   Classificador   para  cada  receita  do     data  set  de  treinamento  
  • 6. Abordagem  UAlizada   Universidade  Federal  Fluminense   6   Classificação    {          "id":  8732,          "cuisine":  "?",          "ingredients":  [              "salt",              "rice",              "black  beans"          ]      }   ...   0   1   0  0   0   0  0   1   1   1   feature  vector   Extrator  de  Features   (bag-­‐of-­‐words)   Receitas  a   Classificar   Modelo   Classificador   Receitas   Classificadas   para  cada  receita  do     data  set  a  classificar  
  • 7. Método  de  Aprendizado   Qual  método  uAlizar?     •  Diversos  métodos  podem  ser  usados  para  classificação  de  texto:   Naive  Bayes,  LogisAc  Regression,  k-­‐NN,  Redes  Neurais,  SVM,  Ensembles.                                    (Mining  Text  Data,  Springer,  2012)     •  Naïve  Bayes  foi  escolhido  para  o  trabalho,  pois  tem  algumas   caracterísAcas  interessantes  para  este  caso:   –  Boa  performance   –  Simples  de  implementar   –  Hipótese  de  independência  das  probabilidades  condicionais  é  aceitável   •  Resultado  será  baseline  para  outros  métodos   Universidade  Federal  Fluminense   7  
  • 8. •  Teorema  de  Bayes     Dado  uma  receita  r  e  uma  classe  c:     •  Como  classificar  uma  nova  receita  r?       Obtendo  a  classe  que  gere  a  maior  P(c|r):             Sendo  que        P(r|c)  =  P(w1,  w2,  w3,  ...,  wn  |  c)                                                  (bag  of  words)           Assumindo  independência  entre  as  probabilidades  condicionais  (Naïve):         P(r|c)  =  P(w1|c)  x  P(w2|c)  x  P(w3|c)  x  ...  x  P(wN|c)   Naïve  Bayes   Universidade  Federal  Fluminense   8  
  • 9. Implementação  do  Algoritmo   •  Linguagem  Python   –  Simples  e  bastante  uAlizada  em  referências  da  área   –  Trabalha  bem  com  operações  em  vetores  (NumPy)   •  Duas  funções  principais:   –   trainNB(trainRecipes,  vocabulary,  classes)   –   classifyNB(pc,  pwc,  ingredFeatVector)   •  Código-­‐fonte:   –  hUps://github.com/placerda/whatscooking   Universidade  Federal  Fluminense   9  
  • 10. Resultados  ObAdos   •  Naïve  Bayes   –  train  dataset  size:  39.774   –  recipes  classified:  9.944   –  Accuracy:  0.57862  (10-­‐fold  cross  validaAon)   •  Ranking:   Universidade  Federal  Fluminense   10   …   …  
  • 11. Próximos  Passos   Aplicar  outros  métodos:     –  SVM  e  kNN   (A  loss  funcAon  analysis  for  classificaAon  methods  in  text  categorizaAon.Li,  Fan,  and  Yiming  Yang.  2003.)   •  OAmizar  NB   –  upweigh(ng  Adicionar  pesos  manualmente   (um  ingrediente  tem  mais  peso  que  outro  em  determinadas  classes)   •  Preparar  os  dados:  normalização,  stemming,  etc.   –  “50%  less  sodium  black  beans”     –  “black  beans”     Universidade  Federal  Fluminense   11   “black  beans”  
  • 12. Obrigado!   12  Aprendizado  de  Máquina  –    2  /  2015  
  • 13. Distribuição  Dados  de  Treinamento   Aula  5  -­‐  21/09/2010   13