?? construct_alarm.m
字號:
function [bnet,evidence_nodes,partial_evidence_nodes,terminal_merged_nodes,hid_nodes,gausskwadnodes,names,onames,order,inv_o]=...
construct_alarm(dag,data,names)
%bnet: bnet constructed from bnet software of murphy (struct array)
%evidence_nodes: struct(4): NOT YET IMPLEMENTED: ARE TREATED AS PARTIALLY
%OBSERVED EVIDENCE NODES
%evidence_nodes.nodenrs vector of (ordered) nodenrs of nodes that are observed for all cases
%evidence_nodes.respcat nr of resp categories (not equal to nodesizes,
%%evidence_nodes.nodesizes
%evidence_nodes.data cell array of corresponding columns in dataset
%partial_evidence_nodes: struct(3):
%partial_evidence_nodes.nodenrs vector of (ordered) nodenrs of nodes that are partially observed
%partial_evidence_nodes.nodesizes number of resp categories (equals
%nodesizes in the graph
%partial_evidence_nodes.data cell array of of corresponding rows in dataset
%terminal_merged_nodes: struct(5):
%terminal_merged_nodes.nodenrs vector of (ordered) nodenrs of terminal (partially) observed nodes
%terminal_merged_nodes.nodesizes
%terminal_merged_nodes.data cell array of corresponding sets of columns in dataset
%that are merged into single node
%terminal_merged_nodes.nrvars vector of numbers of nodes merged
%into each (ordered) terminal node
%terminal_merged_nodes.respcat cell array of nr of respcat of merged
%nodes
%hid_nodes struct(2)
%hid_nodes.nodenrs vector of (ordered) nodenrs of nodes that are
%hidden
%hid_nodes.nodesizes
%gausskwadnodes: struct(2)
%gausskwadnodes.nodenrs (ordered) nrs continuous normal hidden nodes that are discretised
%gausskwadnodes.nodesizes
%the following output is not needed but can be useful during debugging
%names: names of the original order of the nodes
%onames: names for the reordered nodes (reordering is done during the
%construction of the graphical model)
%order: vector: gives for the ordered node 1...end the corresponding nr of
%the unordered nodes: onames=names(order)
%inv_o: vector: gives for the unordered node 1...end the corresponding nr of
%the ordered nodes names=onames(order)
%
%default values
evidence_nodes.nodenrs =[];
evidence_nodes.nodesizes =[];
evidence_nodes.data ={};
evidence_nodes.respcat =[];
partial_evidence_nodes.nodenrs =[];
partial_evidence_nodes.nodesizes =[];
partial_evidence_nodes.data ={};
terminal_merged_nodes.nodenrs =[];
terminal_merged_nodes.nodesizes =[];
terminal_merged_nodes.data ={};
terminal_merged_nodes.nrvars =[];
terminal_merged_nodes.respcat ={};
hid_nodes.nodenrs=[];
hid_nodes.nodesizes=[];
gausskwadnodes.nodenrs=[];
gausskwadnodes.nodesizes=[];
%construct bnet for ESM type data and junction tree using BNT toolbox of K
%Murphy
nr_nodes=length(names);
%%%%%%%%%%%%%%%%%%%%%%%%%%%
%alternatively, specify the adjacency matrix directly
%%%%%%%%%%%%%%%%%%%%%%%%%%%
order = topological_sort(dag);
adj=dag(order,order);
inv_o=inv_order(order);
onames = names(order);
%define bnet
discrete_nodes = 1:nr_nodes;
partial_evidence_nodes.nodenrs =discrete_nodes;
%node_sizes =max(data')+1;
node_sizes=[2 3 2 2 3 4 4 4 4 3 3 2 2 3 2 2 2 2 3 3 2 3 3 3 3 3 2 2 4 3 3 3 2 4 3 3 4 ];
%node_sizes=node_sizes(order);
partial_evidence_nodes.nodesizes=node_sizes(order);
for i=1:nr_nodes
partial_evidence_nodes.data{i}=data(order(i),:);
end
%murphy's
bnet = mk_bnet(adj, partial_evidence_nodes.nodesizes, 'discrete', discrete_nodes, 'names','onames');
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -