Learning in a hybrid network with discretized data

The front end.
Post Reply
EAly
Posts: 21
Joined: Tue Apr 14, 2020 1:16 pm

Learning in a hybrid network with discretized data

Post by EAly »

Hello,

I'm trying to learn the parameters for the attached simple network. It consists of 3 nodes, 2 equation nodes and a chance node.
The equation nodes are originally normal random number generators with different mean and std, and when I connect them to the chance node, GeNIe automatically discretizes them to two states.
The data file contains discrete data for each of the nodes, however, when I attempt to learn the parameters, I get an error saying:

Code: Select all

EM: unsupported mix of discrete and continuous items in network and/or dataset
Shouldn't the discretization of the equation nodes overcome this issue? and how to solve that?
Attachments
dummy_file1.csv
(17.6 KiB) Downloaded 183 times
d_net.xdsl
(1.63 KiB) Downloaded 189 times
marek [BayesFusion]
Site Admin
Posts: 430
Joined: Tue Dec 11, 2007 4:24 pm

Re: Learning in a hybrid network with discretized data

Post by marek [BayesFusion] »

Hi,

I have looked at your network and the data set. GeNIe will not allow you to learn parameters in hybrid networks. If you want to derive a usable network from this, you will need to discretize it first (Network menu/Discretize). This will create a discrete network that will accept the data from the file dummy_file1.csv.

I hope this helps,

Marek
EAly
Posts: 21
Joined: Tue Apr 14, 2020 1:16 pm

Re: Learning in a hybrid network with discretized data

Post by EAly »

Thanks Marek, your reply really helped.

One more question though, is there an equevalent to this "Network discretization" step in SMILE?

Thanks in advance for the reply
shooltz[BayesFusion]
Site Admin
Posts: 1417
Joined: Mon Nov 26, 2007 5:51 pm

Re: Learning in a hybrid network with discretized data

Post by shooltz[BayesFusion] »

One more question though, is there an equevalent to this "Network discretization" step in SMILE?
If you're using C++ SMILE, you can use an undocumented function by declaring its prototype:

Code: Select all

void DSL_CreateDiscretizedNetwork(DSL_network &origNet, DSL_network &discNet, std::vector<int> &mapping, std::vector<int> &reverseMapping);
At this point there's no support for this functionality in wrappers.
Post Reply