⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 gibbssampler.h

📁 gibbs
💻 H
字号:
#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 + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -