200 likes | 291 Views
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:
E N D
Arquiteturas de software e linguagens de consultas paradescoberta 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
Especificação de uma tarefa de descoberta de conhecimento 5. Formato de apresentação: • tabelas • histogramas, pizzas • gráficos 2D, gráficos 3D • texto, hipertexto • composição hipermídia de vários formatos
Entrada, saída e parâmetros do processo de descoberta de conhecimento KDSE: Knowledge DiscoverySupport Environment Conhecimento prévio Interfaces de entrada Interfaces de saída Conhecimento descoberto Base de dados Algoritmos de mineração Interface de controle Especificação dos dados relevantes Viés de aprendizagem Método de mineração Medida deinteresse 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 ?
SGBD SGBD KDSE KDSE SGBC Integração do KDSE com SGBD e SGBC SGBC Arquivo Arquivo SGBC Sem Integração KDSE SGBD Arquivo GUI API SGBC API SGBC Com Integração Solta KDSE SGBD API GUI API Software externo API Integração Apertada
Arquitetura do Weka • Código: • fonte disponíveis (GNU license freeware) • hierarquia de interfaces e classes 100% Java GUI Arquivo Weka Arquivo SGBD relacional API Software externo API
Arquitetura do 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 GUI Servidor OLAP API Algoritmos de mineração Interpretador DMQL SGBD relacional API DBMiner
Arquitetura do Inteligent Miner da IBM CLIENTE Interface do Visualizador Ferramentas usuário de Exportação Ambiente da camada API Definidor de Resultados Minerador Resultados Dados API ( load) Biblioteca de Kernel Resultados Base de Processamento minerador API ( save) mining Acesso a dados Meta Arquivos flat Base de Base de Dados dados dados SERVIDOR
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
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 Linguagens de consultas declarativas de descoberta de conhecimento
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}}
Uso de hierarquia: use hierarchy <hierarchy> for <attribute_or_dimension> Definição de hierarquias: define hierarchy time_hierarchyon dateas [date,month quarter,year] define hierarchy age_hierarchyfor 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 definehierarchyage_hierarchy forageoncustomeras {age_category(1), ..., age_category(5)} := cluster(default, age, 5) < all(age) define hierarchyprofit_margin_hierarchy onitem 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 hierarquias conceituais
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 fromcustomer 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_IDand B.address = ``Canada" and I.price >= 100 with noise threshold = 0.05 display astable