Udacity 3.朴素贝叶斯cpp代码解析 2
classifier.h 函数
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51
| #ifndef CLASSIFIER_H //if not define 头文件中使用,防止头文件被多重调用,标识符的定义格式其实没有规定,最好全部是大写
#define CLASSIFIER_H //最好以头文件名命名,然后加上下划线_ //这样,即使其他几个头文件中包含A.h,但是就只处理一次,第二次处理时,_A这个宏已经存在,将不会在执行循环里的程序。很好的防止了重复声明。 #include <string> #include <vector> #include "Dense" // 来自 Eigen/Dense 库头文件
using Eigen::ArrayXd; //一维数组 using std::string; using std::vector;
class GNB { public: /** * Constructor */ GNB();//构造函数
/** * Destructor */ virtual ~GNB();//解析函数
/** * Train classifier */ void train(const vector<vector<double>> &data, const vector<string> &labels);//训练方法函数
/** * Predict with trained classifier */ string predict(const vector<double> &sample);//预测函数
vector<string> possible_labels = {"left","keep","right"};//变量 ArrayXd left_means; ArrayXd left_sds; double left_prior; ArrayXd keep_means; ArrayXd keep_sds; double keep_prior; ArrayXd right_means; ArrayXd right_sds; double right_prior;
};
#endif // CLASSIFIER_H
|
如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!
微信支付