年月份京东算法岗面试题道
文末彩蛋:七月在线干货组最新升级的《2021大厂最新AI面试题 [含答案和解析, 更新到前105题]》免费送!
问题1:介绍逻辑回归,逻辑回归是一个分类算法,那么它是在回归什么呢?
逻辑回归是在数据服从伯努利分布的假设下,通过极大似然的方法,运用梯度下降法来求解参数,从而达到将数据二分类的目的。
逻辑回归就是一种减小预测范围,将预测值限定为[0,1]间的一种广义线性回归模型,解决的是分类问题。
更多请看七月在线题库里的这题:
问题2:编程题:颜色分类(leetcode 75)
思路一:单指针
对数组进行两次遍历,考虑使用单指针 ptr 进行遍历,第一次遍历中需要把所有的 0 交换到数组的头部,每交换一次,ptr 向右移动一位,直到遍历结束,此时 ptr 之前的元素都为 0;第二次遍历从 ptr 开始遍历,将所有的 1 交换到中间位置,每交换一次,ptr 向后移动一位,直到遍历结束,此时 ptr 之后(包括ptr)的元素都为2,排序完成。
代码:
时间复杂度:O(n),其中 nn 是数组 nums 的长度。
空间复杂度:O(1)。
思路二:双指针
相比单指针只需要一次遍历即可完成。需要指针 p0 来交换等于 0 的元素,指针 p1 来交换等于 1 的元素,需要特别注意的如下:
先判断元素是否等于 1,满足等于1 就进行交换,并将 p1 + 1,再判断是否等于0 ,如果等于 0 也相应进行交换,另外需要判断 p0 和 p1 的关系,如果满足 p0 < p1,还需要再次进行交换,完成后将 p0 和 p1 同时 +1。
代码如下:
时间复杂度:O(n),其中 nn 是数组 nums 的长度。
空间复杂度:O(1)。
问题3:GBDT了解吗?基分类器用的什么?分类时也是用的那个吗?
GBDT是梯度提升决策树,是一种基于Boosting的算法,采用以决策树为基学习器的加法模型,通过不断拟合上一个弱学习器的残差,最终实现分类或回归的模型。关键在于利用损失函数的负梯度在当前模型的值作为残差的近似值,从而拟合一个回归树。
GBDT的基分类器用的是决策树,分类时也是用的决策树。那也不得够花呀
对于分类问题:常使用指数损失函数;对于回归问题:常使用平方误差损失函数(此时,其负梯度就是通常意义的残差),对于一般损失函数来说就是残差的近似。
更多请看七月在线题库里的这题:
问题4:XGBoost相对GBDT原理上有哪些改进。
改进主要为以下方面:
传统的GBDT以CART树作为基学习器,XGBoost还支持线性分类器,这个时候XGBoost相当于L1和L2正则化的逻辑斯蒂回归(分类)或者线性回归(回归);
传统的GBDT在优化的时候只用到一阶导数信息,XGBoost则对代价函数进行了二阶泰勒展开,得到一阶和二阶导数;
XGBoost在代价函数中加入了正则项,用于控制模型的复杂度。从权衡�
- 原文作者:知识铺
- 原文链接:https://index.zshipu.com/geek/post/%E4%BA%92%E8%81%94%E7%BD%91/%E5%B9%B4%E6%9C%88%E4%BB%BD%E4%BA%AC%E4%B8%9C%E7%AE%97%E6%B3%95%E5%B2%97%E9%9D%A2%E8%AF%95%E9%A2%98%E9%81%93/
- 版权声明:本作品采用知识共享署名-非商业性使用-禁止演绎 4.0 国际许可协议进行许可,非商业转载请注明出处(作者,原文链接),商业转载请联系作者获得授权。
- 免责声明:本页面内容均来源于站内编辑发布,部分信息来源互联网,并不意味着本站赞同其观点或者证实其内容的真实性,如涉及版权等问题,请立即联系客服进行更改或删除,保证您的合法权益。转载请注明来源,欢迎对文章中的引用来源进行考证,欢迎指出任何有错误或不够清晰的表达。也可以邮件至 sblig@126.com