基础研究面试准备

项目介绍

模型简介

LR、SVM、gbdt、xgb、决策树

模型优缺点

  1. 朴素贝叶斯
    优点:
    1.生成式模型,通过计算概率来进行分类,可以用来处理多分类问题;
    2.对小规模的数据表现很好,适合多分类任务,适合增量式训练,算法也比较简单。
    缺点:
    1.对输入数据的表达形式很敏感,
    2.因为假设的独立性,所以会带来一些准确率上的损失。
    3.需要计算先验概率,分类决策存在错误率。

  2. 决策树
    优点:
    1.概念简单,计算复杂度不高,可解释性强,输出结果易于理解,可以得到特征重要性;
    2.对中间值得确实不敏感,比较适合处理有缺失属性值的样本,能够处理不相关的特征;
    缺点:
    1.容易出现过拟合;
    2.忽略数据集中属性之间的相关性。

  3. SVM
    优点:
    1.可用于线性/非线性分类,也可以用于回归,结果容易解释;
    2.可以解决小样本情况下的机器学习问题,可以解决高维问题 可以避免神经网络结构选择和局部极小点问题。
    3.泛化能力强
    缺点:对参数调节和和函数的选择敏感,原始分类器不加修改仅适用于处理二分类问题。

  4. LR
    根据现有数据对分类边界线建立回归公式,依次进行分类。
    优点:实现简单,易于理解和实现;计算代价不高,速度很快,存储资源低;
    缺点:容易欠拟合,分类精度可能不高

相关技术

boosting, bagging

二者的主要区别是取样方式不同。Bagging采用均匀取样,而Boosting根据错误率来取样,因此Boosting的分类精度要优于Bagging。Bagging的训练集的选择是随机的,各轮训练集之间相互独立,而Boostlng的各轮训练集的选择与前面各轮的学习结果有关;Bagging的各个预测函数没有权重,而Boosting是有权重的;Bagging的各个预测函数可以并行生成,而Boosting的各个预测函数只能顺序生成。

Gradient Boosting:

Boosting是一种思想,Gradient Boosting是一种实现Boosting的方法,它主要的思想是,每一次建立模型是在之前建立模型损失函数的梯度下降方向。损失函数(loss function)描述的是模型的不靠谱程度,损失函数越大,则说明模型越容易出错。如果我们的模型能够让损失函数持续的下降,则说明我们的模型在不停的改进,而最好的方式就是让损失函数在其梯度(Gradient)的方向上下降。

Random Forest

随机森林,顾名思义,是用随机的方式建立一个森林,森林里面有很多的决策树组成,随机森林的每一棵决策树之间是没有关联的。在得到森林之后,当有一个新的输入样本进入的时候,就让森林中的每一棵决策树分别进行一下判断,看看这个样本应该属于哪一类(对于分类算法),然后看看哪一类被选择最多,就预测这个样本为那一类。 在建立每一棵决策树的过程中,有两点需要注意 - 采样与完全分裂。首先是两个随机采样的过程,random forest对输入的数据要进行行、列的采样。对于行采样,采用有放回的方式,也就是在采样得到的样本集合中,可能有重复的样本。假设输入样本为N个,那么采样的样本也为N个。这样使得在训练的时候,每一棵树的输入样本都不是全部的样本,使得相对不容易出现over-fitting。然后进行列采样,从M个feature中,选择m个(m << M)。之后就是对采样之后的数据使用完全分裂的方式建立出决策树,这样决策树的某一个叶子节点要么是无法继续分裂的,要么里面的所有样本的都是指向的同一个分类。一般很多的决策树算法都一个重要的步骤 - 剪枝,但是这里不这样干,由于之前的两个随机采样的过程保证了随机性,所以就算不剪枝,也不会出现over-fitting。 按这种算法得到的随机森林中的每一棵都是很弱的,但是大家组合起来就很厉害了。可以这样比喻随机森林算法:每一棵决策树就是一个精通于某一个窄领域的专家(因为我们从M个feature中选择m让每一棵决策树进行学习),这样在随机森林中就有了很多个精通不同领域的专家,对一个新的问题(新的输入数据),可以用不同的角度去看待它,最终由各个专家,投票得到结果。

Random forest与Bagging的区别:

1)Random forest是选与输入样本的数目相同多的次数(可能一个样本会被选取多次,同时也会造成一些样本不会被选取到),而bagging一般选取比输入样本的数目少的样本;
2)bagging是用全部特征来得到分类器,而random forest是需要从全部特征中选取其中的一部分来训练得到分类器; 一般Rand forest效果比bagging效果好!

GBDT

1) GBDT是GBDT的核心就在于,每一棵树学的是之前所有树结论和的残差,这个残差就是一个加预测值后能得真实值的累加量
2) 学习残差的原因是把残差方向当作全局最优方向,类比于用梯度方向代替最优方向。

XGBoost

  1. 显示的把树模型复杂度作为正则项加到优化目标中。
  2. 公式推导中用到了二阶导数,用了二阶泰勒展开。
  3. 实现了分裂点寻找近似算法。

模型的横向比较

参考文献

  1. http://blog.csdn.net/u013369277/article/details/51645672
  2. http://blog.csdn.net/chenhongc/article/details/9404583
  3. http://blog.csdn.net/w28971023/article/details/8240756
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值