Пример #1
0
#model = openpnl.pnlExCreateKjaerulfsBNet()

pArHMM = openpnl.CDBN_Create(model)
pInfEng = openpnl.C1_5SliceJtreeInfEngine_Create(pArHMM)
nTimeSlices = 5

# set up evidence ...
pEvidences = openpnl.newCEvidences(nTimeSlices)
for i in range(0,nTimeSlices):
    ev = openpnl.mkEvidence( pArHMM, [1], [1.0] );
    openpnl.assignEvidence( pEvidences, ev, i )

pInfEng.DefineProcedure(openpnl.ptSmoothing, nTimeSlices)
pInfEng.EnterEvidence(pEvidences, nTimeSlices)
pInfEng.Smoothing()

queryPrior = [0]
#queryPrior = openpnl.intVector([0])
queryPriorSize = 1
slice_ = 0

pInfEng.MarginalNodes(queryPrior, queryPriorSize, slice_)
pQueryJPD = pInfEng.GetQueryJPD();

mdl = pQueryJPD.GetModelDomain()
mat = pQueryJPD.GetMatrix(openpnl.matTable)

print openpnl.convertVector(mat.ConvertToDense().GetVector())


Пример #2
0
    domain = list(parents) + [node]
    cCPD = openpnl.CTabularCPD.Create( pBNet.GetModelDomain() , openpnl.toConstIntVector(domain) )
    cCPD.AllocMatrix( cpdvals, openpnl.matTable )
    cCPD.NormalizeCPD()
    pBNet.AttachFactor(cCPD)


# Set up the inference engine
infEngine = openpnl.CPearlInfEngine.Create( pBNet );

# Problem 1 P(W|C=0)
ev = openpnl.mkEvidence( pBNet, [0], [0] )
infEngine.EnterEvidence(ev)
infEngine.pyMarginalNodes( [3], 0 )
infEngine.GetQueryJPD().Dump()
m = openpnl.convertVector(infEngine.GetQueryJPD().GetMatrix(openpnl.matTable).ConvertToDense().GetVector())
index = np.arange(0,2,1)
plt.figure()
plt.bar(index, m)
plt.title("Marginal of P(WetGrass|Cloudy=False)")
plt.ylabel("P(WetGress = x)");
plt.xticks(index+0.5, ('WetGrass=False', "WetGrass=True"))


# Problem 1 P(W|C=1)
ev = openpnl.mkEvidence( pBNet, [0], [1] )
infEngine.EnterEvidence(ev)
infEngine.pyMarginalNodes( [3], 0 )
infEngine.GetQueryJPD().Dump()
m = openpnl.convertVector(infEngine.GetQueryJPD().GetMatrix(openpnl.matTable).ConvertToDense().GetVector())
plt.figure()
Пример #3
0
#!/usr/bin/env python
import openpnl

pWSBnet = openpnl.pnlExCreateWaterSprinklerBNet()
pWSBnet.GetGraph().Dump()

pEvidForWS = openpnl.mkEvidence(pWSBnet, [0], [1])
pNaiveInf = openpnl.CNaiveInfEngine.Create(pWSBnet)
pNaiveInf.EnterEvidence(pEvidForWS)

nodes = [1, 3]
pNaiveInf.MarginalNodes(nodes)

pMarg = pNaiveInf.GetQueryJPD()

obsVls = openpnl.pConstValueVector()
#print obsVls
#pEvidForWS.GetObsNodesWithValues( openpnl.toIntVector(nodes), obsVls )

print openpnl.convertVector(
    pMarg.GetMatrix(openpnl.matTable).ConvertToDense().GetVector())
Пример #4
0
#!/usr/bin/env python
import openpnl

pWSBnet = openpnl.pnlExCreateWaterSprinklerBNet()
pWSBnet.GetGraph().Dump()

pEvidForWS = openpnl.mkEvidence(pWSBnet, [0], [1])
pNaiveInf = openpnl.CNaiveInfEngine.Create(pWSBnet)
pNaiveInf.EnterEvidence(pEvidForWS)

nodes = [1, 3]
pNaiveInf.MarginalNodes(nodes)

pMarg = pNaiveInf.GetQueryJPD()

obsVls = openpnl.pConstValueVector()
# print obsVls
# pEvidForWS.GetObsNodesWithValues( openpnl.toIntVector(nodes), obsVls )


print openpnl.convertVector(pMarg.GetMatrix(openpnl.matTable).ConvertToDense().GetVector())
Пример #5
0
# generate random slices
print " *** SET UP RANDOM SLICES  **"
nTimeSeries = 500
nSlices = np.random.randint(3, 20, nTimeSeries)
print nSlices

print " *** GENERATE SAMPLES *** "
evidencesOut = pArHMM.GenerateSamples2(nSlices)
pDBN = openpnl.CDBN.Create(openpnl.pnlExCreateRndArHMM())
print evidencesOut
print pDBN

print " *** LEARNING *** "
pLearn = openpnl.CEMLearningEngineDBN.Create(pDBN)
pLearn.SetData(evidencesOut)
pLearn.Learn()

print " *** model before learning ... "
for i in range(0, 4):
    pCPD1 = pArHMM.GetFactor(i)
    pMat = pCPD1.GetMatrix(openpnl.matTable)
    cpd = openpnl.convertVector(pMat.ConvertToDense().GetVector())
    print cpd

print " *** model after learning ... "
for i in range(0, 4):
    pCPD2 = pDBN.GetFactor(i)
    pMat = pCPD2.GetMatrix(openpnl.matTable)
    cpd = openpnl.convertVector(pMat.ConvertToDense().GetVector())
    print cpd
Пример #6
0
nTimeSeries = 500
nSlices = np.random.randint(3,20,nTimeSeries);
print nSlices

print " *** GENERATE SAMPLES *** "
evidencesOut = pArHMM.GenerateSamples2( nSlices );
pDBN = openpnl.CDBN.Create(openpnl.pnlExCreateRndArHMM());
print evidencesOut 
print pDBN

print " *** LEARNING *** "
pLearn = openpnl.CEMLearningEngineDBN.Create( pDBN );
pLearn.SetData(evidencesOut)
pLearn.Learn()

print " *** model before learning ... "
for i in range(0,4):
    pCPD1 = pArHMM.GetFactor(i)
    pMat = pCPD1.GetMatrix(openpnl.matTable)
    cpd = openpnl.convertVector(pMat.ConvertToDense().GetVector())
    print cpd
    
print " *** model after learning ... "
for i in range(0,4):
    pCPD2 = pDBN.GetFactor(i)
    pMat = pCPD2.GetMatrix(openpnl.matTable)
    cpd = openpnl.convertVector(pMat.ConvertToDense().GetVector())
    print cpd