1552
Comment:
|
← Revision 14 as of 2020-06-01 18:40:49 ⇥
2724
|
Deletions are marked like this. | Additions are marked like this. |
Line 11: | Line 11: |
{{{ | {{{#!sagecell |
Line 13: | Line 13: |
vv = []; nn = 0 | vv = [] nn = 0 |
Line 15: | Line 16: |
def foo(pts = checkbox(True, "Show points"), refresh = checkbox(False, "New random walk every time"), steps = (50,(10..500))): |
def foo(pts=checkbox(True, "Show points"), refresh=checkbox(False, "New random walk every time"), steps=slider([10..500],default=50)): |
Line 19: | Line 20: |
# checking or unchecking the points checkbox doesn't change # the random walk. |
# checking or unchecking the points checkbox does not change # the random walk. |
Line 23: | Line 24: |
if refresh or len(vv) == 0: s = 0; v = [(0,0)] |
if refresh or not vv: s = 0 v = [(0, 0)] |
Line 31: | Line 33: |
s = vv[-1][1]; j = len(vv) | s = vv[-1][1] j = len(vv) |
Line 34: | Line 37: |
vv.append((i+j,s)) | vv.append((i + j, s)) |
Line 39: | Line 42: |
if pts: L += points(v, pointsize=10, rgbcolor='red') show(L, xmin=0, figsize=[8,3]) |
if pts: L += points(v, pointsize=10, rgbcolor='red') show(L, xmin=0, figsize=[8, 3]) |
Line 45: | Line 49: |
{{{ | {{{#!sagecell |
Line 47: | Line 51: |
def rwalk3d(n=(50,1000), frame=True): pnt = [0,0,0] |
def rwalk3d(n=slider([50..1000]), frame=True): pnt = [0, 0, 0] |
Line 51: | Line 55: |
pnt[0] += random()-0.5 pnt[1] += random()-0.5 pnt[2] += random()-0.5 |
pnt[0] += random() - 0.5 pnt[1] += random() - 0.5 pnt[2] += random() - 0.5 |
Line 55: | Line 59: |
show(line3d(v,color='black'),aspect_ratio=[1,1,1],frame=frame) | show(line3d(v, color='black'), aspect_ratio=[1, 1, 1], frame=frame) |
Line 58: | Line 62: |
== Hidden Markov Model: The Occasionally Dishonest Casino == by Marshall Hampton Based on the classic example in "Biological Sequence Analysis" by Durbin et al. {{{#!sagecell m = hmm.DiscreteHiddenMarkovModel([[0.8,0.2],[0.1,0.9]], [[1/10,1/10,1/10,1/10,1/10,1/2],[1/6,1/6,1/6,1/6,1/6,1/6]], [.2,.8],emission_symbols=[1,2,3,4,5,6]) @interact def dishonest_casino(auto_update=False): test = list(m.generate_sequence(80)) vit_test = list(m.viterbi(test[0])[0]) pretty_print(html('<h3>The Occasionally Dishonest Casino</h3>')) pretty_print(html('Emissions:'+str(test[0]).replace(',','').replace(' ','')[1:-1])) vit_str = str(vit_test).replace(',','').replace(' ','') vit_str = vit_str.replace('1','F').replace('0','<font color="#FF0000">L</font>')[1:-1] pretty_print(html('Viterbi: '+vit_str)) actual_str = str(list(test[1])).replace(',','').replace(' ','') actual_str = actual_str.replace('1','F').replace('0','<font color="#FF0000">L</font>')[1:-1] pretty_print(html('Actual: '+ actual_str)) }}} {{attachment:hmm_casino.png}} |
Sage Interactions - Statistics and Probability
goto interact main page
Contents
A Random Walk
by William Stein
3D Random Walk
Hidden Markov Model: The Occasionally Dishonest Casino
by Marshall Hampton
Based on the classic example in "Biological Sequence Analysis" by Durbin et al.