个人面试问答题知识库(二)基础模型篇

       上一篇主要包含了部分面试中的常见问题,在我准备知识库期间,腾讯发起了一场突如其来的面试,让我转变了思路,因此有了这一篇的内容。在面试时,面试官没有拘泥于一些被问烂了的面试题,而是一个个的让我介绍各种模型以及它们的优缺点。具体问法类似于,“LR知道吗”,“介绍一下”,“LR有哪些优点”,“LR有哪些缺点”,“RF知道吗”,“介绍一下”,等等。
       这场面试让我意识到,除了一些面试常见题,考察对基础模型了解的深度也是展现机器学习功底的有效方法。虽然我能介绍LR,也能很轻松的手推公式,但真被问到了LR有什么优点的时候,只能脱口而出“形式简单速度快”之后再也想不出别的了,这种对基础模型的理解应该是在实际运用中累积起来的,光靠看书推公式没有办法提升,而临近面试最好的办法也只能是把各种模型都准备一遍了,在这个过程中加深理解。

49、介绍一下LR?

①逻辑回归是个二分类模型,它假设数据服从伯努利分布,通过极大化似然估计推导交叉熵损失函数,运用梯度下降来求解参数
②由于激活函数使用了Sigmoid函数,因此输出的值在0~1之间,可以认为是 y y y的期望
③逻辑回归的损失函数是交叉熵损失函数 J ( θ ) = − ∑ i = 1 n [ y ( i ) l o g h θ ( x ( i ) ) + ( 1 − y ( i ) ) l o g ( 1 − h θ ( x ( i ) ) ) ] J(θ)=-∑_{i=1}^n[y^{(i)}logh_θ(x^{(i)})+(1-y^{(i)})log(1-h_θ(x^{(i)}))] J(θ)=i=1n[y(i)loghθ(x(i))+(1y(i))log(1hθ(x(i)))],是由似然函数 L ( θ ) = ∏ i = 1 n [ h θ ( x ( i ) ) ] y ( i ) [ 1 − h θ ( x ( i ) ) ] 1 − y ( i ) L(θ)=∏_{i=1}^n[h_θ(x^{(i)})]^{y^{(i)}}[1-h_θ (x^{(i)})]^{1-y^{(i)}} L(θ)=i=1n[hθ(x(i))]y(i)[1hθ(x(i))]1y(i)取对数后得到的
推导过程:
J ( θ ) = − Y T l o g h θ ( X ) − ( E − Y ) T l o g ( E − h θ ( X ) ) J(θ)=-Y^Tlogh_θ (X)-(E-Y)^T log(E-h_θ (X)) J(θ)=YTloghθ(X)(EY)Tlog(Ehθ(X)) δ J ( θ ) δ θ = − X T [ 1 h θ ( X ) h θ ( X ) ( E − h θ ( X ) ) Y ] − X T [ 1 E − h θ ( X ) ( − h θ ( X ) ) ( E − h θ ( X ) ) ( E − Y ) ] \frac{δJ(θ)}{δθ}=-X^T [\frac{1}{h_θ (X)}h_θ (X)(E-h_θ (X))Y]-X^T [\frac{1}{E-h_θ (X)}(-h_θ (X))(E-h_θ (X))(E-Y)] δθδJ(θ)=XT[hθ(X)1hθ(X)(Ehθ(X))Y]XT[Ehθ(X)1(hθ(X))(Ehθ(X))(EY)]
化简得
δ J ( θ ) δ θ = X T [ h θ ( X ) − Y ] \frac{δJ(θ)}{δθ}=X^T[h_θ (X)-Y] δθδJ(θ)=XT[hθ(X)Y]④LR可以看作对数几率的线性回归
⑤LR用于多分类,参考50
⑥在工业界使用LR一般会先进行特征离散化

50、LR如何用于多分类?

