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”)
Download

0.99 0.01