Aplicações práticas da descoberta de conhecimento em BD Jacques Robin CIn-UFPE Marketing e comércio Gerenciamento de relação com clientes (CRM de Customer Relationship Management) : • descrição multi-dimensional, agrupamento e classificação de clientes, associações entre produtos ou serviços, para otimização e personalização de: campanhas de propaganda e de promoções sugestões de produtos e serviços • mineração comparativa de evolução de compras, produtos ou serviços oferecidos e preços para: promover retenção de clientes definir política de preço altamente dinâmica (ex, passagem aérea) • ambos a partir de: Transações com cartões de fidelidade, de requisitos de programa a la carte (TV, vídeo, música), de reservas (passagens, hoteis, ingressos) Log de servidor ‘Web para comércio eletrónico • relevância para quase qualquer setor econômico: varejo, comercio eletrônico, infra-estrutura, financia, entretenimento Financia e segurança Serviços financeiros: • mineração de series temporais de valores na bolsa para especulação • mineração de associação e grupos de valores para definição de portfolio de investimento e planos de aposentadoria • previsão de inadimplência para definir política de empréstimo Detecção de fraude: • descrição multi-dimensional e mineração de series excepcionais de: de uso de cartão de créditos para serviços financeiros pedidos de acesso a sites para segurança de sistemas transferências de fundos para lavagem de dinheiro sujo e sonegação de imposto chamadas para telecomunicações Detecção de tentativas de intrusão • mineração de padrões temporais de comandos de protocolos em arquivos de log de servidores • batch e tempo real Jogos, esportes e recursos humanos Jogos: • mineração de regras estratégicas e táticas a partir de BD de partidas (xadrez, futebol de robôs) Jogos, esportes e re-engenharia de organizações: • OLAP, agrupamento e mineração multi-dimensional de series de resultados para identificar fatores internos (ex, composição do time, tática usada) e externos (ex, tipo de adversário, local do jogo) contribuindo a vitórias e a derrotas Jogos de esportes virtuais, esportes e recrutamento: • previsão do desempenho e popularidade futuro de atletas, artistas e funcionários para contratação e transferência Serviços de infra-estrutura: energia, água, transporte, telecomunicação, Internet descrição multi-dimensional e previsão comparativa de demanda e da capacidade das fontes ou equipamentos para: • planejar investimentos e otimizar rotas para evitar interrupção de serviços e congestionamento • definir vários níveis de qualidade de serviços, seus preços e seus clientes potenciais • detecção de fraudes previsão de falha de equipamento para definir política de prevenção de falha mineração de regras de diagnóstico para análise de falha Saúde Indústria farmacêutica: • previsão dos efeitos de um novo remédio composto a partir dos efeitos dos seus componentes em remédios testados Medicina e epidemiologia: • mineração de regras de diagnostico • previsão de predisposição a doenças e resposta a tratamento • a partir de BD de órgãos de saúde (CDC, ministério da saúde) Pesquisa em genética e biologia molecular: • mineração comparativa de seqüências de genes em células sanas e doentes (adaptação da mineração de series temporais para dados categóricos) • mineração de associações e grupos de genes baseada na sua coocorrência em várias classes de células • previsão da forma 3D de uma proteína a partir da sua seqüência de ácidos-amidos Conclusão sobre a aplicabilidade de KDD Ainda existe muito mais tarefas e domínios de aplicação prática da descoberta de conhecimento em BD não mencionadas Ubiqüidade da necessidade por mineração de dados e descoberta de conhecimento em BD O mais difícil não é identificar setores de atividade que precisam dessa tecnologia e sim identificar setores que não podem beneficiar-se dela Exemplo detalhado de aplicação: descoberta de habilidades chaves e insights táticos em futebol de robôs Exemplo detalhado de aplicação: competição de softbots em partidas simuladas Arquitetura clientes-servidor implementa simulador multi-agentes Soccer Monitor Time A Time B Cliente 1 Cliente 1 UDP/IP Cliente 11 Soccer Server UDP/IP Cliente 11 Servidor atualiza: ambiente dos agentes = campo dos jogadores Cliente do SoccerServer = agente = jogador Time = software multi-agentes distribuído em 11 clientes Exemplo detalhado de aplicação: competição de softbots em partidas simuladas Exemplo detalhado de aplicação: caraterísticas da fonte de dados disponível Arquivos de log do simulador de partidas SoccerServer Dados em formato flat Sem intencionalidade: • Apenas resultado no campo das ações dos agentes/clientes/jogadores • Sem as ações mandadas para o simulador pelos agentes, nem as percepções recebidas em volta • Sem possibilidade de inferí-las confiavelmente, devido ao ruído introduzido pelo simulador De granularidade fina demais para descobrir insights procurados por mineração direta Necessidade de passo(s) de derivação de dados de granularidade suficiente na preparação dos dados Exemplo detalhado de aplicação: exemplo da fonte de dados disponível Teamleft: Essex_Wizards, Teamright: FCPortugal Score: 0:0 T: 0, mode: 4 Ball: ( 0.0, 0.0), P: 1(-50.0, 0.0, 0), ... 22( 1.0, 25.0, 0), T: 1, mode: 4 Ball: ( 0.0, 0.0), P: 1(-50.0, 0.0, -78), ... 22( 1.0, 25.0, 84), ... Exemplo detalhado: preparação de dados Log do Soccer Server Ferramenta de modelagem E-R Data Mart ROLAP Dados Primitivos e Derivados Hipercubo OLAP primitivo Data Mart ROLAP Dados Primitivos Serviços de transformação de dados DTS Microsoft SQL Server Log do Soccer Server SGBD relacional Servidor OLAP JDBC API XSB-SQL Hipercubo OLAP derivados API XSB-Java Sistema dedutivo XSB Exemplo detalhado: esquema dos dados Dim_RelCoords id_RelCoords areaCoarse areaMedium areaFine X Y Primitive_Flat Dim_Direction PK id_Direction angleCoarse angleFine Dim_Mode PK id_Mode modeType description game time mode ballPosition playerPosition player direction addTeam1Score addTeam2Score team1KickOff team2KickOff team1KickIn team2KickIn team1FreeKick team2FreeKick team1GoalKick team2GoalKick team1OffSide team2OffSide occurrence Dim_Agent id_Agent team number Dim_Time id_Time half periodCoarse periodFine Dim_Game id_Game team1 team2 championship Derived_Flat game statistic agent1 agent2 startTime endTime ballFromTeam1 ballToTeam1 ballFromTeam2 ballToTeam2 agent1FromTeam1 agent1ToTeam1 agent1FromTeam2 agent1ToTeam2 agent2FromTeam1 agent2ToTeam1 agent2FromTeam2 agent2ToTeam2 deltaTime deltaBallX deltaBallY deltaAgent1X deltaAgent1Y deltaAgent2X deltaAgent2Y occurrence Dim_Statistic PK id_Statistic type subtype description Exemplo detalhado de aplicação: arquitetura do BD dedutivo XSB XSB Sistema dedutivo em memória central Hilog: regras Flora: dedução de ordem superior orientada a objetos InterProlog API Java Software externo Java API C Software externo C Prolog tabulado API ODBC API Oracle SGBD relacional SGBDR Oracle Exemplo detalhado de aplicação: regras Prolog de derivação de dados posseDaBola(Tempo, Time, Jogador, X, Y, Angulo) :fmode(Tempo, 3), fplayer(Tempo, Time, Jogador, X, Y, Angulo), posse(X, Y, Tempo). posse(XJogador, YJogador, Tempo) :fball(Tempo, XBola, YBola), diferencaAbsoluta(XBola, XJogador, DiferencaX), DiferencaX < 1, diferencaAbsoluta(YBola, YJogador, DiferencaY), DiferencaY < 1. Exemplo detalhado: mineração dos dados Hipercubo OLAP derivados Data Mart ROLAP Servidor OLAP Microsoft SQL Server Caracterização Multi-dimensional dos resultados das partidas em função das estatísticas de fases de jogo e da taxa de sucesso de cada tipo de jogada SGBD relacional JDBC Weka Previsão do sucesso de uma jogada em função do seu contexto no jogo Previsão da melhor jogada a tentar para cada contexto de jogo Clusters de jogadas