前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >BAT面试题7和8:xgboost为什么用泰勒展开?是有放回选特征吗?

BAT面试题7和8:xgboost为什么用泰勒展开?是有放回选特征吗?

作者头像
double
发布2018-11-05 18:25:44
8.1K0
发布2018-11-05 18:25:44
举报
文章被收录于专栏:算法channel

接下来,每天推送一道BAT面试题,日积月累,相信大家会从中学到一些东西。最后希望大家顺利拿到自己期盼已久的OFFER.

今天连载两题,都是关于XGBoost的。文中提到的陈大佬即是发明者:陈天奇。

7.为什么XGBoost要用泰勒展开,优势在哪里?

实际上使用二阶泰勒展开是为了xgboost能够【自定义loss function】,如果按照最小二乘法的损失函数直接推导,同样能够得到陈大佬最终的推导式子:

二阶泰勒展开实际不是最小二乘法,平方损失函数的二阶泰勒展开=最小二乘法。但陈佬为何想用二阶泰勒展开呢,我猜是为了xgboost库的可扩展性,因为任何损失函数只要二阶可导即能【复用】陈大佬所做的关于最小二乘法的任何推导。而且泰勒的本质是尽量去模仿一个函数,我猜二阶泰勒展开已经足以近似大量损失函数了,典型的还有基于分类的对数似然损失函数。嘿,这样同一套代码就能完成回归或者分类了,而不是每次都推导一番,重写训练代码。

8.XGBoost如何寻找最优特征?是有放回还是无放回的呢?

XGBoost在训练的过程中给出各个特征的评分,从而表明每个特征对模型训练的重要性。

XGBoost利用梯度优化模型算法, 样本是不放回的,想象一个样本连续重复抽出,梯度来回踏步,这显然不利于收敛。

XGBoost支持子采样, 也就是每轮计算可以不使用全部样本。

参考:

https://www.zhihu.com/question/61374305

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2018-10-18,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 程序员郭震zhenguo 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档