> 文章列表 > 机器学习面试

机器学习面试

机器学习面试

机器学习面试

1机器学习面试

  • 机器学习面试
    • 1.1LR线性回归
      • 1.1.1线性回归/广义线性回归
      • 1.1.2logistics regression对数几率回归
      • 1.1.3感知机
    • 1.2 SVM
      • 1.2.1SVM 支持向量机
      • 1.2.2 SVR
    • 1.3朴素贝叶斯
    • 1.4 聚类
      • 1.4.1 KNN
      • 1.4.2原型聚类
    • 1.5决策树
      • 1.5.1原理
      • 1.5.2特征选择
      • 1.5.3决策树生成
      • 1.5.4决策树剪枝
    • 1.6集成学习
      • 1.6.1Boosting(提升算法)
      • 1.6.2Bagging(装袋算法)
      • 1.6.3stacking集成算法
    • 1.7梯度提升树
      • 1.7.1提升树
      • 1.7.2xgboost(下面)
      • 1.7.3LightGBM(下面)
    • 1.8特征工程
      • 1.8.1缺失值处理
      • 1.8.2特征编码
      • 1.8.3数据标准化、正则化
        • 标准化
        • 正则化
      • 1.8.4特征选择
      • 1.8.5降维
      • 1.8.6类别不平衡问题
    • 1.9 模型评估
      • 1.9.0方差与偏差
      • 1.9.0噪声
      • 1.9.1 精确率(Precision)召回率(Recall)
      • 1.9.2 AUC
      • 1.9.3f1score
      • 1.9.4 泛化能力评估(验证)
  • 二、机器学习建模(原理、优缺点、应用)
    • 2.1svm
    • 2.2GBDT
    • 2.3xgboost
      • 2.3.1XGBoost的优缺点
      • 2.3.2 XGBoost与GBDT的联系和区别有哪些?
      • 2.3.3 为什么XGBoost泰勒二阶展开后效果就比较好呢?
      • 2.3.4 XGBoost对缺失值是怎么处理的?
      • 2.3.5 XGBoost为什么可以并行训练?
      • 2.3.6 XGBoost如何评价特征重要性?
    • 2.4lightgbm
      • 2.4.1 LightGBM主要改进点:
      • 2.4.2 LIghtGBM的优缺点:

链接:
AI算法工程师手册


机器学习三要素:模型、策略、算法。

1.1LR线性回归

1.1.1线性回归/广义线性回归

回归分析的目标就是要拟合一条曲线,让图中红色线段加起来的和最小。
线性回归是回归分析的一种。

1.假设目标值(因变量)与特征值(自变量)之间线性相关.
(即满足一个多元一次方程f(x)=w1x1+…+wnxn+b.)。

有n组数据,i代表n组数据中的第i组。自变量x(x1,x2,…,xn),因变量y(y1,y2,…,yn),然后我们假设它们之间的关系是:f(x)=ax+b。那么线性回归的目标就是如何让f(x)和y之间的差异最小,换句话说就是a,b取什么值的时候f(x)和y最接近。
2.然后构建损失函数。
这里我们得先解决另一个问题,就是如何衡量f(x)和y之间的差异。在回归问题中,均方误差是回归任务中最常用的性能度量(均方误差)。记J(a,b)为f(x)和y之间的差异。
3.最后通过令损失函数最小来确定参数。(最关键的一步)
这里称J(a,b)为损失函数,明显可以看出它是个二次函数,即凸函数,所以有最小值。当J(a,b)取最小值的时候,f(x)和y的差异最小,然后我们可以通过J(a,b)取最小值来确定a和b的值。

三种方法来确定a和b的值:
最小二乘法(会解释)
最小二乘法(又称最小平方法)是一种数学优化技术,它通过最小化误差的平方和寻找数据的最佳函数匹配。利用最小二乘法可以简便地求得未知的数据,并使得这些求得的数据与实际数据之间误差的平方和最小,该方法还可以用于曲线拟合。
链接: 一文让你彻底搞懂最小二乘法(超详细推导)
机器学习面试

机器学习面试
机器学习面试
机器学习面试

