机器学习
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 中有放回地重复随机抽取
优点:
- 在当前的很多数据集上,相对其他算法有着很大的优势,表现良好。
- 它能够处理很高维度(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的观测比例为:
分裂准则常用下面三个“误分类不纯度”、“Gini不纯度”、“熵不纯度”:
- Misclassification error: 1Nm∑i∈RmI(yi≠k(m))=1−