gibbssampler.h

来自「gibbs」· C头文件 代码 · 共 60 行

H
60
字号
#ifndef GIBBSSAMPLER_H#define GIBBSSAMPLER_H#include "InferenceMethod.h"#include "BayesNet.h"#include <vector>#include <list>#include "Distribution.h"class GibbsSampler : public InferenceMethod{private:    const BayesNet& model;    int numChains;    double convergenceRatio;    int burnInIters;    int minIters;    bool fixedIters;    vector<Distribution> marginals;    Distribution jointDistrib;public:    GibbsSampler(const BayesNet& bn, int chains, double ratio, int burnIn,             int min, bool fixed)         : model(bn), numChains(chains), convergenceRatio(ratio),          burnInIters(burnIn), minIters(min), fixedIters(fixed),          marginals(model.getNumVars())    { /* NOP */ }    virtual ~GibbsSampler() { /* NOP */ }    virtual void runMarginalInference(const VarSet& evidence);    virtual void runJointInference(const list<int>& queryVars,            const VarSet& evidence);    //virtual Distribution getMarginal(int i) const { return marginals[i]; }    virtual double singleConditionalLogProb( const list<int>& queryVars,        const VarSet& evidence, const VarSet& answer) const;    virtual double getMarginalProb(int i, double value) const {        return marginals[i][(int)value];    }    virtual double getJointProb(const VarConfig& query) const {        // TODO -- update this to handle continuous vars...        return jointDistrib[query.getIndex()];    }    virtual int getRange(int i) const { return model.getRange(i); }private:    int configIndex(VarSet& allVars, list<int>& testIndices) const;    void burnInChain(VarSet &chain, const VarSet& evidence, int burnInIters)         const;    unsigned int sampleFromDist(const vector<double>& dist) const;    double testConvergence(vector<vector<double> > summaries,             vector<vector<double> > sqSummaries, int n) const;    double predictIters(vector<vector<double> > summaries,             vector<vector<double> > sqSummaries, int n) const;};#endif // ndef GIBBSSAMPLER_H

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?