梯度下降法(会解释)
(梯度的本意是一个向量(矢量),表示某一函数在该点处的方向导数沿着该方向取得最大值,即函数在该点处沿着该方向(此梯度的方向)变化最快,变化率最大(为该梯度的模)。)
我们注意到最小二乘法最后一步要求p个方程组,是非常大的计算量,其实计算起来很难,因此我们就有了一种新的计算方法,就是梯度下降法,梯度下降法可以看作是 更简单的一种 求最小二乘法最后一步解方程 的方法
机器学习面试

1.1.2logistics regression对数几率回归

机器学习面试
请添加图片描述
机器学习面试

1.1.3感知机

感知机是一种二类分类的线性分类模型,其输入为实例的特征向量,输出为实例的类别,+1代表正类,-1代表负类。感知机属于判别模型,它的目标是要将输入实例通过分离超平面将正负二类分离。
机器学习面试

1.2 SVM

1.2.1SVM 支持向量机

(选择距离最大的超平面是因为距离最大的超平面具有最好的泛化性能)
训练数据清晰线性可分,硬间隔支持向量机;
支持向量机(Support Vector Machine,简称SVM)是一种用来解决二分类问题的机器学习算法,它通过在样本空间中找到一个划分超平面,将不同类别的样本分开,同时使得两个点集到此平面的最小距离最大,两个点集中的边缘点到此平面的距离最大。之所以选择距离最大的超平面是因为距离最大的超平面具有最好的泛化性能。
训练数据近似线性可分,软间隔支持向量机;
由于我们实际获取的真实样本往往会存在噪声,使得训练数据不是清晰线性可分的硬间隔支持向量机要求所有的样本均被最佳超平面正确划分,而软间隔支持向量机允许某些样本点不满足间隔大于等于1的条件,当然在最大化间隔的时候也要限制不满足间隔大于等于1的样本的个数使之尽可能的少。于是我们引入一个惩罚系数C>0,并对每个样本点(xi,yi)引入一个松弛变量(slack variables)ξ≥0
训练数据线性不可分,通过使用核技巧及软间隔最大化,学习非线性支持向量机。
对于输入空间中的非线性分类问题,可以通过非线性变换将它转化为某个维特征空间中的线性分类问题,在高维特征空间中学习线性支持向量机。由于在线性支持向量机学习的对偶问题里,目标函数和分类决策函数都只涉及实例和实例之间的内积,所以不需要显式地指定非线性变换,而是用核函数替换当中的内积核函数*表示,通过一个非线性转换后的两个实例间的内积。

优点
有严格的数学理论支持,可解释性强,不依靠统计方法,从而简化了通常的分类和回归问题;能找出对任务至关重要的关键样本(即:支持向量);
采用核技巧之后,可以处理非线性分类/回归任务
最终决策函数只由少数的支持向量所确定,计算的复杂性取决于支持向量的数目,而不是样本空间的维数,这在某种意义上避免了“维数灾难”。

缺点
训练时间长。当采用 SMO 算法时,由于每次都需要挑选一对参数,因此时间复杂度为 ,其中 N 为训练样本的数量;
当采用核技巧时,如果需要存储核矩阵,则空间复杂度为 0(n2);
模型预测时,预测时间与支持向量的个数成正比。当支持向量的数量较大时,预测计算复杂度较高。

1.2.2 SVR

最大化间隔带的宽度+最小化总的损失函数
机器学习面试
机器学习面试

1.3朴素贝叶斯

链接: 带你理解朴素贝叶斯分类算法
需要假设特征之间相互独立
机器学习面试
机器学习面试
优点:
(1) 算法逻辑简单,易于实现
(2)分类过程中时空开销小
缺点:
理论上,朴素贝叶斯模型与其他分类方法相比具有最小的误差率。但是实际上并非总是如此,这是因为朴素贝叶斯模型假设属性之间相互独立,这个假设在实际应用中往往是不成立的,在属性个数比较多或者属性之间相关性较大时,分类效果不好。
而在属性相关性较小时,朴素贝叶斯性能最为良好。对于这一点,有半朴素贝叶斯之类的算法通过考虑部分关联性适度改进。

1.4 聚类

训练样本的标记信息是未知的。
无监督学习的目标:通过对无标记训练样本的学习来揭露数据的内在性质以及规律。分类是事先知道类标的,而聚类事先不知道类标。

1.4.1 KNN

一个样本与数据集中的k个样本最相似, 如果这k个样本中的大多数属于某一个类别, 则该样本也属于这个类别。也就是说,该方法在确定分类决策上只依据最邻近的一个或者几个样本的类别来决定待分样本所属的类别。KNN方法在类别决策时,只与极少量的相邻样本有关。

**优点:**简单有效,重新训练代价低,算法复杂度低,适合类域交叉样本,适用大样本自动分类
**缺点:**惰性学习,类别分类不标准化,输出可解释性不强,不均衡性,计算量较大

有哪些聚类方法?

1.4.2原型聚类

k-means 算法
k-means++
机器学习面试
机器学习面试

1.4.3性能聚类
1.4.4密度聚类
1.4.5层次聚类
1.4.6 半监督学习?

1.5决策树

一、什么是信息熵
熵在信息论中被用来度量信息量,熵越大,所含的有用信息越多,其不确定性就越大;而熵越小,有用信息越少,确定性越大。
例如“太阳东升西落”这句话非常确定,是常识,其含有的信息量很少,所以熵的值就很小。
在决策树中,用熵来表示样本集的不纯度,如果某个样本集合中只有一个类别,其确定性最高,熵为0;反之,熵越大,越不确定,表示样本集中的分类越多样。
所以信息量的大小,并不是数据量的大小,而是不确定性(不纯度)的大小。

信息,指音讯、消息、通讯系统传输和处理的对象,泛指人类社会传播的一切内容。
人通过获得、识别自然界和社会的不同信息来区别不同事物,得以认识和改造世界。
在一切通讯和控制系统中,信息是一种普遍联系的形式。
1948年,数学家香农在题为“通讯的数学理论”的论文中指出:“信息是用来消除随机不定性的东西”。
创建一切宇宙万物的最基本。单位是信息。

机器学习面试
机器学习面试

机器学习面试
机器学习面试
机器学习面试
机器学习面试

因为有c4.5偏好类别少的属性的缺点,
所有 用c4.5的模型 不是直接选信息增益率最大的类别,而是先把信息增益低于平均水平的属性剔除掉,在选取信息增益率最大的类别(两方面兼顾)

1.5.1原理

决策树学习的算法通常递归地选择最优特征,并根据该特征对训练数据进行分割,使得对各个子数据集有一个最好的分类。这一过程对应着特征空间的划分,也对应着决策树的构建。

最优化的策略是:损失函数最小化。决策树的损失函数通常是正则化的极大似然函数。
决策树的生成对应着模型的局部最优,决策树的剪枝则考虑全局最优。

1.5.2特征选择

特征选择的关键是:选取对训练数据有较强分类能力的特征。
若一个特征的分类结果与随机分类的结果没有什么差别,则称这个特征是没有分类能力的。
通常特征选择的指标是:信息增益或者信息增益比。这两个指标刻画了特征的分类能力。

1.5.3决策树生成

决策树有两种常用的生成算法:
ID3 生成算法
生成算法核心是,在决策树的每个结点上应用信息增益准则选择特征,递归地构建决策树。
从根结点开始,计算结点所有可能的特征的信息增益,选择信息增益最大的特征作为结点的特征,由该特征划分出子结点。再对子结点递归地调用以上方法,构建决策树。
直到所有特征的信息增益均很小或者没有特征可以选择为止,最后得到一个决策树 。
如果不设置特征信息增益的下限,则可能会使得每个叶子都只有一个样本点,从而划分得太细。
机器学习面试
C4.5 生成算法
C4.5 生成算法与 ID3 算法相似,但是 C4.5 算法在生成过程中用信息增益比来选择特征。

1.5.4决策树剪枝

生成的决策树可能对训练数据有很好的分类能力,但是对于未知的测试数据却未必有很好要的分类能力,即可能发生过拟合的现象。
解决的方法是:对生成的决策树进行剪枝,从而使得决策树具有更好的泛化能力。剪枝是去掉过于细分的叶结点,使得该叶结点中的子集回退到父结点或更高层次的结点并让其成为叶结点。
机器学习面试

