void ReviseCPTsByCaseFile_bn ( stream_ns*  file,   const nodelist_bn*  nodes,   int  updating,   double  degree )

Reads a file of cases from file and uses them to revise the experience and conditional probability tables (CPT) of each node in nodes. This function does the same thing as ReviseCPTsByFindings_bn, for each of the cases in file, but is more efficient than multiple calls to ReviseCPTsByFindings_bn. See the description of ReviseCPTsByFindings_bn for more information on the arguments passed, and how this function revises the probabilities.

All the nodes of nodes must be in the same net.

Pass 0 for updating. It is only for future expansion.

It is okay if the case file has missing data, or has data on nodes not included in nodes, or even has data on nodes not in the net containing nodes. However the probabilities of a node are only modified by cases supplying a value for the node and for all of its parents.

NOTE: If there are nodes without CPTs in nodes for which there are no findings (or there is no information on one of their parents), they will not be modified, so no CPT table will be built, so a later call to GetNodeProbs_bn could return NULL unexpectedly.


In versions previous to 2.10, this function was named CaseFileRevisesProbs_bn.

In versions 2.11 through 2.14, this function was named CaseFileRevisesCPTs_bn.

See also:

ReviseCPTsByFindings_bn    Revise probabilities with a single case
LearnCPTs_bn    Revise probabilities with a caseset_cs
NewFileStream_ns    Create the stream
NewNodeList2_bn    Create the node list