文末彩蛋:七月在线干货组最新升级的《2021大厂最新AI面试题 [含答案和解析, 更新到前105题]》免费送!

问题1:介绍逻辑回归,逻辑回归是一个分类算法,那么它是在回归什么呢?

逻辑回归是在数据服从伯努利分布的假设下,通过极大似然的方法,运用梯度下降法来求解参数,从而达到将数据二分类的目的。

逻辑回归就是一种减小预测范围,将预测值限定为[0,1]间的一种广义线性回归模型,解决的是分类问题。

更多请看七月在线题库里的这题:

https://www.julyedu.com/questions/interview-detail?kp_id=23&cate=%E6%9C%BA%E5%99%A8%E5%AD%A6%E4%B9%A0&quesId=983

问题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的基分类器用的是决策树,分类时也是用的决策树。那也不得够花呀

对于分类问题:常使用指数损失函数;对于回归问题:常使用平方误差损失函数(此时,其负梯度就是通常意义的残差),对于一般损失函数来说就是残差的近似。

更多请看七月在线题库里的这题:

https://www.julyedu.com/questions/interview-detail?quesId=2591&cate=%E6%9C%BA%E5%99%A8%E5%AD%A6%E4%B9%A0&kp_id=23

问题4:XGBoost相对GBDT原理上有哪些改进。

改进主要为以下方面:

传统的GBDT以CART树作为基学习器,XGBoost还支持线性分类器,这个时候XGBoost相当于L1和L2正则化的逻辑斯蒂回归(分类)或者线性回归(回归);

传统的GBDT在优化的时候只用到一阶导数信息,XGBoost则对代价函数进行了二阶泰勒展开,得到一阶和二阶导数;

XGBoost在代价函数中加入了正则项,用于控制模型的复杂度。从权衡