1.6集成学习

1.6.1Boosting(提升算法)

机器学习面试
机器学习面试
加大分类误差率较小的弱分类器的权值,使得它在表决中起较大作用。
减小分类误差率较大的弱分类器的权值,使得它在表决中起较小的作用。

1.6.2Bagging(装袋算法)

它采用了一种有放回的抽样方法来生成训练数据。通过多轮有放回的对初始训练集进行随机采样,多个训练集被并行化生成,对应可训练出多个基学习器(基学习器间不存在强依赖关系),再将这些基学习器结合,构建出强学习器。其本质是引入了样本扰动,通过增加样本随机性,达到降低方差的效果。
机器学习面试

1.6.3stacking集成算法

机器学习面试

1.7梯度提升树

1.7.1提升树

提升树boostring tree是以决策树为基本学习器的提升方法。它被认为是统计学习中性能最好的方法之一。
对分类问题,提升树中的决策树是二叉决策树;对回归问题,提升树中的决策树是二叉回归树。
机器学习面试
机器学习面试

1.7.2xgboost(下面)

1.7.3LightGBM(下面)

1.8特征工程

1.8.1缺失值处理

删除。
补全:均值插补,同类均值插补,建模预测,高维映射。

1.8.2特征编码

特征二元化、one-hot、离散化、分桶

1.8.3数据标准化、正则化

标准化

数据标准化是将样本的属性取值缩放到某个指定的范围。
数据标准化的两个原因:1.某些算法要求样本数据的属性取值具有零均值和单位方差。2.样本不同属性具有不同量级时,消除数量级的影响。如下图所示为两个属性的目标函数的等高线。(数量级的差异将导致量级较大的属性占据主导地位。数量级的差异将导致迭代收敛速度减慢。所有依赖于样本距离的算法对于数据的数量级都非常敏感。)
归一化(Normalization)
最常见的标准化方法:Z-Score 标准化。
机器学习面试

正则化

L1和L2正则化
在使用神经网络时,为了增加模型的泛化能力,防止模型只在训练集上有效、在测试集上不够有效,我们使用正则化。正则化是为了防止过拟合, 进而增强泛化能力。用白话文转义,泛化误差(generalization error)= 测试误差(test error)。也可以说是为了使得训练数据训练的模型在测试集上的表现(或说性能 performance)好不好
L1(lasso回归)、L2(Ridge回归(岭回归))正则化是通过修改损失函数来实现的,而Dropout则是通过修改神经网络本身来实现的,它是在训练网络时用的一种技巧(trick)。
机器学习面试
机器学习面试

1.8.4特征选择

过滤式、包裹式、嵌入式。

1.8.5降维

主成分分析 PCA
核化线性降维 KPCA

1.8.6类别不平衡问题

链接: 机器学习之9——类别不平衡问题
机器学习面试
机器学习面试

1.9 模型评估

1.9.0方差与偏差

偏差:整体的角度上,预测值与真实值之间的误差。
度量了模型的表达能力、拟合能力。一般是系统性错误、算法错误导致的。(欠拟合)

方差:预测值之间的离散程度。
度量了模型的稳定性。模型对数据的敏感程度。(过拟合)

偏差方差窘境
泛化误差:分类器的错误:方差与偏差的和
boosting 减小偏差
bagging 减小方差

1.9.0噪声

机器学习面试

1.9.1 精确率(Precision)召回率(Recall)

机器学习面试
机器学习面试

1.9.2 AUC

真阳性率(TPR, True positive rate)
TP/(TP+FN),代表分类器预测的正类中实际正实例占所有正实例的比例。
假阳性概率(FPR, False positive rate)
FP/(FP+TN),代表分类器预测的正类中实际负实例占所有负实例的比例。
ROC曲线其实就是以FPR为横坐标,TPR为纵坐标绘制出来的曲线。
机器学习面试

语言文字形容:
ROC曲线的绘制步骤如下:
1
假设已经得出一系列样本被划分为正类的概率Score值,按照大小排序。
2
从高到低,依次将“Score”值作为阈值threshold,当测试样本属于正样本的概率大于或等于这个threshold时,我们认为它为正样本,否则为负样本。举例来说,对于某个样本,其“Score”值为0.6,那么“Score”值大于等于0.6的样本都被认为是正样本,而其他样本则都认为是负样本。
3
每次选取一个不同的threshold,得到一组FPR和TPR,以FPR值为横坐标和TPR值为纵坐标,即ROC曲线上的一点。
4
根据3中的每个坐标点,画图。
机器学习面试

机器学习面试
机器学习面试
机器学习面试
机器学习面试
机器学习面试
机器学习面试
请添加图片描述
请添加图片描述
请添加图片描述

1.9.3f1score

机器学习面试

过拟合和欠拟合
如何处理过拟合和欠拟合?
l1、l2正则化
交叉验证
早停
降低学习率

1.9.4 泛化能力评估(验证)

k折交叉验证

二、机器学习建模(原理、优缺点、应用)

机器学习建模

  • 机器学习面试
    • 1.1LR线性回归
      • 1.1.1线性回归/广义线性回归
      • 1.1.2logistics regression对数几率回归
      • 1.1.3感知机
    • 1.2 SVM
      • 1.2.1SVM 支持向量机
      • 1.2.2 SVR
    • 1.3朴素贝叶斯
    • 1.4 聚类
      • 1.4.1 KNN
      • 1.4.2原型聚类
    • 1.5决策树
      • 1.5.1原理
      • 1.5.2特征选择
      • 1.5.3决策树生成
      • 1.5.4决策树剪枝
    • 1.6集成学习
      • 1.6.1Boosting(提升算法)
      • 1.6.2Bagging(装袋算法)
      • 1.6.3stacking集成算法
    • 1.7梯度提升树
      • 1.7.1提升树
      • 1.7.2xgboost(下面)
      • 1.7.3LightGBM(下面)
    • 1.8特征工程
      • 1.8.1缺失值处理
      • 1.8.2特征编码
      • 1.8.3数据标准化、正则化
        • 标准化
        • 正则化
      • 1.8.4特征选择
      • 1.8.5降维
      • 1.8.6类别不平衡问题
    • 1.9 模型评估
      • 1.9.0方差与偏差
      • 1.9.0噪声
      • 1.9.1 精确率(Precision)召回率(Recall)
      • 1.9.2 AUC
      • 1.9.3f1score
      • 1.9.4 泛化能力评估(验证)
  • 二、机器学习建模(原理、优缺点、应用)
    • 2.1svm
    • 2.2GBDT
    • 2.3xgboost
      • 2.3.1XGBoost的优缺点
      • 2.3.2 XGBoost与GBDT的联系和区别有哪些?
      • 2.3.3 为什么XGBoost泰勒二阶展开后效果就比较好呢?
      • 2.3.4 XGBoost对缺失值是怎么处理的?
      • 2.3.5 XGBoost为什么可以并行训练?
      • 2.3.6 XGBoost如何评价特征重要性?
    • 2.4lightgbm
      • 2.4.1 LightGBM主要改进点:
      • 2.4.2 LIghtGBM的优缺点:

链接:
AI算法工程师手册

链接: 终于有人把XGBoost 和 LightGBM 讲明白了,项目中最主流的集成算法
链接: 一篇文章搞定GBDT、Xgboost和LightGBM的面试
链接: lightgbm,xgboost,gbdt的区别与联系
链接: GDBT模型、XGBoost和LightGBM之间的区别与联系
链接: GBDT、XGBoost、LightGBM的区别和联系

链接: 珍藏版 | 20道XGBoost面试题
链接: 算法岗面试问题总结
链接: 通俗理解信息熵

2.1svm

介绍一下SVM,遇到线性不可分怎么办,核函数有什么特点
SVM的优缺点
SVM非线性分类,核函数的作用
SVM详细过程,支持向量,几何间隔概念,拉格朗日函数如何求取超平面,非线性分类
机器学习面试

2.2GBDT

机器学习面试

机器学习面试
机器学习面试

2.3xgboost

2.3.1XGBoost的优缺点

4.1 优点

