长安的花

当学问走过漫漫古道
凿刻入千窟,心也从愚昧中苏醒

0%

Udacity 3.朴素贝叶斯cpp代码解析 2

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
如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!

欢迎关注我的其它发布渠道