互联网公司面试中经常被问的问题

机器学习

1.(腾讯)SVM的原理是什么?
参考答案: 支持向量机(SVM)第一种二类分类模型,它的基本模型是定义在特征空间上的间隔最大的线性分类器,间隔最大使它有别于感知机;支持向量机还包括核技巧,这使它成为实质上的非线性分类器。硬几何最大化解决线性可分问题,软几何间隔最大化解决线性不可分问题(摘自《统计学习方法》)。

2.(腾讯)LR的原理是什么?
参考答案: 逻辑回归以一个二分类算法,它的对数几率函数是一个线性函数 wTx ,我们用sigmoid函数近似 P(Y=1|X)=exp(wTx+b)1+exp(wTx+b) ,那么 P(Y=0|X)=11+exp(wTx+b) 。当线性函数的值接近于无穷是,概率值接近于1;反之,概率值接近于0。它本质上是一个线性模型,属于判别方法。

3.(腾讯)RF的优缺点是什么?
原理: 随机森林由LeoBreiman(2001)提出,它通过自助法(bootstrap)重采样技术,从原始训练样本集 N 中有放回地重复随机抽取 N 个样本生成新的训练样本集合,然后根据自助样本集生成k个分类树组成随机森林,在构造第i棵决策是时,在每个节点随机选择m(通常 log2d+1 d 是特征数)个特征作为该点划分的候选特征。新数据的分类结果按分类树投票多少形成的分数而定。其实质是对决策树算法的一种改进,将多个决策树合并在一起,每棵树的建立依赖于一个独立抽取的样品。单棵树的分类能力可能很小,每棵树都会完整成长而不会剪枝(Pruning)(这有可能在建完一棵正常树状分类器后会被采用),但在随机产生大量的决策树后,一个测试样品可以通过每一棵树的分类结果经统计后选择最可能的分类。
优点:

  • 在当前的很多数据集上,相对其他算法有着很大的优势,表现良好。
  • 它能够处理很高维度(feature很多)的数据,并且不用做特征选择。
  • 在训练完后,它能够给出哪些feature比较重要。
  • 在创建随机森林的时候,对generlization error使用的是无偏估计,模型泛化能力强。
  • 训练速度快,容易做成并行化方法。
  • 在训练过程中,能够检测到feature间的互相影响。
  • 对于不平衡的数据集来说,它可以平衡误差。
  • 如果有很大一部分的特征遗失,仍可以维持准确度。

缺点:

  • 随机森林已经被证明在某些噪音较大的分类或回归问题上会过拟合。
  • 对于有不同取值的属性的数据,取值划分较多的属性会对随机森林产生更大的影响,所以随机森林在这种数据上产出的属性权值是不可信的。

4.(腾讯)数据建模的过程是什么?
参考答案: 数据预处理->构建训练集和测试集->提取特征->选择学习算法->评估模型的有效性。

5.(腾讯)如何评估一个特征的有效性?
参考答案: 用特征之间的相关系数来评估特征之间的相关性,去掉相关性很大的一些特征;用决策树自动对特征重要性排序,越靠近根部的特征越重要。

6.(蘑菇街)说一下在参加阿里的比赛中,用到什么算法,怎么做的数据预处理,遇到什么困难。
参考答案:

  • 用到LR,SVM,GBDT和RF。
  • 去掉爬虫用户(点击量很大,购买量为零或者很小),去掉只有购买行为的用户(应为其他行为数据缺失),去掉只在双12有购买的用户和被购买的商品(因为是打折促销)。
  • a. 平台不熟悉,一开始python,sql和mapreduce都没用过,御膳房的文档也不够友好,导致前期花了很多时间来熟悉比赛的平台,好在慢慢研究官方的文档,慢慢对平台熟悉起来。b. 特征选择问题,一次性加入的特征太多,效果并不好,最后特征选择遇到困难,用具有单棵树的随机森林来选特征。c. 时间问题,实验室并不允许我们做其他的事情,我们只能在早上和晚上做比赛,往往是一边要完成实验室的科研工作,另外一方面也要每天在比赛上有新的突破,平衡时间很重要。

7.(蘑菇街)特征有做哪些处理?怎么筛选特征?
参考答案: 归一化,平滑处理。用特征之间的相关系数来评估特征之间的相关性,去掉相关性很大的一些特征;用决策树自动对特征重要性排序,越靠近根部的特征越重要。

8.(蘑菇街)怎么平滑的,在(购买量/点击量)上平滑,如果点击量为0可能存在问题?
参考答案: 用户有四种行为,并不会出现只有购买行为而无其他行为的情况。

9.(蘑菇街)介绍一下GBDT算法。
**参考答案:**Gradient Boost其实是一个框架,里面可以套入很多不同的算法。Boost是”提升”的意思,一般Boosting算法都是一个迭代的过程,每一次新的训练都是为了改进上一次的结果。

原始的Boost算法是在算法开始的时候,为每一个样本赋上一个权重值,初始的时候,大家都是一样重要的。在每一步训练中得到的模型,会使得数据点的估计有对有错,我们就在每一步结束后,增加分错的点的权重,减少分对的点的权重,这样使得某些点如果老是被分错,那么就会被“严重关注”,也就被赋上一个很高的权重。然后等进行了N次迭代(由用户指定),将会得到N个简单的分类器(basic learner),然后我们将它们组合起来(比如说可以对它们进行加权、或者让它们进行投票等),得到一个最终的模型。

而Gradient Boost与传统的Boost的区别是,每一次的计算是为了减少上一次的残差(residual),而为了消除残差,我们可以在残差减少的梯度(Gradient)方向上建立一个新的模型。所以说,在Gradient Boost中,每个新的模型的建立是为了使得之前模型的残差往梯度方向减少,与传统Boost对正确、错误的样本进行加权有着很大的区别。

10.(蘑菇街)优化方法,梯度下降和拟牛顿法有什么优缺点?
11.(蘑菇街)梯度下降法中的中的学习率怎么自适应得到?根据什么信息可以确定自适应率。因为你是做控制的,你们控制里面怎么自适应得到学习率?
12.(蘑菇街)在树模型中,除了熵,基尼指数,信息增益以外,还可以用来什么衡量不确定性?(比如方差?)
参考答案:分类树(classification tree)跟回归树相比,主要是分裂节点和修剪树的准则不同。首先定义节点m中类k的观测比例为:

p^mk=1NmxiRmI(yi=k)

分裂准则常用下面三个“误分类不纯度”、“Gini不纯度”、“熵不纯度”:

  • Misclassification error: 1NmiRmI(yik(m))=1
  • 4
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值