剪枝:XGBoost 先从顶到底建立所有可以建立的子树,再从底到顶反向进行剪枝。比起 GBM,这样不容易陷入局部最优解。

XGBoost工具支持并行: boosting不是一种串行的结构吗?怎么并行的?注意XGBoost的并行不是tree粒度的并行,XGBoost也是一次迭代完才能进行下一次迭代的(第 次迭代的代价函数里包含了前面 次迭代的预测值)。XGBoost的并行是在特征粒度上的。我们知道,决策树的学习最耗时的一个步骤就是对特征的值进行排序(因为要确定最佳分割点),XGBoost在训练之前,预先对数据进行了排序,然后保存为block结构,后面的迭代中重复地使用这个结构,大大减小计算量。这个block结构也使得并行成为了可能,在进行节点的分裂时,需要计算每个特征的增益,最终选增益最大的那个特征去做分裂,那么各个特征的增益计算就可以开多线程进行。

可并行的近似算法: 树节点在进行分裂时,我们需要计算每个特征的每个分割点对应的增益,即用贪心法枚举所有可能的分割点。当数据无法一次载入内存或者在分布式情况下,贪心算法效率就会变得很低,所以XGBoost还提出了一种可并行的近似算法,用于高效地生成候选的分割点。

精度更高: GBDT 只用到一阶泰勒展开,而 XGBoost 对损失函数进行了二阶泰勒展开。XGBoost 引入二阶导一方面是为了增加精度,另一方面也是为了能够自定义损失函数,二阶泰勒展开可以近似大量损失函数;

正则化: XGBoost 在目标函数中加入了正则项,用于控制模型的复杂度。正则项里包含了树的叶子节点个数、叶子节点权重的 范式。正则项降低了模型的方差,使学习出来的模型更加简单,有助于防止过拟合,这也是XGBoost优于传统GBDT的一个特性。

缺失值处理: 对于特征的值有缺失的样本,XGBoost 采用的稀疏感知算法可以自动学习出它的分裂方向;

Shrinkage(缩减): 相当于学习速率。XGBoost 在进行完一次迭代后,会将叶子节点的权重乘上该系数,主要是为了削弱每棵树的影响,让后面有更大的学习空间。传统GBDT的实现也有学习速率;

列抽样: XGBoost 借鉴了随机森林的做法,支持列抽样,不仅能降低过拟合,还能减少计算。这也是XGBoost异于传统GBDT的一个特性;

灵活性更强: GBDT 以 CART 作为基分类器,XGBoost 不仅支持 CART 还支持线性分类器,使用线性分类器的 XGBoost 相当于带 和 正则化项的逻辑斯蒂回归(分类问题)或者线性回归(回归问题)。此外,XGBoost 工具支持自定义损失函数,只需函数支持一阶和二阶求导;

4.2 缺点
虽然利用预排序和近似算法可以降低寻找最佳分裂点的计算量,但在节点分裂过程中仍需要遍历数据集;

预排序过程的空间复杂度过高,不仅需要存储特征值,还需要存储特征对应样本的梯度统计值的索引,相当于消耗了两倍的内存。
机器学习面试

2.3.2 XGBoost与GBDT的联系和区别有哪些?

(1)GBDT是机器学习算法,XGBoost是该算法的工程实现。
(2)正则项: 在使用CART作为基分类器时,XGBoost显式地加入了正则项来控制模型的复杂度,有利于防止过拟合,从而提高模型的泛化能力。
(3)导数信息: GBDT在模型训练时只使用了代价函数的一阶导数信息,XGBoost对代价函数进行二阶泰勒展开,可以同时使用一阶和二阶导数。
(4)基分类器: 传统的GBDT采用CART作为基分类器,XGBoost支持多种类型的基分类器,比如线性分类器。
(5)子采样: 传统的GBDT在每轮迭代时使用全部的数据,XGBoost则采用了与随机森林相似的策略,支持对数据进行采样。
(6)缺失值处理: 传统GBDT没有设计对缺失值进行处理,XGBoost能够自动学习出缺失值的处理策略。
(7)并行化: 传统GBDT没有进行并行化设计,注意不是tree维度的并行,而是特征维度的并行。XGBoost预先将每个特征按特征值排好序,存储为块结构,分裂结点时可以采用多线程并行查找每个特征的最佳分割点,极大提升训练速度。

