XGBoost 是一个经典的用于结构化数据,有监督学习的的框架。 而这几年深度学习的越来越热, Keras 也能够处理结构化数据用于预测。 那么现在在处理 Regression 这类问题时,是选传统的 XGBoost 还是选 Deeplearn 呢, Mark Ryan 的这篇文章,对二者做了一个比较, 非常有借鉴意义。
作者使用了多伦多市电车晚点的数据, 构建了比较平台, 然后分别用 XGBoost 和 Keras 构建了模型, 并进行预测。 详细内容请参考原文, 这里直接给结论。
image.png结论
性能
XGBoost 在准确性, recall ,假阴性 (预测不迟到,结果迟到了)都明显高于DL (Deep Learning)。由于假阴性在这次预测中是最重要的指标, 所以XGBoost 的优势格外明显(1200 vs 3500)。 之所以假阴性比较重要, 是因为,如果预测电车不晚点,结果晚点了, 那么回造成用户迟到; 反之会造成用户使用其他交通方式。 先比较而言, 迟到的损失更大。
训练时间
平局。
代码复杂性
平局。 Kears 构建模型复杂一些, XGBoost 数据预处理要复杂一些。
灵活性
Kears 胜出。 原因是 XGBoost 只能处理结构化数据, 如果数据中有一栏是文本, 那么XGBoost 就不好用了。 不过就本例而言, 这个问题并不存在。
网友评论