I want to learn parameters of a DBN using JSMILE and I am a bit confused about the data format for the method matchNetwork of the class DataSet. I expected the naming convention to be similar to the one in Genie: A, A_1, A_2, B, B_1, B_2 as stated in this post.
However, when I use the network from Tutorial 6 and the following data file, matchNetwork is only able to match time slice 0 (columns A, B, C). Rest of the data (A_1, A_2 ...) is not used for learning. When I import the same data file into Genie automatic matching works. What am I missing? Does matchNetwork in jSMILE work with DBNs? How should the column naming look like?
A A_1 A_2 B B_1 B_2 C C_1 C_2
t t t t t t t t t
t f f t f f t f f
f t f f t f f t f
f f f f f f f f f
t f t t f t t f t
t f f t f f t f f
f t f f t f f t f
f t t f t t f t t
t t t t t t t t t
t t t t t t t t t
t t t t t t t t t
t t f t t f t t f
f f f f f f f f f
f f t f f t f f t
f f f f f f f f f
t f f t f f t f f
f t f f t f f t f
t t t t t t t t t
t f f t f f t f f
f t f f t f f t f
Code: Select all
Network net = new Network();
net.readFile("Net_tut_6_original.xdsl");
DataSet ds = new DataSet();
ds.readFile("tut_6_data.txt" );
DataMatch[] matching = ds.matchNetwork(net);
final EM em = new EM();
em.setRandomizeParameters(false);
em.setEqSampleSize(1);
em.setUniformizeParameters(true);
em.learn(ds, net, matching);
tholorthored