2.3.3 为什么XGBoost泰勒二阶展开后效果就比较好呢?

(1)从为什么会想到引入泰勒二阶的角度来说(可扩展性): XGBoost官网上有说,当目标函数是MSE时,展开是一阶项(残差)+二阶项的形式,而其它目标函数,如logistic loss的展开式就没有这样的形式。为了能有个统一的形式,所以采用泰勒展开来得到二阶项,这样就能把MSE推导的那套直接复用到其它自定义损失函数上。简短来说,就是为了统一损失函数求导的形式以支持自定义损失函数。至于为什么要在形式上与MSE统一?是因为MSE是最普遍且常用的损失函数,而且求导最容易,求导后的形式也十分简单。所以理论上只要损失函数形式与MSE统一了,那就只用推导MSE就好了。

(2)从二阶导本身的性质,也就是从为什么要用泰勒二阶展开的角度来说(精准性): 二阶信息本身就能让梯度收敛更快更准确。这一点在优化算法里的牛顿法中已经证实。可以简单认为一阶导指引梯度方向,二阶导指引梯度方向如何变化。简单来说,相对于GBDT的一阶泰勒展开,XGBoost采用二阶泰勒展开,可以更为精准的逼近真实的损失函数。

2.3.4 XGBoost对缺失值是怎么处理的?

在普通的GBDT策略中,对于缺失值的方法是先手动对缺失值进行填充,然后当做有值的特征进行处理,但是这样人工填充不一定准确,而且没有什么理论依据。而XGBoost采取的策略是先不处理那些值缺失的样本,采用那些有值的样本搞出分裂点,在遍历每个有值特征的时候,尝试将缺失样本划入左子树和右子树,选择使损失最优的值作为分裂点。

2.3.5 XGBoost为什么可以并行训练?

(1)XGBoost的并行,并不是说每棵树可以并行训练,XGBoost本质上仍然采用boosting思想,每棵树训练前需要等前面的树训练完成才能开始训练。

(2)XGBoost的并行,指的是特征维度的并行:在训练之前,每个特征按特征值对样本进行预排序,并存储为Block结构,在后面查找特征分割点时可以重复使用,而且特征已经被存储为一个个block结构,那么在寻找每个特征的最佳分割点时,可以利用多线程对每个block并行计算。

2.3.6 XGBoost如何评价特征重要性?

机器学习面试

2.4lightgbm

链接: 机器学习之12—Lightgbm

2.4.1 LightGBM主要改进点:

  1. Histogram算法
  2. 带深度限制的Leaf-wise的叶子生长策略
  3. 直方图差加速
    机器学习面试
    机器学习面试
    3.直方图差加速
    在树中,一个叶子的直方图可以由它的父亲节点的直方图与它兄弟的直方图做差得到。利用这个方法,LightGBM可以在构造一个叶子的直方图后,可以用非常微小的代价得到它兄弟叶子的直方图,在速度上可以提升一倍。

4.直接支持类别特征
一般算法,需要把类别特征转化到多维的0/1特征,然而会降低了空间和时间的效率。 LightGBM优化了对类别特征的支持,可以直接输入类别特征,不需要额外的0/1展开

2.4.2 LIghtGBM的优缺点:

优点:
1)速度较快,是XGBoost速度的16倍,内存占用率为XGBoost的1/6
2)采用了直方图算法,将连续的浮点型特征值离散化成K个整数
3)使用带有深度限制的leaf-wise的叶子生长策略。
机器学习面试
机器学习面试
缺点:
1)可能会长出比较深的决策树,产生过拟合。因此LightGBM在Leaf-wise之上增加了一个最大深度限制,在保证高效率的同时防止过拟合
2)基于偏差的算法,会对噪点较为敏感
3)在寻找最优解时,依据的最优切分变量,没有将最优解是全部特征的综合这一理念来考虑

叙述xgboost和lightgbm的区别
介绍一下xgb
xgb的boosting如何体现,有什么特殊含义
xgb能否处理离散特征,为什么,如果要用怎么处理
lgb能否处理,模型做了哪些操作