Show Posts

This section allows you to view all posts made by this member. Note that you can only see posts made in areas you currently have access to.

Messages - Anders L Madsen

Pages: 1 ... 18 19 [20]
FAQ / How do I compile/run a program written in C/C++/Java/VB ?
« on: April 02, 2007, 11:01:05  »
Instructions for using the Hugin C/C++/Java/VB APIs are given in Section 1.3 of the Hugin API Reference Manual.

FAQ / How complex can my networks be ?
« on: April 02, 2007, 10:49:44  »
Hugin has no limit on the complexity of the networks. This is limited only by the available memory on the machine
"Hugin ran out of memory. What can I do ?"   and
"I seem to be running into some limits with the HUGIN software. What is the maximum number of nodes and edges that HUGIN can handle?").

FAQ / Nodes in instantiated classes have wrong names (c1,c2,...)
« on: April 02, 2007, 10:47:33  »
When creating a domain from a class, the class is "flattened". That is, all the instance nodes (or sub nets) are expanded and placed in the main network. Because of this, it is not possible to guarantee that the names of the nodes are unique anymore (which is required). Thus the nodes in the domain are given generic names. To correctly identify a node in the domain, you have to look at the source nodes for the node.

As of Hugin 6.0, the default type for saving a model is "Class" (denoted by a class identifier in the net file, as opposed to the net identifier in the old net files). These Classes cannot be loaded into a Domain. Instead, they need to be loaded into a Class. This is done, indirectly, by loading a .net file through a ClassCollection. If you want to load the new model into your program, you have to save it as a 5.7 net file (by choosing "Save as" in the file menu).

HUGIN Training Course Discussion / Re: continuous distributions
« on: April 01, 2007, 21:26:55  »
There are two different approaches to modeling with continuous variables in the HUGIN tools.

One approach is to discretize the nodes representing continuous entities using Interval nodes. In your example the "mu", "sigma^2", and "A" would all be discretized into Interval nodes. The intervals of each Interval node would have to be determined by the user. The conditional probability distribution of each discrete node can subsequently be constructed using the Table Generator functionality.

The continuous nodes of a network in HUGIN are assumed to have a linear Gaussian distribution. This implies that a mean and a variance is specified for a continuous node without continuous parents for each configuration of the discrete parents, if any. For a continuous node with continuous parents a regression factor is specified for each continuous parent for each configuration of the discrete parents.

Thus, the alternative approach is the approximate the continuous distributions using mixtures of Gaussian distributions. Any continuous distribution can be approximated using a mixture of Gaussian distribution. Unfortunately, it may be difficult to identify the number of components and the weights of the mixture. Also, the use of mixtures of Gaussian distributions may lead to heavy computations.

I suggest to use the first approach.

Hope this is useful

FAQ / Re: How much data do I need to learn a network ?
« on: February 03, 2007, 20:31:16  »
Dear Nadjet,

It is more or less impossible to determine whether or not you have sufficient data before the learning takes place (unless you have very much data in which case learning may be ressource demanding).

Once you have a model you can based on the abovementioned rule of thumb determine if you had sufficient data to learn the resulting model.

Hope this is useful,

FAQ / How much data do I need to learn a network ?
« on: January 27, 2007, 10:48:52  »
It is difficult to give an exact measure, as this depends on the domain that the data represents. The more complex the model is, the more data is required to learn the model from the data.

A rule of thumb says that you should have at least 5 cases for each cell in the largest table in the network. That is, to learn the distribution for any given parent configuration, you should have (5 * number of states) cases.

FAQ / Hugin ran out of memory. What can I do ?
« on: January 26, 2007, 13:49:10  »
The size of Bayesian networks can grow exponentially in the number of nodes. In particular, the size of the CPTs grow exponentially in the number of parents. So if you have, e.g., a node C, with parents P1, P2, P3, P4, P5, P6, P7 and each node has 10 states, the size of Cs CPT will be 10^8 numbers = 100.000.000 number. So the CPTs can grow very big. Furthermore, each number takes up 8 bytes of memory, thus the CPT will need 800Mb of memory for a network with only 8 nodes. Another cause for memory usage is the creation of the junction trees (which occurs during compilation). Depending on the structure of the network, the cliques in the junction tree can grow very large as well, if either a lot of nodes, or the nodes with the largest CPTs, end up in the same clique.
  • Install more memory.
  • Examine the CPTs and reduce the largest ones, either by removing parents, or by removing states from either the parents or the node itself.
  • Change the structure of the network, if the error occurs during compilation, to change the constructed cliques. An alternative to this, is to change the triangulation method, as this will often result in a different junction tree (Network properties -> compilation -> triangulation method).

Pages: 1 ... 18 19 [20]