Marcus Sampaio DSC/UFCG Marcus Sampaio DSC/UFCG Um Problema para Você Resolver Marcus Sampaio DSC/UFCG • Análise de Impacto de Mudança de Software – Seja o grafo de dependência entre classes de software A B C E F Marcus Sampaio DSC/UFCG • M = {A, B, C}, o conjunto das classes de mudança, constituído pelas classes que não são terminais do grafo de dependência • I = {E, F}, o conjunto das classes impactadas, constituído pelas classes terminais do grafo de dependência • MI= – A interpretação: se algumas classes pertencentes a M mudarem (validarem), então algumas classes pertencentes a I também mudam (validam) Um Problema ...: Histórico de Mudanças Marcus Sampaio DSC/UFCG A B C E F Total 1 1 0 0 0 1 0 0 0 0 0 2 1 1 1 1 0 2 0 0 0 1 1 1 0 1 1 1 1 1 1 0 0 1 0 2 0 1 0 0 1 1 Marcus Sampaio DSC/UFCG 1-) Qual é a probabilidade de E mudar, se A e B mudarem? 2-) Qual é a probabilidade de A mudar, independentemente de mudanças das outras classes? 3-) Se A mudar, qual a probabilidade de C ou E ou F também mudarem? 4-) Qual é a confiabilidade dos resultados? Teoria de Probabilidade Marcus Sampaio DSC/UFCG • Probabilidade Condicional – Qual a probabilidade de Y acontecer, dada a probabilidade de X acontecer? – P(Y | X) = P(XY) / P(X) – Exercício 5-): Resolva o exercício 1-) em termos de probabilidade condicional Marcus Sampaio DSC/UFCG • Lei da Probabilidade Total – Seja A1, ..., Ak uma partição de um conjunto de eventos (um histórico) • A1 ... Ak = – Seja B um evento qualquer – P(B) = i=1,k P(B | Ai)P(Ai) – Exercício 6-): Resolva o exercício 2-) em termos da lei da probabilidade total Marcus Sampaio DSC/UFCG • Teorema de Bayes – – – – Seja A1, ..., Ak uma partição, com P(Ai) > 0 Se P(B) > 0 P(Ai | B) = P(B | Ai) P(Ai) / j P(B | Aj)P(Aj) Exercício 7-): Resolva o exercício 3-) em termos do teorema de Bayes Qual é o Problema Básico da Teoria da Probabilidade? Marcus Sampaio DSC/UFCG • O problema básico da Teoria da Probabilidade é Dado um processo de geração de dados por exemplo, o processo de manutenção de um software quais são as propriedades dos dados observados? Marcus Sampaio DSC/UFCG Qual é o Problema Básico da Mineração de Dados? Marcus Sampaio DSC/UFCG • O problema básico da Mineração de Dados (“Data Mining”) é o inverso da probabilidade Dados os resultados, o que podemos induzir ou inferir sobre o processo que gerou os dados? • Voltando ao grafo de dependência de classes de software do slide 3, um algoritmo de mineração de dados (MD) poderia induzir a seguinte regra de associação – Se A e B mudam então E também muda, com suporte igual a 2 e confiança (c) igual a 67% Marcus Sampaio DSC/UFCG • Formalmente – AB E, sup=2 c=67% – O suporte é o número de vezes que A, B e E mudaram juntas – A confiança mede a associação entre AB e E, ou seja, nas tantas vezes em que A e B mudaram, quantas vezes E também mudou • c = sup(ABE) / sup(AB) = 2 / 3 = 67% (veja a tabela do slide 5) – Note que esta confiança não é ‘confiável’ porque o suporte da regra é muito baixo MD & Probabilidade Marcus Sampaio DSC/UFCG Probability Data generating process Observed data Data Mining Fonte: All of Statistics, Larry Wasserman Marcus Sampaio DSC/UFCG • Regra de Associação e Probabilidade Condicional – No que segue, X representa um conjunto de itens quaisquer (classe de software é um exemplo de item) – Seja a regra de associação X Y, c = sup(XY) / sup(X) • Interpretação probabilística: Qual a probabilidade de Y acontecer dada a probabilidade de X acontecer? – P(Y | X) = P(XY) / P(X) = (sup(XY) / Universo) / (sup(X / Universo) = sup(XY) / sup(X) = c Conclusões Marcus Sampaio DSC/UFCG • De tudo o que foi exposto, pode-se concluir que mineração de dados e probabilidade estão ligadas umbilicalmente, ou que são as duas faces de uma mesma moeda • No fundo, algoritmos de mineração de dados induzem conhecimento regra de associação é um dos inúmeros modelos de conhecimento implementando convenientemente modelos probabilísticos, entre outras disciplinas – Abordagem bem diferente da inteligência artificial, que é baseada em lógica matemática