Einfaches Beispiel / Anwendungsfall für eine BNT-Gauß-CPD?

Ich versuche, einen Naive Bayes-Klassifikator mit BNT und MATLAB zu implementieren. Bisher habe ich mich an simple gehaltentabular_CPD Variablen und "geschätzte" Wahrscheinlichkeiten für die Variablen. Mein bisheriges Prototypennetz besteht aus:

DAG = false(5);
DAG(1, 2:5) = true;
bnet = mk_bnet(DAG, [2 3 4 3 3]);
bnet.CPD{1} = tabular_CPD(bnet, 1, [.5  .5]);
bnet.CPD{2} = tabular_CPD(bnet, 2, [.1  .345   .45 .355   .45 .3]);
bnet.CPD{3} = tabular_CPD(bnet, 3, [.2  .02    .59 .2     .2  .39    .01 .39]);
bnet.CPD{4} = tabular_CPD(bnet, 4, [.4  .33333 .5  .33333 .1  .33333]);
bnet.CPD{5} = tabular_CPD(bnet, 5, [.5  .33333 .4  .33333 .1  .33333]);
engine = jtree_inf_engine(bnet);

Hier ist die Variable 1 meine gewünschte Ausgabevariable, die so eingestellt ist, dass sie anfangs jeder Ausgabeklasse eine Wahrscheinlichkeit von 0,5 zuweist.

Die Variablen 2-5 definieren CPDs für Features, die ich messe:

2 ist eine Clustergröße von 1 bis zu einem Dutzend oder mehr3 ist ein Verhältnis, das ein realer Wert> = 1 ist4 und 5 sind Standardabweichungswerte (reelle Werte) (X- und Y-Streuung)

Um einen Kandidatencluster zu klassifizieren, teile ich alle Merkmalsmessungen in 3-4 Bereichsklammern ein:

...
    evidence = cell(1, 5);
    evidence{2} = sum(M > [0 2 6]);
    evidence{3} = sum(O > [0 1.57 2 3]);
    evidence{4} = sum(S(1) > [-Inf 1 2]);
    evidence{5} = sum(S(2) > [-Inf 0.4 0.8]);
    eng = enter_evidence(engine, evidence);
    marginals = marginal_nodes(eng, 1);
    e = marginals.T(1);
...

Das funktioniert eigentlich ganz gut, wenn man bedenkt, dass ich nur Entfernungsklammern und Wahrscheinlichkeitswerte errate. Aber ich glaube das was ichsollte Verwenden Sie hier ist eingaussian_CPD. ichdenken dass agaussian_CPD kann sowohl die optimalen Klammern als auch die Wahrscheinlichkeiten (als Mittel- und Kovarianzmatrizen und -gewichte) lernen.

Mein Problem ist, ich finde keineeinfach Beispiele dafür, wie die BNTgaussian_CPD Klasse wird verwendet. Wie würde ich zum Beispiel vorgehen, um a zu initialisieren?gaussian_CPD in etwa das gleiche Verhalten wie einer meinertabular_CPD Variablen oben?

Antworten auf die Frage(2)

Ihre Antwort auf die Frage