Udacity 3.朴素贝叶斯cpp代码解析 1
主函数 main
定义从txt里加载数据的函数:1
2
3//函数定义
vector<vector<double> > Load_State(string file_name);
vector<string> Load_Label(string file_name);
函数主体实现1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18vector<vector<double> > Load_State(string file_name) {//返回一个向量,向量里放的是一个存放double数据的向量
ifstream in_state_(file_name.c_str(), ifstream::in); //ifstream 输入流 以读的方式打开文件
vector< vector<double >> state_out;
string line;
while (getline(in_state_, line)) {//getline 从流in_state_里读取整行文本 并存储到字符串line里
std::istringstream iss(line);//来自头文件<sstream> 串流的输入操作
vector<double> x_coord;
string token;
while (getline(iss,token,',')) {//以逗号区分,将iss里的字符串以,隔开存放到token里,遇到逗号代表完成
x_coord.push_back(stod(token));//std::stod 将字符串转为浮点值
}
state_out.push_back(x_coord);
}
return state_out;
}
1 | vector<string> Load_Label(string file_name) { |
比较预测结果是否一致:
string A;string B;A.compare(B);
传入到训练
gnb.train(X_train, Y_train);
x是特征, y是标签