Example #1
0
from gPy.Examples import asia
from gPy.Samplers import BNSampler

sampler = BNSampler(asia)
sampler.condition({'XRay':'abnormal'})
print "Samples with 'None's are rejected" 
for i in xrange(100):
    print sampler.rejection_sample()
Example #2
0
from gPy.Examples import asia
from gPy.Samplers import BNSampler
import sys
output = open(sys.argv[1], 'w')

sampler = BNSampler(asia)
for v in sampler.variables():
    print >> output, '%s:%s' % (v, ','.join(asia.values(v)))
print >> output, ','.join(sampler.variables())
dkt = {}
for i in xrange(300):
    inst = ','.join(sampler.forward_sample())
    try:
        dkt[inst] += 1
    except KeyError:
        dkt[inst] = 1

for inst, count in dkt.items():
    print >> output, '%s,%s' % (inst, count)
Example #3
0
from gPy.Examples import asia
from gPy.Samplers import BNSampler

sampler = BNSampler(asia)
sampler.condition({'XRay': 'abnormal'})
for i in xrange(100):
    print sampler.importance_sample()
Example #4
0
from gPy.Examples import asia
from gPy.Samplers import BNSampler
import sys
output = open(sys.argv[1],'w')

sampler = BNSampler(asia)
for v in sampler.variables():
    print >>output, '%s:%s' % (v,','.join(asia.values(v)))
print >>output, ','.join(sampler.variables())
for i in xrange(300):
    print >>output, ','.join(sampler.forward_sample())
Example #5
0
from gPy.Examples import asia
from gPy.Samplers import BNSampler

sampler = BNSampler(asia)
cancer_index = sampler.variable_index('Cancer')
xray_index = sampler.variable_index('XRay')

for size in 10,100,1000,10000:
    print 'Sample size: ', size
    for j in range(5):
        sample = []
        for i in xrange(size):
            sample.append(sampler.forward_sample())
        cancer_count, both_count = 0, 0
        for inst in sample:
            if inst[cancer_index] == 'absent':
                cancer_count += 1
                if inst[xray_index] == 'abnormal':
                    both_count += 1
        print 'Estimate of P(Cancer=absent): ', cancer_count/float(size)
        print 'Estimate of P(Cancer=absent,XRay=abnormal): ', both_count/float(size)
        try:
            print 'Estimate of P(XRay=abnormal|Cancer=absent): ', both_count/float(cancer_count)
        except ZeroDivisionError:
            print '0/0!'
        print
from gPy.Examples import asia
from gPy.Samplers import BNSampler

sampler = BNSampler(asia)
sampler.condition({'XRay':'abnormal'})
for i in xrange(100):
    print sampler.importance_sample()
Example #7
0
from gPy.Examples import asia
from gPy.Samplers import BNSampler

sampler = BNSampler(asia)
cancer_index = sampler.variable_index('Cancer')
xray_index = sampler.variable_index('XRay')

for size in 10, 100, 1000, 10000:
    print 'Sample size: ', size
    for j in range(5):
        sample = []
        for i in xrange(size):
            sample.append(sampler.forward_sample())
        cancer_count, both_count = 0, 0
        for inst in sample:
            if inst[cancer_index] == 'absent':
                cancer_count += 1
                if inst[xray_index] == 'abnormal':
                    both_count += 1
        print 'Estimate of P(Cancer=absent): ', cancer_count / float(size)
        print 'Estimate of P(Cancer=absent,XRay=abnormal): ', both_count / float(
            size)
        try:
            print 'Estimate of P(XRay=abnormal|Cancer=absent): ', both_count / float(
                cancer_count)
        except ZeroDivisionError:
            print '0/0!'
        print