tarefa data mining - classificação de textos
TRANSCRIPT
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