Arquiteturas de software e linguagens de consultas para descoberta de conhecimento em BD Jacques Robin CIn-UFPE Especificação de uma tarefa de descoberta de conhecimento 1. Seleção dos dados relevantes: • qual fonte de dados? quais indivíduos ou grupos de indivíduos? quais atributos? quais relações? • fácil com consultas SQL ou MDX (MultiDimensional eXpression) 2. Viés de aprendizagem: • qualquer método de mineração explora espaço de hipótese potencialmente imenso • viés: especificação prévia de um sub-espaço alvo muito menor • ex, regras de associação com atributos obrigatórios na premissa ou na conclusão, com número de premissas ou conclusões dado... 3. Métodos de mineração: • qual tipo de conhecimento (árvore de decisão? regras de classificação? regras de associação?) • qual algoritmos de mineração (C4.5? PRISM?) Especificação de uma tarefa de descoberta de conhecimento 4. Medida de interesse das estruturas de conhecimento mineradas: • Medida de legibilidade/interpretabilidade L: concisão codificadas diretamente em termos de conceitos padrões da área • Medida de confiança/acurácia C: ex, C(A B) = | A B | / | A | • Medida de utilidade/aplicabilidade S: ex, S(A B) = | A B | / | DB | • Medida de novidade N: com respeito a outras estrutura já mineradas com respeito a expectativa codificada como conhecimento prévio • Interesse de estrutura I(E) = f( L, C, S, N) • Apresenta apenas estruturas de interesse superior a algum limiar L: I(E) L Table age young young old old high low high low A B C C 1,402 1,038 786 1,374 Crosstab income 5. Formato de apresentação: • • • • • income class count tabelas histogramas, pizzas gráficos 2D, gráficos 3D texto, hipertexto composição hipermídia de vários formatos Pie chart class A class age high low young old 1,402 1,038 786 1,374 1,402 1,038 0 0 0 2,160 count 2,188 2,412 1,402 1,038 2,160 A B class B class C class class class A B C Decision tree Data cube age? young class A c class C low class B s la s C old income? high C Bar chart age Especificação de uma tarefa de descoberta de conhecimento Rules age(X, ÒyoungÓ) and income(X, ÒhighÓ) 5> class(X, ÒAÓ) age(X,ÒyoungÓ) and income(X, ÒlowÓ) 5> class(X, ÒBÓ) age(X, ÒoldÓ) 5> class(X, ÒCÓ) B A young old 7861374 high low income Entrada, saída e parâmetros do processo de descoberta de conhecimento KDSE: Knowledge Discovery Support Environment Conhecimento prévio Interfaces de entrada Base de dados Interfaces de saída Conhecimento descoberto Algoritmos de mineração Interface de controle Especificação dos dados relevantes Viés de aprendizagem Método de mineração Medida de interesse Formato de apresentação Dimensões descritivas da tipologia das arquiteturas de ambientes de KDD Variedade dos serviços implementados: • horizontal: numero de passos suportados no processo de KDD • vertical: diversidade das técnicas para cada passos Grau de integração dos serviços implementados Abertura da arquitetura: • controle: via GUI, via API para software externo, via linguagem de consulta declarativa, via regras declarativas • entrada: via arquivo flat, via API para BD relacional, para data mart multidimensional, para BD não convencionais • saída: via GUI, via arquivo exportado, via API para BD, via API para software externo • código: fonte disponível ? orientado a objetos (linguagem, engenharia de software)? componentes reutilizáveis ? Integração do KDSE com SGBD e SGBC Sem Integração Com Integração Solta SGBC SGBD SGBC SGBD Arquivo KDSE Arquivo GUI API API SGBD KDSE API SGBC API GUI KDSE API Integração Apertada SGBC Arquivo Software externo SGBD KDSE SGBC Arquitetura do Weka GUI Arquivo SGBD relacional API Weka API Arquivo Software externo Código: • fonte disponíveis (GNU license freeware) • hierarquia de interfaces e classes 100% Java Arquitetura do DBMiner GUI Servidor OLAP SGBD relacional API API Algoritmos de mineração Interpretador DMQL DBMiner Limitações: • • • • implementado em C++ código fonte proprietário escondido sem API para comunicação externa interação apenas através do GUI Arquitetura do Inteligent Miner da IBM Interface do usuário Visualizador CLIENTE Ferramentas de Exportação Ambiente da camada API Definidor de Dados Biblioteca de Processamento Minerador Base de mining Resultados Kernel minerador Resultados API ( load) Resultados API ( save) Acesso a dados Meta Dados SERVIDOR Base de dados Arquivos flat Base de dados Arquitetura do MATRIKS Funcionalidades de uma linguagem declarativa de consulta para KDD Especificar: • Dados relevantes: idealmente baseado em linguagens de consulta de SGBD • Tipo de conhecimento a minerar • Algoritmo(s) de mineração a usar • Conhecimento prévio: idealmente baseado em linguagem de representação do conhecimento • Viés de aprendizagemsobre o espaço de hipótese a explorar idealmente baseado em linguagem de representação do conhecimento • Medidas e limiar de interesse do conhecimento a apresentar • Técnica de validação a usar e divisão dos dados entre conjuntos de treinamento e conjuntos de teste: simples treinar e testar, validação cruzada, leave-one-out, bootstrap • Formato da apresentação do conhecimento minerado Linguagens de consultas declarativas de descoberta de conhecimento Ainda: • próprio a cada KDSE, i.e., não existe padrão • ausente da imensa maioria dos KDSE • quando presente geralmente limitado a: um ou dois passos no processo de KDD um ou dois tipos de conhecimento a minerar não integrado com SQL ou MDX Principais: • Data Mining Query Language (DMQL) do DBMiner grande variedade de tipo de conhecimento integrado com SQL e MDX • OLE DB for Data Mining do SQL Server 2000 da Microsoft apenas 3 tipos de conhecimento integrado com SQL mas aparentemente não com MDX !? limitado demais para pegar como padrão de fato DMQL: especificação dos dados relevantes use database database_name, | use data warehouse data_warehouse_name from relation(s)/cube(s) [where condition] in relevance to att_or_dim_list order by order_list group by grouping_list having condition DMQL: especificação do tipo de conhecimento a minerar Caracterização: • Mine_Knowledge_Specification ::= mine characteristics [as pattern_name] analyze measure(s) Discriminação: • Mine_Knowledge_Specification ::= mine comparison [as pattern_name] for target_class where target_condition {versus contrast_class_i where contrast_condition_i} analyze measure(s) Associação: • Mine_Knowledge_Specification ::= mine associations [as pattern_name] DMQL: especificação do tipo de conhecimento a minerar (cont.) Classificação: • Mine_Knowledge_Specification ::= mine classification [as pattern_name] analyze classifying_attribute_or_dimension Evolução: • Mine_Knowledge_Specification ::= mine prediction [as pattern_name] analyze prediction_attribute_or_dimension {set {attribute_or_dimension_i= value_i}} DMQL: especificação das hierarquias conceituais Uso de hierarquia: use hierarchy <hierarchy> for <attribute_or_dimension> Definição de hierarquias: define hierarchy time_hierarchy on date as [date,month quarter,year] define hierarchy age_hierarchy for age on customer as level1: {young, middleAged, senior} < level0: all level2: {20, ..., 39} < level1: young level2: {40, ..., 59} < level1: middleAged level2: {60, ..., 89} < level1: senior define hierarchy age_hierarchy for age on customer as {age_category(1), ..., age_category(5)} := cluster(default, age, 5) < all(age) define hierarchy profit_margin_hierarchy on item as level_1: low_profit_margin < level_0: all if (price - cost)< $50 level_1: medium-profit_margin < level_0: all if ((price - cost) > $50) and ((price - cost) <= $250)) level_1: high_profit_margin < level_0: all if (price - cost) > $250 DMQL: especificação das medidas de interesse e do formato de apresentação Medidas de interesse: • with <interest_measure_name> threshold = threshold_value • exemplos: with support threshold = 0.05 with confidence threshold = 0.7 Formato: • display as <result_form> Granularidade: • Multilevel_Manipulation ::= roll up on attribute_or_dimension | drill down on attribute_or_dimension | add attribute_or_dimension | drop attribute_or_dimension DMQL: exemplo de consulta use database AllElectronics_db use hierarchy location_hierarchy for B.address mine characteristics as customerPurchasing analyze count% in relevance to C.age, I.type, I.place_made from customer C, item I, purchases P, items_sold S, works_at W, branch where I.item_ID = S.item_ID and S.trans_ID = P.trans_ID and P.cust_ID = C.cust_ID and P.method_paid = ``AmEx'' and P.empl_ID = W.empl_ID and W.branch_ID = B.branch_ID and B.address = ``Canada" and I.price >= 100 with noise threshold = 0.05 display as table OLE DB for Data Mining