xgboost_main - yanshengli/xgboost GitHub Wiki

analysis of xgboost source code

xgboost_main.cpp

定义并实现了namespace xgboost的内容,该空间又包括BoostLearnTask类。

定义并实现了如下函数:

inline int Run(int argc, char *argv[]):定义输入格式、输出格式、任务类型(训练、预测、评测)、运行模式(并行与否)
inline void SetParam(const char *name, const char *val):参数初始化
inline void InitData(void):`data = io::LoadDataMatrix(test_path.c_str(), silent != 0, use_buffer != 0, loadsplit);`读取训练、测试数据
inline void InitLearner(void):初始化学习模型,主要包括模型载入(从中断地方开始)及模型初始化
inline void TaskTrain(void):多任务训练,主要是在主程序重新启动后,检查各个节点保存的模型训练参数,然后重新开始学 习,这些都和分布式有关,多次迭代
inline void TaskPred(void):是预测阶段的接口,调用learner接口中的Predict函数
这里面还包括一些模型保存、模型读取等函数

定义的数据类型如下:

io::DataMatrix* data;,`数据存储单元
std::vector<io::DataMatrix*> deval;,数据内存单元
std::vector<const io::DataMatrix*> devalall;,数据内存集合
utils::FeatMap fmap;,特征集合单元
learner::BoostLearner learner;,学习器指针  
⚠️ **GitHub.com Fallback** ⚠️