xgboost的分类效果优于SVM,CNN等,它具有R语言和python的接口,但没有C++接口,因此需要对xgboost源码进行编译,并应用到C++项目中。xgboost源码编译具体步骤如下:
1、下载旧版xgboost,最新版不含有C++源码及xgboost.sln;
2、用VS打开Windows中的xgboost.sln,首先编译rabit,将会生成rabit.lib文件;
3、编译xgboost将会生成xgboost.exe文件
将exe文件及xgboost.lib放入运行文件夹,添加param.txt文件,内为各项参数,可进行修改
内部参数如下
objective=multi:softmax
eta=0.1
max_depth=6
silent=0
nthread=4
num_class=7
num_round=4
data=train_new.txt
test:data=test_new.txt
task=pred
model_in=0004.model
名字应该是可以看出来都是啥的,就不多解释了,自己修改task,xgboost应用同SVM一样,必须进行特征提取和归一化的处理,具体处理方式可以参考另一篇博客https://blog.csdn.net/qq_21500275/article/details/81354627
之后进行训练,就得到模型了,把得到的模型和刚刚这些东西都放到接下来要分类的项目里面去,项目中还有一些步骤。
1、归一化,需要搞成C++的;
2、输入句子,归一化处理之后(!!!注意:归一化向量大小,词典需要与训练时保持一致)调用;
3、输出可以到文本里,后面大家就可以根据自己的需求进行修改啦~~写的有些草率,后续有空继续完善一下。