Sistemas de Informação e Bases de Dados Sumário Pesquisa de informação implícita (data mining) Armazéns de dados Gabriel David FEUP - Rua dos Bragas, 4050-123 Porto - PORTUGAL Tel. 351 222041842 - Fax: 351 222000808 Email: [email protected] URL: http://www.fe.up.pt 1 Aplicações das bases de dados Processamento de transacções registo da actividade • exemplo: vendas em cadeia de retalho, com nome e cartão de crédito dos clientes, artigos comprados, preços pagos e datas de aquisição; tipo de artigo, fabricante, modelo, côr e tamanho; informação do cliente, história de crédito, rendimento anual, residência, idade, habilitações literárias grandes quantidades de informação armazenada pode permitir • detectar tendências e antecipar variações na procura • determinar padrões de consumo e orientar o marketing: são as mulheres jovens com rendimento alto que adquirem mais carros de desporto pequenos Sistemas de apoio à decisão processamentos para os quais SQL é pouco prático análise estatística de dados; recurso a pacotes de SW próprios técnicas de descoberta de conhecimento; data mining articulação de dados de fontes diversas num armazém de dados Informação implícita - 2 Análise de dados Funções de agregação (count, sum, avg, max, min) standard do SQL são insuficientes Geração de histogramas select percentil, avg(balanço) from conta group by N_tile(balanço, 3) as percentil -- 3 categorias Balanço 90 80 70 60 50 40 30 20 10 0 0-999 1000-2000 por percentis (não é SQL standard) >2000 por gamas (select ‘0-999’, avg(balanço) from conta where balanço < 1000) union (select ‘1000-1999’, avg(balanço) from conta where balanço between 1000 and 1999) union (select ‘> 2000’, avg(balanço) from conta where balanço > 2000) Informação implícita - 3 Dados multidimensionais tabela cruzada (diferente de uma tabela relacional) geradores de relatórios costumam fazer Vendas Claro Escuro Total Pequeno Médio Grande Total 8 35 10 20 10 5 28 45 15 53 35 88 relação estendida Vendas(côr, tamanho, quantidade) Vendas Côr Claro Claro Claro Claro Escuro Escuro Escuro Escuro Todos Todos Todos Todos Tamanho Quant Pequeno 8 Médio 35 Grande 10 Todos 53 Pequeno 20 Médio 10 Grande 5 Todos 35 Pequeno 28 Médio 45 Grande 15 Todos 88 - todos indica uma linha de agregação, ou de rollup; como gerar em SQL? - deslocar de granularidade grossa para fina é escavar, ou drill-down; requer os dados originais ou agregações mais finas - n dimensões: 2n subconjuntos de agregação representáveis como vértices de um hipercubo Informação implícita - 4 EIS Sistemas de Informação para Executivos dados multidimensionais com informação agregada a vários níveis e habitualmente com uma componente temporal configuração relativamente elaborada para um fim específico, por exemplo, controlar a execução orçamental ou a evolução da produção dados extraídos de uma BD e preprocessados para facilitar a visualização; implica actualizações periódicas e recondicionamentos mais ou menos demorados muito visual, com várias perspectivas sobre os dados e marcadores para os valores que se desviam mais do que um certo limite permite uma vista global e depois detalhar apenas alguns aspectos, por exemplo, um departamento com maus resultados Informação implícita - 5 Data Mining Encontrar informação relevante, descobrir conhecimento a partir de informação implícita, sob a forma de regras estatísticas ou padrões usa técnicas da Inteligência Artificial e das Redes Neuronais, em particular da Aprendizagem Automática diferença: a grande quantidade de dados que manipula obriga a guardá-los em disco e a desenvolver algoritmos eficientes para esse caso Informação implícita - 6 Representação do conhecimento Forma geral de uma regra X Consequente Antecedente Exemplo: relação Compra(transacção, artigo) Regra que significa quem compra pão também compra leite transacção T, compra(T, leite) compra(T, pão) população - valores que T pode tomar suporte - fracção da população que satisfaz o antecedente e o consequente; mede a significância estatística e o interesse prático; o valor mínimo depende da aplicação confiança - percentagem de casos em que, verificando-se o antecedente, também se verifica o consequente; normalmente estes valores andam longe dos 100% em aplicações de empresa Informação implícita - 7 Problemas de classificação descobrir regras que particionem os dados em grupos disjuntos objectivo: decidir da atribuição de um cartão de crédito sabe-se idade, habilitações, rendimento, residência e dívidas processo: • classificar uma amostra de clientes actuais como Excelente, Bom, Médio e Mau, com base na história de pagamentos; • procurar as regras que, usando o tipo de informação disponível sobre o cliente potencial, classificam correctamente os clientes existentes; • aplicar ao cliente potencial pessoas P, P.crédito=Excelente P.grau=Mestrado e P.rendimento>300 pessoas P, P.crédito=Bom P.grau=Licenciado ou (P.rendimento>100 e P.rendimento <300) Informação implícita - 8 Problemas de associação Lojas de retalho gostam de saber até que ponto a compra de certos produtos está associada quem compra pão compra leite, com suporte e confiança dados esta informação pode ser usada para colocar os produtos juntos e facilitar a vida ao cliente; ou para colocar os produtos em extremos opostos para obrigar os clientes a passar por outros produtos; ou para decidir não promover em simultâneo ambos os produtos, uma vez que quem compra um compra o outro Outra aplicação típica: análise de correlações em sequências exemplo: séries temporais, com informação sobre a evolução de acções e de obrigações em dias consecutivos Informação implícita - 9 Descoberta guiada pelo utilizador O utilizador formula uma hipótese e corre testes sobre a BD para a confirmar ou infirmar se a hipótese (exemplo: pessoas com mestrado tem bom comportamento no crédito) der uma confiança superior à média geral, pode considerar-se como interessante e tentar-se refiná-la a seguir com mais critérios que permitam aumentar essa confiança até valores elevados (perto de 1) mas sem deixar diminuir excessivamente o suporte os sistemas de visualização de dados são bons auxiliares na formulação de hipóteses quer de classificação, pela detecção de grupos, quer de associação, pela representação de matrizes coloridas função da percentagem de coincidências Informação implícita - 10 Descoberta de regras automática Área muito influenciada pelo trabalho em Machine-Learning Processo de descoberta de regras de classificação conjunto de treino: amostra de dados cujo agrupamento é conhecido (clientes existentes) o sistema de data-mining começa por considerar antecedentes com uma condição simples num único atributo de forma a obter conjuntos disjuntos • cada valor em atributos enumerados - habilitações = nenhuma, secundário, licenciatura, mestrado, gamas em atributos numéricos - rendimento de 0 a 100, 101 a 200, >201 se algum dos atributos for suficientemente discriminante, com elevada confiança e suporte, o processo pára Informação implícita - 11 Descoberta automática senão, escolhe-se o atributo que melhor particionar os dados como primeiro classificador e, dentro de cada grupo, repete-se o processo com outro atributo constrói-se assim uma árvore de classificação; em cada ramo, o processo pára quando se obtém uma boa classificação ou quando todos os atributos já foram considerados • o número de regras geradas pode ser reduzido se intervalos adjacentes pertencerem ao mesmo grupo de classificação e se se usarem técnicas de explorar vários ramos com uma só passagem nenhuma rendimento habilitações secundário licenciatura rendimento rendimento 0 a 100 bom 101 a 200 excelente mestrado rendimento >201 bom Informação implícita - 12 Descoberta de associações Se o número de itens com interesse não for muito grande, associa-se um bitmap a cada transacção com um bit por cada um deles; os que ocorrerem na transacção ficam a 1 para descobrir todas as regras da forma transacção T, compra(T, i0) compra(T, i1) e … e compra(T, in) tem que se considerar todos os subconjuntos dos itens com interesse, mantendo uma contagem do número de regras em que ocorrem simultanemente os itens de um conjunto com uma simples passagem, para cada transacção incrementa-se um contador se esta contiver todos os bits do conjunto os conjuntos com valores elevados no fim são os significativos Informação implícita - 13 Armazéns de dados Relacionar informação de toda uma grande organização pode significar juntar dados produzidos em muitos locais diferentes com sistemas operativos, bases de dados e linguagens diversas esquemas de dados incompatíveis dados históricos já não são mantidos pelos seus produtores e estão arquivados off-line um armazém de dados (data warehouse) é um repositório de informação coligida de várias fontes e armazenada sob um único esquema, num só local o objectivo é servir os sistemas de apoio à decisão que necessitam de dados históricos da empresa Informação implícita - 14 Arquitectura fonte de dados 1 fonte de dados 2 fonte de dados n carregadores SGBD de dados armazém de dados ferramentas de interrogação e análise Uma vez coligidos, os dados permanecem longamente para permitir análises históricas assim o suporte à decisão não interfere com o processamento das transacções Informação implícita - 15 Aspectos a considerar Como e quando coligir dados? Que esquema usar? Fontes têm esquemas e até modelos de dados diferentes parte das tarefas da data warehouse é executar a integração de esquemas e a correspondente conversão dos dados produzindo vistas materializadas Como propagar as actualizações? Iniciativa da fonte ou do destino; contínua ou periódica As actualizações nas fontes devem ser propagadas para o armazém, sem implicar uma cópia completa, mas sim incremental, sofrendo do problema da actualização de vistas Que dados agregar? Os dados primários das transacções podem ser demasiados para armazenar em-linha talvez se possa responder a muitas perguntas usando apenas valores agregados, obtidos da relação original, em vez desta (as perguntas continuam a ser feitas à relação original) Informação implícita - 16