①one VS one策略,假设有 K K K类,不同类别两两之间训练一个分类器,可得到 C K 2 C_K^2 CK2个分类器,预测时可得到 K ( K − 1 ) K(K-1) K(K1)个结果,最终结果通过投票产生
②one VS rest策略,假设有 K K K类,根据每个类别训练一个分类器,可得到 K K K个分类器
③将逻辑回归改造成Softmax回归,由于参数有冗余, K K K个类别共有 K − 1 K-1 K1组参数,即
P ( Y = k ∣ x , θ ) = e θ k x 1 + ∑ k = 1 K − 1 e θ k x P(Y=k|x,θ)=\frac{e^{θ_kx}}{1+∑_{k=1}^{K-1}e^{θ_kx}} P(Y=kx,θ)=1+k=1K1eθkxeθkx P ( Y = K ∣ x , θ ) = 1 1 + ∑ k = 1 K − 1 e θ k x P(Y=K|x,θ)=\frac{1}{1+∑_{k=1}^{K-1}e^{θ_kx}} P(Y=Kx,θ)=1+k=1K1eθkx1④如果类别之间明显互斥,则使用Softmax分类器,如果不互斥,使用 K K K个逻辑回归分类器

51、LR的优点?

①形式简单,模型易解释,特征权重可以体现特征重要性
②速度快,计算量只和特征数目相关,容易并行,适合大规模数据
③LR本身就是对特征进行线性相加,因此不会受到多重共线性的影响
④LR输出的是概率,可以很方便的调整划分阈值

52、LR的缺点?

①容易欠拟合,分类精度不高,只能处理线性可分的数据,需要手动进行特征工程,例如特征离散化
②LR本身无法筛选特征
③依赖全部的特征,当特征有缺失时表现不好
④预测结果呈现S型,中间概率变化大,两端概率变化小
⑤很难处理数据不平衡的问题

53、LR为什么要对特征进行离散化?

①离散特征的增加和减少都很容易
②稀疏向量内积运算速度快
③离散化特征对异常数据具有很好的鲁棒性
④LR属于GLM,表达能力有限,单变量离散化为 N N N个变量后,这 N N N个变量都有单独的权重,相当于引入了非线性
⑤离散化后特征还能进一步交叉,由 M + N M+N M+N个变量变成 M × N M×N M×N个变量,进一步引入非线性
⑥其实模型是使用连续特征还是离散特征,本质上是一个“大量离散特征+简单模型”与“少量连续特征+复杂模型”的权衡,既可以离散化用线性模型,也可以连续特征用深度学习,前者会更容易一些,因为可以多个人一起并行做

54、介绍一下决策树?

①决策树是用于分类或者回归的一种树结构,由节点和有向边组成
②节点的类型分为内部节点和叶子节点,内部节点表示一个特征,叶子节点表示一个预测分类或者预测值
③具体的分裂过程是,从根节点开始,根据设定的划分准则,挑选一个最优特征的最优切分点对样本进行分裂,生成若干个子节点
④对每一个节点判断是否满足停止分裂的条件,比如样本全属于同一类别、样本在所有特征上取值相同、样本集为空,如果满足条件,设置该节点为叶子节点,对于分类问题,它的输出结果为该节点占比最大的类别,对于回归问题,如果是平方损失函数,输出结果为样本均值
⑤一般分类问题的划分准则有信息增益、信息增益比、基尼指数,回归问题可以使用平方损失函数,还有像GBDT、XGBoost这类的集成算法也可以自己设置损失函数
⑥为了防止过拟合,决策树可以采用预剪枝、后剪枝提高泛化能力,详见17
⑦也可以用随机森林来防止过拟合

55、决策树的优点?

参考44

56、决策树的缺点?

①决策树容易过拟合
②决策树本质基于贪心的学习策略来搜索假设空间,不一定能找到让损失函数最小化的划分方式
③决策树节点的每一次分裂都是垂直于坐标轴的一次划分,且只利用了一个特征,难以拟合出倾斜的分类超平面,例如有两个特征,如果分界线是二维平面上的一条斜线,决策树需要分裂多次才能拟合出这个分界线

57、介绍一下SVM?

参考13

58、SVM的优点?

