Mineração de Dados Profª Ma. CLEIANE GONÇALVES OLIVEIRA
Agenda Mineração de Dados Ferramenta Weka Técnicas de mineração Aplicações Sistemas de recomendação PrefRec
O que é mineração de dados?
Histórico
Histórico Crescimento explosivo na capacidade de gerar, coletar e armazenar dados Barateamento de componentes e ambientes computacionais Exigências científicas / sociais Mudança de paradigmas (maior uso de tecnologia)
Histórico
Aquisição de Dados http://pennystocks.la/internet-in-real-time/
Tsunami de dados O que fazer com tantos dados? Será que existe alguma informação contida nessa quantidade de dados? Como identificar Padrões Exceções Tendências Correlações O que existe de interessante nestes dados?
Para quê? Vantagem competitiva Informações obtidas não são óbvias e triviais Direcionar uma comunicação adequada para cada tipo de público Saber e entender as necessidades dos consumidores Avaliar informações rapidamente é fator de diferenciação Informação vale dinheiro!
Data Mining permite que: Um supermercado melhore a disposição de seus produtos nas prateleiras, através do padrão de consumo de seus clientes; Uma companhia de marketing direcione o envio de mensagens promocionais, obtendo melhores retornos; Empresas planejem melhor a logística de distribuição dos seus produtos, prevendo picos nas vendas; Empresas possam economizar identificando fraudes. PONNIAH, P. Data Warehousing Fundamentals: A Comprehensive Guide for IT Professionals. John Wiley and Sons, Inc, 2001.
Exemplos Walmart A mineração de dados apontou que às sextasfeiras as vendas de cerveja cresciam na mesma proporção que as de fraldas. Em geral, os compradores eram homens, que saíam à noite para comprar fraldas e aproveitavam para levar algumas latinhas para casa. Decisões administrativas: Os produtos foram postos lado a lado. Resultado: a venda de fraldas e cervejas disparou. http://convergecom.com.br/tiinside/webinside/25/11/2013/fral das-cervejas-e-big-data/#.vgp1-vnf9qu
Exemplos Vestibular PUC-RJ Regra obtida: se o candidato é do sexo feminino, trabalha e teve aprovação com boas notas no vestibular, NÃO efetiva matrícula. Observação do comportamento: uma mulher na idade de vestibular, se trabalha é porque precisa, e neste caso deve ter feito inscrição para ingressar na universidade pública gratuita. Se teve boas notas, provavelmente, foi aprovada na universidade pública onde efetivará matrícula. Decisões?
Como
KDD Fonte http://www.lac.inpe.br/~rafael.santos/do cs/cti2010/introdm.pdf Knowledge Discovery Databases
Preparação dos Dados Numéricos Discretos ou contínuos Categóricos Nominais Ordinais Limpeza dos dados Integração dos dados Transformação dos dados Redução dos dados Processo de preparação dos dados compreende até 50% de todo o processo. OLSON, D. L; DELEN, D. Advanced Data Mining Techniques. Springer, 2008
Tarefas de Mineração Descobrir um certo tipo de PADRÃO Tarefas PREDITIVAS Classificação Tarefas DESCRITIVAS Associação Agrupamento
Sistemas de mineração Clementine WEKA Oracle Data Mining (ODM) Intelligent Miner (IBM) DBMiner Enterprise Miner MineSet Genamics Expressions Rapid Miner
Ferramenta Weka
http://www.cs.waikato.ac.nz/ml/weka/
Ferramenta Weka Universidade de Waikato (Nova Zelândia) Implementado desde 1997 GNU General Public License (GPL) Linguagem Java GUI para interagir com arquivos de dados e produzir resultados visuais API geral, assim é possível incorporar o WEKA, como qualquer outra biblioteca, a seus próprios aplicativos.
Ferramenta WEKA Livro de referência sobre WEKA Curso sobre Weka https://weka.waikato.ac.nz/moredataminingwi thweka/course
http://archive.ics.uci.edu/ml/
Weka com MySQL http://www.devmedia.com.br/mineraca o-de-dados-no-mysql-com-a-ferramentaweka/26360
Regras de Associação
Regras de Associação
Regras de Associação
Regras de Associação Descobrir combinações de itens ou valores de atributos que ocorrem com frequência significativa em uma base de dados 50% das compras que contêm fraldas, também contêm cerveja. 15% de todas as compras contêm os dois produtos. {fraldas} => {cerveja} A compra do produto milho verde aumenta em 5 vezes a chance de um cliente comprar ervilhas. {milho verde} => {ervilhas}
Regras de Associação
Regras de Associação Suporte de A1, A2, A3 A4 número de clientes que compraram A1,A2,A3,A4 Total de clientes Confiança de A1, A2, A3 A4 número de clientes que compraram A1,A2,A3,A4 número de clientes que compraram A1,A2,A3 http://www.deamo.prof.ufu.br/
ID Compras 1 Pão, Leite, Manteiga 2 Leite, Açucar 3 Leite, Manteiga 4 Manteiga, Açúcar 5 Manteiga, Pão Leite Manteiga Suporte = 2 5 = 40% Confiança = 2 3 = 66% Se o cliente compra Leite então compra Manteiga em 66% dos casos. Esta regra aplica-se a 40% das compras.
ID Compras 1 Pão, Leite, Manteiga 2 Leite, Açucar 3 Leite, Manteiga 4 Manteiga, Açúcar 5 Manteiga, Pão Manteiga Leite Suporte = 2 = 40% 5 Confiança = 2 = 50% 4 Se o cliente compra Manteiga então compra Leite em 50% dos casos. Esta regra aplica-se a 40% das compras.
Regras de Associação Passos Cliente inclui artigo A no cesto A loja conhece a regra A=> B A regra tem uma certa confiança (>20%) A loja informa que o artigo B pode interessar ao cliente O cliente decide comprar o artigo ou não Notas As regras são descobertas a partir da atividade comercial A descoberta é feita off-line A utilização das regras descobertas é feita on-line
Regras de Associação Ações possíveis Colocar a manteiga perto do leite Criar uma promoção que inclua manteiga e leite Vender um conjunto de produtos (pack) de manteiga e leite
Regras de Associação Weka Arquivo compras.arff Valores categóricos {sim, não}
Formato ARFF CABEÇALHO Atributos numéricos (real ou numeric) E categóricos DADOS
Regras de Associação Análise dos dados Algoritmo de associação Parâmetros Cesta_Compras Eliminar colunas desnecessárias
Classificação
Classificação Seguradora de automóveis Sexo Idade Acidente F 45 Não M 25 Sim F 18 Não F 32 Não M 37 Não M 18 Sim
Classificação Sexo Idade Acidente F 45 Não F 18 Não F 32 Não M 37 Não M 18 Sim M 25 Sim
Classificação O que é um classificador? Classificação é uma técnica que consiste na aplicação de um conjunto de exemplos pré-classificados para desenvolver um modelo capaz de classificar uma população maior de registros.
Etapas do Processo Amostras Classificadas REGRAS Banco de Testes Classificador REGRAS CONFIÁVEIS
Etapas do Processo Amostras Classificadas
Amostras classificadas Nome Idade Renda Profissão Classe Daniel 30 Média Estudante Sim João 31..50 Média-Alta Professor Sim Carlos 31..50 Média-Alta Engenheiro Sim Maria 31..50 Baixa Vendedora Não Paulo 30 Baixa Porteiro Não Otavio > 60 Média-Alta Aposentado Não
Etapas do Processo Amostras Classificadas REGRAS Classificador
Se Regras idade = 41..50 e Renda = Media-Alta então ClasseProdEletr = Sim. Se Renda = Baixa então ClasseProdEletr = Nao.
Etapas do Processo Amostras Classificadas REGRAS Banco de Testes Classificador
Nome Banco Idade de testes Renda Profissão Classe Pedro 41.. 50 Média-Alta Ecologista Não José 41.. 50 Média-Alta Professor Não Luiza 41.. 50 Média-Alta Assistente Social Não Carla 30 Baixa Vendedora Não Wanda 30 Baixa Faxineira Não Felipe > 60 Média-Alta Aposentado Não Se idade = 41..50 e Renda = Media-Alta então ClasseProdEletr = Sim. Se Renda = Baixa então ClasseProdEletr = Nao. Acurácia: 50%
Etapas do Processo Amostras Classificadas REGRAS Banco de Testes Classificador REGRAS CONFIÁVEIS
Classificadores Classificadores eager Árvore de decisão Classificadores lazy Knn
Classificação Árvore de decisão
Árvore de decisão Nós: testes sobre os atributos Folhas: determinação das classes Muito utilizada por ser facilmente interpretável
Árvore de decisão Cada caminho é uma regra Classificação de uma nova tupla: busca caminho ao enquadrar cada atributo na condição correspondente ao nó associado a tal atributo.
Árvore de decisão Weka Arquivo jogar_golfe
Árvore de decisão Arquivo jogar_golfe J48 Acurácia= 64 %
Árvore de decisão Arquivo bmw J48
Classificação K Nearest Neighbors KNN
KNN Uma tupla X = (x1,...,xn) não classificada Calcula-se a distância de X a cada uma das tuplas do banco de dados.
KNN Pega-se as k tuplas do banco de dados mais próximas de X. A classe de X é a classe que aparece com mais frequência entre as k tuplas mais próximas de X. K = 3
KNN K = 1 K = 2 K = 3
KNN Jogar_golfe Ibk Acurácia:??? Bmw Dispendiosa computacionalmente Necessidade de definir o parâmetro k
Classificação Classificador Bayesiano
Classificadores Bayesianos Classificadores estatísticos Classificam um objeto numa determinada classe C baseando-se na probabilidade do objeto pertencer à classe C Vantagens Processo de classificação rápido Grande acurácia quando aplicados a grandes volumes de dados.
Classificador Bayesiano Simples Hipótese: atributos não-classe são independentes Valor de um atributo não influencia o valor de outros atributos Exemplo: Idade, Profissão, Renda não são independentes. Um médico tem uma probabilidade maior de ter uma renda alta do que um porteiro. Gênero, Cidade, Idade são independentes Porque considerar atributos independentes? Cálculos envolvidos no processo de classificação são simplificados
Classificação de uma tupla X Envolve o cálculo de todas as probabilidades condicionais P[Ci X] para todo i = 1,,n, onde n = número de classes A probabilidade mais alta corresponde à classe em que X será classificada P[Ci X] : Probabilidade Posterior
Exemplo Compra-computador ID IDADE RENDA ESTUDANTE CREDITO CLASSE 1 30 Alta Não Bom Não 2 30 Alta Não Bom Não 3 31...40 Alta Não Bom Sim 4 > 40 Média Não Bom Sim 5 > 40 Baixa Sim Bom Sim 6 > 40 Baixa Sim Excelente Não 7 31...40 Baixa Sim Excelente Sim 8 30 Média Não Bom Não 9 30 Baixa Sim Bom Sim 10 > 40 Média Sim Bom Sim 11 30 Média Sim Excelente Sim 12 31...40 Média Não Excelente Sim 13 31...40 Alta Sim Bom Sim 14 > 40 Média Não Excelente Não
Exemplo C1= sim, C2 = não Tupla desconhecida X = ( 30, Média,Sim,Bom) Precisamos maximizar P[X Ci] * P[Ci] para i =1,2 P[C1] = 9/14 = 0.643 P[C2] = 5/14 = 0.357 P[Idade 30 Compra = Sim ] = 2/9 = 0.222 P[Idade 30 Compra = Não ] = 3/5 = 0.6 P[Renda = Média Compra = Sim ] = 4/9 = 0.444 P[Renda = Média Compra = Não ] = 2/5 = 0.4 P[Est = sim Compra = Sim ] = 6/9 = 0.667 P[Est = sim Compra = Não ] = 1/5 = 0.2 P[Crédito = bom Compra = Sim ] = 6/9 = 0.667 P[Crédito = bom Compra = Não ] = 2/5 = 0.4
Exemplo P[X C1] = 0.222*0.444*0.667*0.667 = 0.044 P[X C2] = 0.6*0.4*0.2*0.4 = 0.019 P[X C1]*P[C1] = 0.044*0.643 = 0.028 P[X C2]*P[C2] = 0.019*0.357 = 0.007 Tupla X classificada na classe C1 (compra computador = sim)
Weka Bmw NaiveBayes Acurácia:???
Redes Bayesianas de Crença (Belief Bayesian Networks) Utilizadas quando a probabilidade de um atributo assumir um valor depende da probabilidade de valores para os outros atributos. Não há independência entre os atributos
Redes Bayesianas Um grafo dirigido acíclico Cada vértice representa um atributo Arestas ligando os vértices representam as dependências entre os atributos. y X depende de Y Tabela de Probabilidade Condicional (CPT) para cada atributo Z x y x Y é pai de X z P[Z {X,Y}] CPT (Z)
Tabela CPT (Z) Linhas : possíveis valores do atributo Z Colunas : combinações possíveis de valores dos pais de Z Na posição (i,j) da tabela temos a probabilidade condicional de Z ter o valor da linha i e seus pais terem os valores especificados na coluna j.
Tabela CPT(Z) Valores de X = { 1, 3} Valores de Y = {2,4} Valores de Z = {5,6} X Y X = 1 X = 1 X = 3 X = 3 Y = 2 Y = 4 Y = 2 Y = 4 Z Z = 5 0.5 0.3 0.2 0.1 Z = 6 0.5 0.7 0.8 0.9
Exemplo HF F CP E RX+ D HF =história familiar E = Efisema F = fumante D = Dispnéia 1 CP = câncer de pulmão RX+ = raio X + 0 CPT(CP) CPT(HF) HF= 1 F = 1 HF= 1 F = 0 HF= 0 F = 1 HF= 0 F = 0 1 0.8 0.5 0.7 0.1 0 0.2 0.5 0.3 0.9 CPT(E) CPT(RX+) F=1 F= 0 CP=1 CP=0 1 0.03 0.2 1 0.9 0.02 0 0.97 0.8 0 0.1 0.98 HF 1 0.05 0 0.95 CPT(D) E=1, CP=1 E=1, CP=0 E=0, CP=1 E=0, CP=0 0.99 0.2 0.3 0.01 0.01 0.8 0.7 0.99 CPT(F) F 1 0.35 0 0.65
Cálculos X = (HF=1, F=1, E = 0, RX+ = 1, D=0) P[X CP=i] * P[CP=i] = P[HF=1] * P[F=1] * P[E=0 F=1] * P[RX=1 CP=i]*P[D=0 CP=i, E=0] * P[CP=i HF = 1, F=1]
Problemas É preciso descobrir : a topologia da rede e as tabelas de probabilidade CPT
Weka Bmw Bayesnet Acurácia:???
Classificação Comparação de classificadores
Critérios de Comparação dos Métodos Acurácia capacidade de classificar corretamente novas tuplas Rapidez tempo gasto na classificacao Robustez habilidade de classificar corretamente em presenca de ruidos e valores desconhecidos Escalabilidade eficiencia do classificador em grandes volumes de dados Interpretabilidade facilidade de um usuario entender as regras produzidas pelo classificador
Acurácia Taxa de erros Acc(M) = porcentagem das tuplas dos dados de teste que sao corretamente classificadas. Matriz de Confusão Classes Preditas C1 C2 Classes Reais C1 Positivos verdadeiros Falsos Negativos C2 Falsos Positivos Negativos verdadeiros
Outras medidas mais precisas Exemplo : acc(m) = 90% C1 = tem-câncer (4 pacientes) C2 = não-tem-câncer (500 pacientes) Classificou corretamente 454 pacientes que não tem câncer Acurácia = 454/504 = 90% Não acertou nenhum dos que tem câncer Pode ser classificado como bom classificador mesmo com acurácia alta?
Outras medidas mais precisas Precisão = true-pos true-pos + falso-pos % pacientes classificados corretamente com câncer dentre todos os que foram classificados com câncer Recall = true-pos true-pos + falso-neg % pacientes classificados corretamente com câncer dentre todos os que realmente tem câncer
Cross-Validation Validação Cruzada (k-fold Cross-validation) Dados iniciais são particionados em k partes D1,..., Dk de tamanhos aproximados Treinamento e testes são executados k vezes. Em cada iteração i (i=1...k) Di é escolhido para teste e o restante das partições são utilizadas como treinamento. Cada tupla de amostra é utilizada o mesmo número de vezes como tupla de treinamento e uma única vez como tupla de teste. Acurácia de um classificador = número total de tuplas bem classificadas nas k iterações dividido pelo total de tuplas no banco de dados original.
Cross-Validation
Comparação de classificadores Bmw Árvore de decisão Knn NaiveBayes BayesNet
Outros exemplos Diabetes Conjunto de dados sobre diagnóstico de diabetes Letter Reconhecimento de letras (20000 instancias) Observar o tempo Zoo Categorização de animais Leucemia Genótipo da doença
Aplicações Reconhecimento de voz Classificação de animais Mapas, definição de fronteiras Classificação automática de textos e imagens Reconhecimento de imagens (diagnóstico de doenças) Diagnóstico de pacientes Problemas em equipamentos mecânicos e elétricos Análise de crédito
Clusterização
Clusterização Encontrar grupos de objetos tais que os objetos de um grupo são similares (relacionados) e diferentes dos objetos de outros grupos.
Clusterização How many clusters? Six Clusters Two Clusters Four Clusters
a 1 a F 1 0 1 1 b M 0 0 1 1 a 2 a 3... c F 1 1 1 0 d F 1 0 0 0 e M 1 1 0 1 Nome Sexo Sintomas Número de Clusters = 3 a 2 a 4 a 1 a 8 a 6 a 11 Doença X a 7 Doença Y a a 9 10 a 5 Doença Z Conceito = Doença
Clusterização versus Classificação Classificação Aprendizado Supervisionado Amostras de treinamento são classificadas Número de Classes é conhecido Aprendizado por Exemplo Clusterização Aprendizado Não Supervisionado Aprendizado por Observação
O que é um cluster? Como definir a noção de Cluster? Protótipos Bem separados Um cluster é um conjunto de objetos no qual cada objeto está mais próximo (ou é mais similar) a objetos dentro do cluster do que qualquer objeto fora do cluster. Baseados em Protótipos Um cluster é um conjunto de objetos no qual cada objeto está mais próximo ao protótipo que define o cluster do que dos protótipos de quaisquer outros clusters. Em geral: Protótipo = centróide Os clusters encontrados tendem a ser globulares.
O que é um cluster? Esta definição é utilizada quando os clusters são irregulares ou entrelaçados e quando ruído e outliers estão presentes. Baseados em Densidade Um cluster é uma região densa rodeada por uma região de baixa densidade. No exemplo, temos 3 clusters = 3 regiões densas A ponte de outliers ligando as duas esferas foi dissolvida nos outros outliers.
Técnicas de Clusterização Particionamento K-means: K-medóides: PAM, CLARA, CLARANS Particional e baseada em protótipos. Encontra um número k de clusters (k é fornecido pelo usuário) que são representados por seus centróides.
Particionamento BD com n amostras K = número de clusters desejado ( parâmetro ) K n
Dados de Treinamento Matriz de dados padronizados x 11 x 12 x 13... x 1n x 21 x 22 x 23... x 2n x 31 x 32 x 33... x 3n............... x p1 x p2 x p3... x pn Matriz de dissimilaridade 0 0... 0 d(x 1,x 2 ) 0... 0 d(x 1,x 3 ) d(x 2,x 3 )... 0......... 0 d(x 1,x p ) d(x 2,x p )... 0 Distância Euclidiana d(x,y) = (x 1 -y 1 ) 2 + (x 2 -y 2 ) 2 +... + (x p y p ) 2 Outras distâncias : Manhattan, Minkowski, Ponderada
Algoritmo K-means Exemplo K = 3 + + + 2ª 1ª Iteração
Algoritmo K-Means Objetivo do método K-means Minimizar a soma dos erros (SSE = sum of square errors) Maximizar a coesão (no caso de documentos) K SSE = Σ Σ d(x,ci) 2 i = 1 x ɛ Ci Problemas: Como definir o centróide inicial? Como definir a quantidade de clusters?
Clusterização Weka Arquivo bmw_browsers.arff SimpleKMeans SSE:?? Arquivo bank.arff X: cluster Y: instance number Color: variar os atributos
Algoritmos Baseados em Densidade Definição: Clusters são regiões de alta densidade de padrões separadas por regiões com baixa densidade, no espaço de padrões. Algoritmos baseados em densidade são projetados para encontrar clusters segundo esta definição.
O que são regiões densas? Definição baseada em centros: Uma região densa é uma região onde cada ponto tem muitos pontos em sua vizinhança. Muitos?? Vizinhança?? Parâmetros de Ajuste
Parâmetros de Ajuste Vizinhança: raio Eps Muitos : MinPts Assim, uma região densa é uma região em que todos os pontos têm pelo menos MinPts pontos num raio de Eps ao seu redor Eps MinPts = 13
Parâmetros versus Tipos de clusteres Eps MinPt Resultado Alto Alto Poucos clusters, grandes e densos Baixo Baixo Muitos clusters, pequenos e menos densos Alto Baixo Clusters grandes e menos densos Baixo Alto Clusters pequenos e densos
Avaliação de desempenho: qualidade dos clusteres produzidos Agrupamentos descobertos por CLARANS
Avaliação de desempenho: qualidade dos clusteres produzidos Agrupamentos descobertos por DBSCAN
Vantagens e Desvantagens Vantagens Eficiente em tratar grandes bases de dados Menos sensível a ruídos Forma clusters de formato arbitrário Usuário não precisa especificar a quantidade de clusters Desvantagens Sensível aos parâmetros de entrada(eps e MinPt) Produz resultados não confiáveis se os clusteres têm densidades muito diferentes.
Clusterização Weka Arquivo bmw_browsers.arff DBScan SSE:?? Arquivo bank.arff X: cluster Y: instance number Color: variar os atributos
Aplicações
Árvore de Decisão para Classificação de Ocorrências de Dengue nos Municípios de Ilhéus e Itabuna http://www.cesmac.com.br/erbase2010/papers/wticg/65731.pdf
http://simposioinformatica.ifnmg.edu.br/?page_id=2
http://www.observatorio.inweb.org.br/
https://tecnoblog.net/151635/potencial-whatsapp-mineracao-de-dados/
https://www.facebook.com/notes/facebook-data-science/the-formation-of-love/10152064609253859
https://www.facebook.com/data
https://www.facebook.com/worldcup/map/support_flow
Privacidade? Tendências Mineração de séries temporais Mineração de grafos Mineração de textos Mineração em redes sociais Big Data
Bases de dados
Bases de Dados
http://www.upo.es/eps/bigs/datasets.html
Weka no código
Weka no código Minicurso WebMedia 2012 Análise de Informações Contextuais através de Técnicas de Aprendizagem de Máquina http://sws2012.ime.usp.br/download/webme dia2012_minicursos.pdf Weka na Munheca http://www.dcc.ufrj.br/~valeriab/dtm-wekana-munheca.pdf
Links úteis http://archive.ics.uci.edu/ml/index.html http://www.lac.inpe.br/~rafael.santos/docs/cti2010/introd M.pdf http://www.diegomacedo.com.br/data-mining-ganhaespaco-na-estrategia-empresarial/ http://www.dcc.ufrj.br/~valeriab/mab532.php http://imasters.com.br/artigo/5130/sql-server/data-miningna-pratica-arvores-de-decisao http://www.informatics.buu.ac.th/~ureerat/321641/weka/d ata%20sets/bookclub/ http://forumsoftwarelivre.com.br/2011/arquivos/palestras/d atamining Weka.pdf http://www.ibm.com/developerworks/opensource/library/ os-weka1/index.html
Tendências na área http://simposioinformatica.ifnmg.edu. br/?page_id=2 http://www.arida.ufc.br/site/
Sistemas de recomendação
movielens.umn.edu https://movielens.org/
Last.fm
E-commerce
Quem viu X comprou Y
Top-N
Sistemas de recomendação
Sistemas de recomendação Realizam a filtragem da informação para recomendar itens, que possam ser relevantes ao usuário. Muitas vezes as pessoas só sabem o que querem depois que você mostra a elas. Steve Jobs
Usuários Produtos Compras Preferências Avaliações
Content-based 10
Collaborative filtering
Collaborative filtering
movielens.umn.edu
Sistemas de recomendação Satisfação Fidelidade Aumento nas vendas Direcionamento Diversidade
DESAFIOS
Escalabilidade
Content-based 10 1.000.000 de filmes
Collaborative filtering 1.000.000 de usuários
Esparsidade Usuário Cervejas Animais Frutas Móveis Celulares Jogos Paulo X X João X X Márcia X X X Carlos X Ana X X Mauro X Joaquim
Esparsidade Usuário Cervejas Animais Frutas Móveis Celulares Jogos Paulo X X João X X Márcia X X X Carlos X Ana X X Mauro X Joaquim
Esparsidade Cold-start de usuário Usuário Cervejas Animais Frutas Móveis Celulares Jogos Paulo X X João X X Márcia X X X Carlos X Ana X X Mauro X Joaquim
Esparsidade Cold-start de item Usuário Cervejas Animais Frutas Móveis Celulares Jogos Paulo X X João X X Márcia X X X Carlos X Ana X X Mauro X Joaquim
Medidas de qualidade Acurácia
Novidade
Surpreender!!!
http://lenskit.org/
PREFREC: UMA METODOLOGIA PARA DESENVOLVIMENTO DE SISTEMAS DE RECOMENDAÇÃO UTILIZANDO ALGORITMOS DE MINERAÇÃO DE PREFERÊNCIAS Orientadora: Prof. Sandra de Amo Cleiane Gonçalves Oliveira
Filtragem Colaborativa [Resnick et al., 1994, CSCW] GroupLens: an open architecture for collaborative filtering of netnews.
Filtragem Colaborativa - Esparsidade Usuário Filme 1 Filme 2 Filme 3 Filme 4 Filme 5 Filme 6 Paulo X X João X X Márcia X X X Carlos Ana X X Mauro Joaqui m X X
Filtragem Colaborativa Cold-start de item Usuário Filme 1 Filme 2 Filme 3 Filme 4 Filme 5 Filme 6 Paulo X X João X X Márcia X X X Carlos Ana X X Mauro Joaqui m X X
Filtragem Colaborativa Cold-start de item Usuário Filme 1 Filme 2 Filme 3 Filme 4 Filme 5 Filme 6 Paulo X X João X X Márcia X X X Carlos Ana X X Mauro Joaqui m X X
Filtragem Colaborativa Cold-start de usuário Usuário Filme 1 Filme 2 Filme 3 Filme 4 Filme 5 Filme 6 Paulo X X João X X Márcia X X X Carlos Ana X X Mauro Joaqui m X X
Baseado em Conteúdo 10
Desafios Desafios Cold-start de item Over specialization Esparsidade dos dados Cold-start de usuário Escalabilidade
Trabalhos correlatos [LIEBERMAN, 1995, IJCAI] Perfil do usuário baseado em palavras chaves [BILLSUS e PAZZANI, 2000, User Model. U. Adapt. Interact.] Descarte de itens muito similares [AHN et al., 2007, WWW2007] Perfis separados para diferentes assuntos [BLANCO-FERNANDES et al., 2008, IEEE Trans. Cons. Electronics] Análise semântica e ontologias [IAQUINTA et al., 2008, Hybrid Intelligent Systems] Recomenda itens pouco similares ao perfil do usuário
Desafios Cold-start de item Over Specialization Esparsidade dos dados Cold-start de usuário Filtragem Colaborativa X X Baseado em Conteúdo Escalabilidade X X X X X X
Abordagens híbridas A maioria dos Sistemas de Recomendação usados na indústria são baseados em algum tipo de sistema híbrido. [AMATRIAIN, 2013, SIGKDD]
Trabalhos correlatos [KO e LEE, 2002, EC-WEB] CB e CF paralelos e agregados na recomendação [MELVILLE et al., 2002, Eighteenth National Conference on Articial Intelligence] CBCF: processamento offline CB e CF online [DEGEMMIS et al., 2007, User Modeling and User-Adapted Interaction] Perfis CB clusterizados para definição de vizinhos
PREFREC
PREFREC Metodologia híbrida entre as técnicas de Filtragem Colaborativa e Baseada em Conteúdo Utilização de algoritmos de mineração de preferências Tratamento do problema de cold-start de item
PrefRec
Representação dos usuários Item Avaliaçã o i 1 5 i 2 3 i 3 * i 4 1 Mpref i 1 i 2 i 3 i 4 i 1 0.50 0.63 * 0.83 i 2 0.37 0.50 * 0.75 i 3 * * 0.50 * i 4 0.17 0.25 * 0.50 f i 1, i 4 = h r i 1, i 4 x = r i 1, i 4 = r 1 r 4 = 5 1 = 5 h x = x x + 1 = 5 6 = 0.83
PrefRec
Agrupamento dos usuários i 1 i 2 i 3 i 4 i 1 i 2 i 1 0.50 i 3 0.63 i 4 * 0.83 i 1 i 2 i 3 i 4 i 1 0.50 0.63 * 0.83 i 2 0.37 0.50 * i 1 0.75 0.50 0.63 * 0.83 i 2 0.37 0.50 * 0.75 i 1 i 2 i i 3 * 3 i * 0.50 4 i * 2 0.37 0.50 * 0.75 i 3 * * 0.50 * i 1 0.50 0.63 * i 4 0.17 0.83 0.25 * 0.50 i 3 * * i 1 0.50 i 2 * i 3 i 4 i 4 0.17 0.25 * 0.50 i 1 i 2 i 3 i 4 i 2 0.37 0.50 * 0.75 i 4 0.17 i 1 0.50 0.25 0.63 * * 0.50 0.83 i 1 0.50 0.63 * 0.83 i 3 * * 0.50 * i 2 0.37 0.50 * 0.75 i 2 0.37 0.50 * 0.75 i 4 0.17 0.25 * 0.50 i 3 * * 0.50 * i 3 * * 0.50 * i 4 0.17 0.25 * 0.50 i 4 0.17 0.25 * 0.50 Clusterização
Agrupamento dos usuários i 1 i 2 i 3 i 4 i 1 0.50 0.63 * 0.83 i 2 0.37 0.50 * 0.75 i 3 * * 0.50 * i 4 0.17 0.25 * 0.50 i 1 i 2 i 3 i 4 i 1 i 0.50 1 i 0.63 2 i * 3 i 0.83 4 i 1 i 2 0.500.37 0.630.50 * * 0.830.75 i 2 i 3 0.37 * 0.50 * i 1 * 0.50 i 2 0.75 * i 3 i 4 i 3 i 4 * 0.17 i 1 * 0.50 0.25 0.50.63 * * * 0.50 0.83 i 1 i 2 i 3 i 4 i 1 0.50 0.63 * 0.83 i 2 0.37 i 1 0.50 i 2 * i 3 0.75 i 4 i 4 0.17 i 2 0.250.37 * 0.50 0.50 * 0.75 i 3 * * 0.50 * i 4 0.17 0.25 * 0.50 i 3 i 1 * 0.50 * 0.63 0.50 * * 0.83 i 4 i 2 0.170.37 0.250.50 * * 0.500.75 i 3 * * 0.50 * i 4 0.17 0.25 * 0.50
PrefRec
Agregação de preferências individuais MPref consensual i 1 i 2 i 3 i 4 i 1 0.50 0.63 * 0.83 i 2 0.37 0.50 * 0.75 i 1 i 3 i 2 * i 3 * i 4 0.50 * i 1 0.50 i 4 0.630.17 * 0.250.83 * 0.50 i 2 0.37 0.50 * i 1 0.75 i 2 i 3 i 4 i 3 * * i 1 0.50 0.50 * 0.63 * 0.83 i 4 0.17 0.25 i 2 * 0.37 0.50 0.50 * 0.75 i 3 * * 0.50 * i 1 i 2 i 3 i 4 i 1 0.50 0.63 * 0.83 i 2 0.37 0.50 * 0.75 i 3 * * 0.50 * i 4 0.17 0.25 * 0.50 i 4 0.17 0.25 * 0.50
Agregação de preferências individuais i 1 i 2 i 3 i 4 i 1 0.50 0.63 * 0.83 i 2 0.37 0.50 * 0.75 Cada grupo e suas respectivas Mpref s consensuais i 3 * * 0.50 * i 4 0.17 0.25 * 0.50 i 1 i 2 i 3 i 4 i 1 0.50 0.63 * 0.83 i 2 0.37 0.50 * 0.75 i 3 * * 0.50 * i 4 0.17 0.25 * 0.50 i 1 i 2 i 3 i 4 i 1 0.50 0.63 * 0.83 i 2 0.37 0.50 * 0.75 i 3 * * 0.50 * i 4 0.17 0.25 * 0.50
PrefRec
Mineração de preferências
Mineração de preferências i 1 i 2 i 3 i 4 i 1 0.50 0.63 * 0.83 i 2 0.37 0.50 * 0.75 Perfis de preferência θ = (C, M) i 3 * * 0.50 * i 4 0.17 0.25 * 0.50 Modelo i 1 i 2 i 3 i 4 i 1 0.50 0.63 * 0.83 i 2 0.37 0.50 * 0.75 i 3 * * 0.50 * i 4 0.17 0.25 * 0.50 i 1 i 2 i 3 i 4 i 1 0.50 0.63 * 0.83 i 2 0.37 0.50 * 0.75 Modelo i 3 * * 0.50 * i 4 0.17 0.25 * 0.50 Modelo
PrefRec
Recomendação i 1 i 2 i 3 i 4 i 1 0.50 0.63 * 0.83 i 2 0.37 0.50 * 0.75 i 3 * * 0.50 * i 4 0.17 0.25 * 0.50 Modelo i 1 i 2 i 3 i 4 Modelo i 1 0.50 0.63 * 0.83 i 2 0.37 0.50 * 0.75 i 3 * * 0.50 * i 4 0.17 0.25 * 0.50 i 1 i 2 i 3 i 4 i 1 0.50 0.63 * 0.83 i 2 0.37 0.50 * 0.75 i 3 * * 0.50 * i 4 0.17 0.25 * 0.50 i 1 i 2 i 3 i 4 i 1 0.50 0.63 * 0.83 i 2 0.37 0.50 * 0.75 i 3 * * 0.50 * i 4 0.17 0.25 * 0.50 Modelo
Recomendação i 1 i 2 i 3 i 4 i 1 0.50 0.63 * 0.83 i 2 0.37 0.50 * 0.75 i 3 * * 0.50 * i 4 0.17 0.25 * 0.50 Modelo
Contribuições Framework geral para Sistemas de Recomendação Framework flexível que permite o ajuste de várias técnicas em função das medidas de qualidade que se quer otimizar Neste trabalho focamos um estudo empírico nas medidas de cobertura e acurácia
Contribuições Utilização de algoritmos de Mineração de preferências Quais características dos itens são preferidas pelo usuário Nova proposta de representação de usuários em Sistemas de Recomendação O usuário é representado a partir da sua preferência por pares de itens Tratamento do problema de cold-start de item Recomendação de itens a partir de suas características
Contribuições Agregação de preferências Estudo de técnicas para agregar as preferências dos usuários de um grupo de forma que represente um senso comum Estudo de fatores que influenciam na performance da metodologia Constatamos qual dos módulos influencia mais na melhoria dos resultados das medidas de cobertura e acurácia
Validação da Metodologia PrefRec Fatores que influenciam no Desempenho da Metodologia Acurácia Cobertura Comparação com outros trabalhos Acurácia Cobertura Novidade Serendipity
Validação da Metodologia PrefRec Dados de teste (BD_100) 296 usuários 262 itens 67.971 avaliações 12.35% de esparsidade
Validação da Metodologia PrefRec Acurácia Precisão Revocação
Validação da Metodologia PrefRec Cobertura Itens desconhecidos do modelo Precisão Revocação
Fatores que influenciam no Desempenho da Metodologia Etapa 2 Agrupamento de usuários Etapa 3 Agregação de preferências Etapa 4 Mineração de preferências K-Means DBScan Cure Média aritmética Média ponderada pelo coeficiente de silhueta Quantificador fuzzy at least half Quantificador fuzzy as many as possible Quantificador fuzzy most Cprefminer Cprefminer*
Grupo de teste 1 Agrupamento de usuários Etapa 2 Agrupamento de usuários Etapa 3 Agregação de preferências Etapa 4 Mineração de preferências K-Means DBScan Cure Média aritmética Média ponderada pelo coeficiente de silhueta Quantificador fuzzy at least half Quantificador fuzzy as many as possible Quantificador fuzzy most Cprefminer Cprefminer*
Grupo de teste 1 Agrupamento de usuários BD_100 Acurácia Cobertura Precisão Revocação Precisão Revocação DBScan 76.10% 73.85% 63.16% 49.96% CURE 75.02% 71.64% 63.22% 48.57%
Grupo de teste 2 Agregação de Preferências Etapa 2 Agrupamento de usuários Etapa 3 Agregação de preferências Etapa 4 Mineração de preferências * [CHICLANA, 2001, Fuzzy Sets and Systems] K-Means DBScan Cure Média aritmética Média ponderada pelo coeficiente de silhueta Quantificador fuzzy at least half * Quantificador fuzzy as many as possible * Quantificador fuzzy most * Cprefminer Cprefminer*
Grupo de teste 2 Agregação de Preferências BD_100 (1) Média aritmética (2) Média ponderada pelo coeficiente de silhueta (3) Quantificador fuzzy Most Acurácia (4) Quantificador fuzzy At least half (5) Quantificador fuzzy As many as possible Cobertura Precisão Revocação Precisão Revocação (1) 76.10% 73.85% 63.16% 49.96% (2) 75.97% 73.71% 63.22% 50.12% (3) 63.82% 60.69% 56.92% 43.50% (4) 63.47% 60.41% 57.83% 43.79% (5) 63.83% 60.53% 59.05% 44.11%
Grupo de teste 3 Mineração de Preferências Etapa 2 Agrupamento de usuários Etapa 3 Agregação de preferências Etapa 4 Mineração de preferências K-Means DBScan Cure Média aritmética Média ponderada pelo coeficiente de silhueta Quantificador fuzzy at least half Quantificador fuzzy as many as possible Quantificador fuzzy most Cprefminer Cprefminer*
Grupo de teste 3 Mineração de Preferências CPrefMiner [de Amo et al, 2012, ICTAI]
Grupo de teste 3 Mineração de Preferências SE ENTÃO ator = Tom Hanks (gênero: drama > gênero: mistério) Contexto Preferência sobre os atributos dos itens CPrefMiner [de Amo et al, 2012, ICTAI]
Grupo de teste 3 Mineração de Preferências CPrefMiner* [de Amo et al., 2014, To appear] Acréscimo da Técnica de Range Voting em algoritmos de mineração de preferências Utiliza das inferências feitas pelo minerador de preferências para calcular preferências que o minerador não foi capaz de calcular ou retificar inferências feitas.
Grupo de teste 3 Mineração de Preferências BD_100 Precisão Acurácia Revocaçã o Precisão Cobertura Revocaçã o CprefMiner 76.10% 73.85% 63.16% 49.96% CprefMiner* 89.16% 88.49% 79.30% 78.79% O minerador de preferência é o fator que mais influencia no desempenho do Sistema de Recomendação.
Fatores que influenciam no Desempenho da Metodologia Etapa 2 Agrupamento de usuários DBScan Etapa 3 Agregação de preferências Etapa 4 Mineração de preferências Média aritmética Cprefminer*
Comparação com outros trabalhos CBCF [MELVILLE et al., 2002, Eighteenth National Conference on Articial Intelligence] Abordagem híbrida entre CF e CB; Tratamento do problema de cold-start de item; Predição de dados faltosos a partir da mineração de preferências sobre os atributos a partir de um classificador bayesiano.
Comparação com outros trabalhos XPrefRec Aplicação da abordagem CB para construção do modelo de preferências Comparação do usuário ativo com as MPref consensual de cada grupo Usuários representados por MPref Prediz relação de preferência Só recomenda itens sobre os quais consegue inferir algo O minerador CPrefMiner aplicado considera a dependência entre os atributos CBCF Aplicação da abordagem CB para predição de avaliações faltantes Comparação do usuário ativo com todos os usuários do sistema Usuários representados por vetor de avaliações Prediz notas para os itens Capaz de recomendar qualquer item Aplica um classificador bayesiano que considera os atributos como eventos independentes
Comparação com outros trabalhos Validação em bancos de dados mais esparsos
Comparação com outros trabalhos Acurácia Precisão Revocação
Comparação com outros trabalhos Cobertura Precisão Revocação
Comparação com outros trabalhos Novidade: Recomendação de itens pouco populares Definição de um ranking de 50 itens sobre os itens utilizados na medida de cobertura; Média de avaliações recebidas pelos usuários selecionados; Quanto menor o valor, melhor o Sistema se comporta em relação à novidade.
Comparação com outros trabalhos Novidade
Comparação com outros trabalhos Serendipity: Recomendação de itens surpreendentes Técnica proposta por [Shani e Gunawardana, 2011, Recommender Systems Handbook] Calcula o quanto os itens recomendados são distantes dos itens já conhecidos (treinamento) pelo usuário Ranking de 50 itens Quanto maior o valor, melhor o Sistema se comporta em relação à medida de serendipity.
Comparação com outros trabalhos Serendipity Diretor Idioma Ano Gênero Gênero Gênero Gênero Ator Ator Ator Ator Ator
Comparação com outros trabalhos Tempo de execução
Conclusão