protected Assignment computeAssignment (Assignment graphAssn, VarSet vs) { return (Assignment) graphAssn.marginalize (vs); } }
protected Assignment computeAssignment (Assignment graphAssn, VarSet vs) { return (Assignment) graphAssn.marginalize (vs); } }
/** * Returns a new assignment which only assigns values to those variabes in a given clique. * @param assn A large assignment * @param varSet Which variables to restrict assignment o * @return A newly-created Assignment * @deprecated marginalize */ public static Assignment restriction (Assignment assn, VarSet varSet) { return (Assignment) assn.marginalize (varSet); }
/** * Returns a new assignment which only assigns values to those variabes in a given clique. * @param assn A large assignment * @param varSet Which variables to restrict assignment o * @return A newly-created Assignment * @deprecated marginalize */ public static Assignment restriction (Assignment assn, VarSet varSet) { return (Assignment) assn.marginalize (varSet); }
protected Assignment computeAssignment (Assignment graphAssn, VarSet vs) { return (Assignment) graphAssn.marginalize (vs); } }
/** * Returns a new assignment which only assigns values to those variabes in a given clique. * @param assn A large assignment * @param varSet Which variables to restrict assignment o * @return A newly-created Assignment * @deprecated marginalize */ public static Assignment restriction (Assignment assn, VarSet varSet) { return (Assignment) assn.marginalize (varSet); }
public Factor lookupMarginal (VarSet varSet) { Factor mrgl = samples.marginalize (varSet); AbstractTableFactor tbl = mrgl.asTable (); tbl.normalize (); return tbl; }
public Factor lookupMarginal (VarSet varSet) { Factor mrgl = samples.marginalize (varSet); AbstractTableFactor tbl = mrgl.asTable (); tbl.normalize (); return tbl; }
public Factor lookupMarginal (VarSet varSet) { Factor mrgl = samples.marginalize (varSet); AbstractTableFactor tbl = mrgl.asTable (); tbl.normalize (); return tbl; }
public void advance () { vidx++; Variable var = graph.get (vidx); ptl = new TableFactor (var); for (Iterator it = cliquesByVar[vidx].iterator (); it.hasNext();) { ACRF.UnrolledVarSet clique = (ACRF.UnrolledVarSet) it.next (); Factor cliquePtl = graph.factorOf (clique); if (cliquePtl == null) throw new IllegalStateException ("Could not find potential for clique "+clique); VarSet vs = new HashVarSet (cliquePtl.varSet ()); vs.remove (var); Assignment nbrAssn = (Assignment) observed.marginalize (vs); Factor slice = cliquePtl.slice (nbrAssn); ptl.multiplyBy (slice); } }
public void advance () { vidx++; Variable var = graph.get (vidx); ptl = new TableFactor (var); for (Iterator it = cliquesByVar[vidx].iterator (); it.hasNext();) { ACRF.UnrolledVarSet clique = (ACRF.UnrolledVarSet) it.next (); Factor cliquePtl = graph.factorOf (clique); if (cliquePtl == null) throw new IllegalStateException ("Could not find potential for clique "+clique); VarSet vs = new HashVarSet (cliquePtl.varSet ()); vs.remove (var); Assignment nbrAssn = (Assignment) observed.marginalize (vs); Factor slice = cliquePtl.slice (nbrAssn); ptl.multiplyBy (slice); } }
public void advance () { vidx++; Variable var = graph.get (vidx); ptl = new TableFactor (var); for (Iterator it = cliquesByVar[vidx].iterator (); it.hasNext();) { ACRF.UnrolledVarSet clique = (ACRF.UnrolledVarSet) it.next (); Factor cliquePtl = graph.factorOf (clique); if (cliquePtl == null) throw new IllegalStateException ("Could not find potential for clique "+clique); VarSet vs = new HashVarSet (cliquePtl.varSet ()); vs.remove (var); Assignment nbrAssn = (Assignment) observed.marginalize (vs); Factor slice = cliquePtl.slice (nbrAssn); ptl.multiplyBy (slice); } }
public void testContinousSample () throws IOException { ModelReader reader = new ModelReader (); FactorGraph fg = reader.readModel (new BufferedReader (new StringReader (uniformMdlstr))); Randoms r = new Randoms (324143); Assignment allAssn = new Assignment (); for (int i = 0; i < 10000; i++) { Assignment row = fg.sample (r); allAssn.addRow (row); } Variable x1 = fg.findVariable ("x1"); Assignment assn1 = (Assignment) allAssn.marginalize (x1); int[] col = assn1.getColumnInt (x1); double mean = MatrixOps.sum (col) / ((double)col.length); assertEquals (0.5, mean, 0.025); }
public void testContinousSample () throws IOException { ModelReader reader = new ModelReader (); FactorGraph fg = reader.readModel (new BufferedReader (new StringReader (uniformMdlstr))); Randoms r = new Randoms (324143); Assignment allAssn = new Assignment (); for (int i = 0; i < 10000; i++) { Assignment row = fg.sample (r); allAssn.addRow (row); } Variable x1 = fg.findVariable ("x1"); Assignment assn1 = (Assignment) allAssn.marginalize (x1); int[] col = assn1.getColumnInt (x1); double mean = MatrixOps.sum (col) / ((double)col.length); assertEquals (0.5, mean, 0.025); }
public void testContinousSample2 () throws IOException { ModelReader reader = new ModelReader (); FactorGraph fg = reader.readModel (new BufferedReader (new StringReader (uniformMdlstr2))); Randoms r = new Randoms (324143); Assignment allAssn = new Assignment (); for (int i = 0; i < 10000; i++) { Assignment row = fg.sample (r); allAssn.addRow (row); } Variable x1 = fg.findVariable ("x2"); Assignment assn1 = (Assignment) allAssn.marginalize (x1); int[] col = assn1.getColumnInt (x1); double mean = MatrixOps.sum (col) / ((double)col.length); assertEquals (0.5, mean, 0.01); Variable x2 = fg.findVariable ("x2"); Assignment assn2 = (Assignment) allAssn.marginalize (x2); int[] col2 = assn2.getColumnInt (x2); double mean2 = MatrixOps.sum (col2) / ((double)col2.length); assertEquals (0.5, mean2, 0.025); }
public void testContinousSample2 () throws IOException { ModelReader reader = new ModelReader (); FactorGraph fg = reader.readModel (new BufferedReader (new StringReader (uniformMdlstr2))); Randoms r = new Randoms (324143); Assignment allAssn = new Assignment (); for (int i = 0; i < 10000; i++) { Assignment row = fg.sample (r); allAssn.addRow (row); } Variable x1 = fg.findVariable ("x2"); Assignment assn1 = (Assignment) allAssn.marginalize (x1); int[] col = assn1.getColumnInt (x1); double mean = MatrixOps.sum (col) / ((double)col.length); assertEquals (0.5, mean, 0.01); Variable x2 = fg.findVariable ("x2"); Assignment assn2 = (Assignment) allAssn.marginalize (x2); int[] col2 = assn2.getColumnInt (x2); double mean2 = MatrixOps.sum (col2) / ((double)col2.length); assertEquals (0.5, mean2, 0.025); }
public void testScaleMarginalize () { Assignment assn = new Assignment (vars, new int[] { 1, 0 }); assn.addRow (vars, new int[] { 1, 0 }); assn.addRow (vars, new int[] { 1, 1 }); assn.normalize (); Factor mrg = assn.marginalize (vars[1]); Assignment assn2 = new Assignment (vars[1], 0); assertEquals (0.666666, mrg.value (assn2), 1e-5); }
public void testScaleMarginalize () { Assignment assn = new Assignment (vars, new int[] { 1, 0 }); assn.addRow (vars, new int[] { 1, 0 }); assn.addRow (vars, new int[] { 1, 1 }); assn.normalize (); Factor mrg = assn.marginalize (vars[1]); Assignment assn2 = new Assignment (vars[1], 0); assertEquals (0.666666, mrg.value (assn2), 1e-5); }
public void testMarginalize () { Assignment assn = new Assignment (); assn.addRow (vars, new int[] { 1, 1 }); assn.addRow (vars, new int[] { 1, 0 }); Assignment assn2 = (Assignment) assn.marginalize (vars[0]); assertEquals (2, assn2.numRows ()); assertEquals (1, assn2.size ()); assertEquals (vars[0], assn2.getVariable (0)); assertEquals (1, assn.get (0, vars[0])); assertEquals (1, assn.get (1, vars[0])); }
public void testMarginalize () { Assignment assn = new Assignment (); assn.addRow (vars, new int[] { 1, 1 }); assn.addRow (vars, new int[] { 1, 0 }); Assignment assn2 = (Assignment) assn.marginalize (vars[0]); assertEquals (2, assn2.numRows ()); assertEquals (1, assn2.size ()); assertEquals (vars[0], assn2.getVariable (0)); assertEquals (1, assn.get (0, vars[0])); assertEquals (1, assn.get (1, vars[0])); }