本文介绍xgboost模型的训练以及模型的导出和可视化。
本文在显示树图像时遇到了下面问题:
dot: graph is too large for cairo-renderer bitmaps. Scaling by 0.498668 to fit
然后一通操作解决了这个问题。
一、数据格式
xgboost支持多种数据输入格式,DMatrix()的文档显示xgboost支持
string/numpy array/scipy.sparse/pd.DataFrame/DataTable等几种方式的输入,其实python二维数组也可以作为输入
我曾经尝试过用python list或python list转为numpy array的方式生成训练数据,但这两种方式在数据量级很大时并不适用,其转换过程会导致内存暴涨
后来采取libSVM格式的数据格式之后,单机可训练样本数目可以翻几倍,并且加载速度很快。搭配spark生成libsvm格式数据,整个数据处理、模型训练的过程会变得很流畅。
二、模型训练
# loading dataset.
以上,完成了xgboost模型的训练、保存和评估。
为表尊重,将xgboost的参数单独拎出来:
params
Xgboost 参数很多,通过调参数大致能够将auc提高一个百分点。
常见的调参方法有Grid Search,佛系循环调参,随机调参