Exercícios Java Bayes Embayes/R 1. JavaBayes 0.4 Iniciar JavaBayes 0.4 Criação de nova rede Nós Arcos Probabilidades Nós e arcos Edit node Edição de probabilidades Edição de probabilidades true false p(fam fora) 0.15 0.85 p(prob bexiga) 0.01 0.99 p(luz acesa | fam fora = true ) 0.60 0.40 p(luz acesa | fam fora = false ) 0.05 0.95 p(cach fora | fam fora = true & prob bexiga = true) 0.99 0.01 p(cach fora | fam fora = true & prob bexiga = false) 0.90 0.10 p(cach fora | fam fora = false & prob bexiga = true) 0.97 0.03 p(cach fora | fam fora = false & prob bexiga = false) 0.30 0.70 p(ouvir latidos | cach fora = true) 0.70 0.30 p(ouvir latidos | cach fora = false) 0.01 0.99 Consultas à rede Probabilidade posterior, sem observações: •Ouvir latidos true = 0.28 false = 0.72 Probabilidade posterior: Observações: Cachorro fora -> true •Problema bexiga true = 0.02 false = 0.98 •Ouvir latidos true = 0.70 false = 0.30 Probabilidade posterior: Observações: Luzes acesas -> false, Ouvir latidos= true •Família fora true = 0.17 false = 0.83 •Cachorro fora true = 0.97 false = 0.03 Outras consultas Ouvir latidos: true Luzes acesas: false Cachorro fora: true Familia fora: false iBNetz http://www.pmr.poli.usp.br/ltd/People/asaheki/software/ Interface para o EmBayes • Mais opções para visualização e edição Rede para decisão médica Projeto em conjunto com Hospital Universitário-USP Construção feita com o auxílio de especialistas médicos Tem como objetivo a identificação de doenças cardíacas Rede para decisão médica (II) 2. Embayes/R Iniciar Rterm ex: > c:\Arquivos de Programas\R\r1080\bin\rterm Alterar para pasta de trabalho desejada ex: > setwd(“c:/EmBayesR”) Carregar “sources.r” source(“sources.r”) Operações em Redes Bayesianas Nova rede rede = newNetwork(“rede1”) Adicionar variáveis rede$addVar(“no1”) rede$addVar(“no2”, c(“est1”, “est2”, “est3”)) rede$addVar(“no3”) Mostrar variáveis rede$listVars() Operações em Redes Bayes. (II) Ligar variáveis rede$addArc(“no1”, “no2”) rede$addArc(“no1”, “no3”) Definir probabilidades rede$setProbabilities(“no1”, c(0.2, 0.8)) rede$setProbabilities(“no2”, c(0.1, 0.4, 0.2, 0.25, 0.7, 0.35)) rede$setProbabilities(“no3”, c(0.4,0.3,0.6,0.7)) Operações em Redes Bayes. (III) Consultas/observações rede$query(“no1”) rede$query(c(“no2”, “no3”)) rede$observeVariable(“no2”, “est1”) rede$query(“no1”) Alterações rede$deleteVar(“no2”) rede$deleteArc(“no1”, “no3”) Aprendizado Base de dados adult dataLearn <- readDiscreteData(“adult_learn.in") adultLearn <- convertRData(dataLearn) dataTest = readDiscreteData(“adult_test.in") adultTest <- convertRData(dataTest) Aprendizado (II) Aprendizado TAN – parâmetros default redeA = learnNetwork(algorithm = "TAN", learnData = adultLearn) redeA$testNetwork(adultTest) redeA$showNetwork() – edição manual Novo teste adultTest$reopen() redeA$testNetwork(adultT est) Aprendizado (III) Aprendizado Naive-Bayes Base de dados adultLearn$reopen() adultTest$reopen() redeB = learnNetwork(algorithm=“NB”, learnData = lettersLearn, maxIterations = 1, likelihoodChange = 0.01) redeB$testNetwork(lettersTest) redeB$listVars() redeB$observeVariable(“X12”) redeB$showNetwork() redeB$query(“c”)