①利用内积核函数代替向高维空间的非线性映射
②几何间隔最大化的思想很适合小样本分类
③最终的分类超平面只取决于少数的支持向量,具有较好的鲁棒性,即增、删非支持向量样本对模型没有影响
④与决策树等贪心本质的算法不同,SVM构造的是一个凸二次规划问题,因此可以得到最优解

59、SVM的缺点?

①SVM性能的优劣很大程度取决于核函数,目前核函数的选取都是人为的,带有随意性
②SVM对大规模训练样本难以实施,因为SVM的二次规划计算涉及到 m m m阶矩阵, m m m为样本个数,当 m m m很大时,耗费的内存和计算时间都会很大
③SVM难以解决多分类问题,一般只能采用训练多个分类器的方式

60、介绍一下SMO算法?

①SVM最终推导得到的是如下凸二次规划的对偶问题
min ⁡ α   ⁡ 1 2 ∑ i = 1 N ∑ j = 1 N α i α j y i y j K ( x i , x j ) − ∑ i = 1 N α i \min_α ⁡\frac{1}{2}∑_{i=1}^N∑_{j=1}^Nα_i α_j y_i y_j K(x_i,x_j )-∑_{i=1}^Nα_i αmin 21i=1Nj=1NαiαjyiyjK(xi,xj)i=1Nαi s . t .   ∑ i = 1 N α i y i = 0 s.t. ∑_{i=1}^Nα_iy_i=0 s.t. i=1Nαiyi=0 0 ≤ α i ≤ C 0≤α_i≤C 0αiC②此外还有需要满足的KKT条件
α i = 0   ↔   y i g ( x i ) ≥ 1 α_i=0 ↔ y_i g(x_i )≥1 αi=0  yig(xi)1 0 < α i < C   ↔   y i g ( x i ) = 1 0<α_i<C  ↔  y_i g(x_i )=1 0<αi<C  yig(xi)=1 α i = C   ↔   y i g ( x i ) ≤ 1 α_i=C  ↔  y_i g(x_i )≤1 αi=C  yig(xi)1③SMO算法的基本思路是,如果所有 α α α都满足KKT条件,那么最优解就得到了,否则就选择两个变量,固定其他变量,针对这两个变量构建一个二次规划问题
④第一个变量的选择方法是,通过外层循环选择违反KKT条件最严重的样本点,具体来说先检查 0 < α i < C 0<α_i<C 0<αi<C的样本点,如果这些样本点都满足KKT条件,再遍历整个训练集
⑤对第二个变量,由于更新公式是
E i = g ( x i ) − y i E_i=g(x_i )-y_i Ei=g(xi)yi α 2 n e w , u n c = α 2 o l d + y 2 ( E 1 − E 2 ) K 11 + K 22 − 2 K 12 α_2^{new,unc}=α_2^{old}+\frac{y_2 (E_1-E_2 )}{K_{11}+K_{22}-2K_{12}} α2new,unc=α2old+K11+K222K12y2(E1E2) α 2 n e w , u n c α_2^{new,unc} α2new,unc再经过裁剪,得到 α 2 n e w α_2^{new} α2new
α 2 n e w = { H , α 2 n e w > H α 2 n e w , u n c , L ≤ α 2 n e w , u n c ≤ H L , α 2 n e w , u n c < L α_2^{new}=\left\{ \begin{array}{rcl} H, & & {\alpha_2^{new}>H}\\ \alpha_2^{new,unc}, & & {L\leq\alpha_2^{new,unc}\leq H}\\ L, & & {\alpha_2^{new,unc}<L} \end{array} \right. α2new=H,α2new,unc,L,α2new>HLα2new,uncHα2new,unc<L为了让 α 2 α_2 α2有足够大的变化,选择 α 2 α_2 α2使对应的 ∣ E 1 − E 2 ∣ |E_1-E_2| E1E2最大
⑥找到并计算出 α 2 n e w α_2^{new} α2new后,求 α 1 n e w α_1^{new} α1new
α 1 n e w = α 1 o l d + y 1 y 2 ( α 2 o l d − α 2 n e w ) α_1^{new}=α_1^{old}+y_1y_2(α_2^{old}-α_2^{new}) α1new=α1old+y1y2(α2oldα2new)

61、介绍一下AdaBoost?

①AdaBoost是一种用于分类的Boosting算法,它是由一系列弱分类器线性相加组成,每个弱分类器都有相应的权重,所以是加法模型,它的每一轮迭代产生的弱分类器都是在上一轮的基础上训练得来的,因此是前向分步算法
②AdaBoost涉及到两个权重,一个是样本权重,AdaBoost提高/降低上一轮被分类错误/正确样本的权重,让当前弱分类器的关注点在错误分类的样本上,具体的说,设当前弱分类器权重是 α m α_m αm,则下一轮样本权重 w m + 1 , i = w m , i e − α m y i G m ( x i ) Z w_{m+1,i}=\frac{w_{m,i}e^{-α_m y_i G_m (x_i )}}{Z} wm+1,i=Zwm,ieαmyiGm(xi);另一个是弱分类器权重,加大/减小分类误差率大/小的弱分类器权重,具体的说,设弱分类器分类误差率是 e m e_m em,则弱分类器的权重 α m = 1 2 ln ⁡ 1 − e m e m α_m=\frac{1}{2}\ln\frac{1-e_m}{e_m} αm=21lnem1em
③AdaBoost样本权重保证了前面的弱分类器重点处理普遍情况,后面的弱分类器重点处理疑难杂症,最终的分类器权重保证了前面的弱分类器有更大的权重,这有先抓总体再抓特例的思想
④AdaBoost每个弱分类器的损失函数是带权重样本的分类误差率,整体的损失函数是指数损失函数

62、AdaBoost的优点?

①AdaBoost提供的是一个框架,内部弱分类器可以是任何算法
②AdaBoost训练误差的上界会随着弱分类器的增加而以指数速率下降
③AdaBoost在弱分类器较简单的时候不容易发生过拟合(没有明确解释)
④AdaBoost参数较少,调参方便

63、AdaBoost的缺点?

①对离群点敏感,容易受到噪声干扰,异常点在迭代中获得更高权重
②执行效果依赖于弱分类器的选择
③弱分类器数目不好确定

64、介绍一下RF?

①随机森林包括“森林”和“随机”两个层面
②随机森林中的“森林”代表多棵决策树,随机森林是以决策树为基模型的bagging集成算法,它解决了决策树泛化能力弱的缺点
③“随机”则体现在两个方面,第一个方面,数据集通过自助采样法随机获取,第二个方面,每棵树(注意不是每个节点)使用不同的特征子集,上述二重随机性使得每棵树之间的独立性增加,进而降低整体方差
④设单模型之间的相关系数为 0 < ρ < 1 0<ρ<1 0<ρ<1,则模型均值的方差为
V a r ( 1 n ∑ i = 1 n X i ) = σ 2 n + n − 1 n ρ σ 2 Var(\frac{1}{n}∑_{i=1}^nX_i)=\frac{σ^2}{n}+\frac{n-1}{n}ρσ^2 Var(n1i=1nXi)=nσ2+nn1ρσ2⑤随机森林内的每棵决策树都没有剪枝过程,这是因为bagging集成负责降低方差,而每棵决策树主要目标为降低偏差

65、RF的优点?

①训练与预测阶段,树与树之间可并行化处理,速度较快,适用于大数据集
②bagging本质使得随机森林能降低过拟合风险,且具有很强的抗干扰能力
③在特征层面,随机森林能处理高纬度特征,不需要做特征选择,且训练完后能给出特征重要性
④随机森林既能解决分类问题也能解决回归问题
⑤决策树的优点,参考44

66、RF的缺点?

①随机森林解决回归问题没有分类问题表现那么好,因为它不能给出一个连续的输出,不能做出超越数据集范围的预测
②随机森林的优势是处理高纬度、特征遗失、不平衡数据,但对低维数据可能表现不好
③随机森林像黑盒子,有很多不好解释的地方

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值