胡萝卜(4)

目录

1、请描述推荐系统中协同过滤算法CF的原理

协同过滤算法,主要的功能是预测和推荐。

通过对用户历史行为数据的挖掘发现用户的偏好,基于不同的偏好对用户进行群组划分并推荐品味相似的商品。分为两大类

  • 一类为基于memory的(Memory-based),包括
    基于用户的协同过滤算法(user-based collaboratIve filtering)
    基于物品的协同过滤算法(item-based collaborative filtering)
    两种方法都是将用户的所有数据读入到内存中进行运算的;
  • 另一类为基于Model的(Model-based),包括
    Aspect Model,pLSA,LDA,聚类,SVD,Matrix Factorization等
    这种方法训练过程比较长,但是训练完成后,推荐过程比较快。

以下三个步骤:
1.收集数据
2.找到相似用户和物品
3.进行推荐
具体请参考:http://blog.csdn.net/qq_32725491/article/details/79014088

简单的说就是:人以类聚,物以群分。

1.基于用户的协同过滤算法(user-based collaboratIve filtering)
这里写图片描述

2.基于物品的协同过滤算法(item-based collaborative filtering)
这里写图片描述

2、请描述决策树的原理、过程、终止条件,以及如何防止过拟合

参考博客:https://www.cnblogs.com/sxron/p/5471078.html

决策树(decision tree)是一种基本的分类与回归方法,主要用于分类。

可以看做是if-then规则的集合。

  • 优点:分类速度快,模型具有可读性
  • 决策树学习的3个步骤:特征选择、决策树生成、决策树修剪
  • 决策树算法:ID3、C4.5、CART

决策树生成算法
ID3、C4.5、CART

  • ID3算法利用信息增益为准则,来选择划分属性,对取值数目较多的属性有所偏好(如西瓜编号属性),容易过拟合,不具有泛化能力,对新样本的预测能力差
  • C4.5算法利用信息增益率选择属性,但并不是直接选择信息增益率最大的候选划分属性,而是使用启发式,先从候选划分属性中找出信息增益高于平均水平的属性,再从中选择增益率最高的
  • CART使用“基尼系数”来选择划分属性,从数据集随机抽取两个样本,类别标记不一致的概率,Gini(D)越小,数据集的纯度越高

剪枝处理(防止过拟合)

  • 剪枝是防止过拟合的主要手段
  • 有预剪枝、后剪枝

决策树终止的条件

  • 没有属性可以分裂
  • 直到数据集不可分则停止决策树停止生长

一棵决策树的生成过程主要分为以下3个部分:

  • 特征选择:特征选择是指从训练数据中众多的特征中选择一个特征作为当前节点的分裂标准,如何选择特征有着很多不同量化评估标准标准,从而衍生出不同的决策树算法。
  • 决策树生成: 根据选择的特征评估标准,从上至下递归地生成子节点,直到数据集不可分则停止决策树停止生长。 树结构来说,递归结构是最容易理解的方式。
  • 剪枝:决策树容易过拟合,一般来需要剪枝,缩小树结构规模、缓解过拟合。剪枝技术有预剪枝和后剪枝两种。


预剪枝是根据一些原则及早的停止树增长

  • 如树的深度达到用户所要的深度
  • 节点中样本个数少于用户指定个数
  • 不纯度指标下降的最大幅度小于用户指定的幅度等。

预剪枝的核心问题是如何事先指定树的最大深度

  • 如果设置的最大深度不恰当,那么将会导致过于限制树的生长,使决策树的表达式规则趋于一般,不能更好地对新数据集进行分类和预测。

除了事先限定决策树的最大深度之外,还有另外一个方法来实现预剪枝操作

  • 那就是采用检验技术对当前结点对应的样本集合进行检验
    如果该样本集合的样本数量已小于事先指定的最小允许值,那么停止该结点的继续生长,并将该结点变为叶子结点,否则可以继续扩展该结点。

后剪枝则是通过在完全生长的树上剪去分枝实现的

  • 通过删除节点的分支来剪去树节点
    可以使用的后剪枝方法有多种,比如:代价复杂性剪枝、最小误差剪枝、悲观误差剪枝等等。

后剪枝操作是一个边修剪边检验的过程

  • 一般规则标准是:在决策树的不断剪枝操作过程中,将原样本集合或新数据集合作为测试数据,检验决策树对测试数据的预测精度,并计算出相应的错误率
  • 如果剪掉某个子树后的决策树对测试数据的预测精度或其他测度不降低,那么剪掉该子树。

预剪枝、后剪枝总结

  • 预剪枝:事先指定树的最大深度(具有局限性)
  • 后剪枝:边修剪边检验,如果修剪后预测精度不下降,则减掉

3、请描述K-means的原理,说明选择聚类中心的方法

K-means是一种聚类算法(区别于分类算法),属于无监督。

  • K-means的原理是通过多次的迭代,使得各个样本点到其所属簇的质心的距离平方和最小。

大致 的算法流程如下:

  • 从样本中选取K个点,初始化K个簇的质心;
  • 分别计算各个样本到不同质心的相异度,将样本归到相异度最小的质心所属的簇;
  • 根据聚类结果,重新计算质心;
  • 不断重复上述过程,直到精度达到要求。

聚类中心一般随机初始化,也可以选取K个相聚最远的样本点

4、请列举分类模型和回归模型的区别

定量输出称为回归,或者说是连续变量预测;

定性输出称为分类,或者说是离散变量预测。

举个例子:
预测明天的气温是多少度,这是一个回归任务;
预测明天是阴、晴还是雨,就是一个分类任务。

5、请列举生成模型与判别模型的区别

  • 生成模型学习联合概率分布,再用贝叶斯
  • 判别模型直接学习条件概率分布

这里写图片描述

6、梯度下降法求解最优化问题的原理与步骤

函数的梯度是函数下降/上升的最大方向。

如果要对一个目标函数做最小化

  • 每次只需将目标函数对各个parameters 做偏导,得到梯度
  • 然后用当前parameter加上负梯度乘以一个步长进行更新。
  • 步长太大可能跳出局部最优点。

常用的梯度下降方法有batch gd(使用全部数据计算梯度),SGD(对每个sample计算梯度)。 SGD计算更快,并且能取得不错的效果,而且有时能跳出局部最优,去explore其他更优 的极值点

7、请列举Random Forest和GBDT的区别

Random Forest 是bootstrap(bagging)的方法的tree based ensemble

  • 即又放回的对训练数据采样,分别训练decision tree,
  • 最后用简单的投票方式作为最终结果。

GBDT 是 boosting 的代表

  • 每次训练都是使用所有数据,但是认为最终结果是多颗树的叠加
  • 训练完一棵树以后,将结果的残差作为下一棵树的训练目标。
  • 在这个过程中还使用了梯度近似残差的方法。

8、什么是欠拟合、过拟合?避免过拟合有哪些途径?

欠拟合:高偏差;

过拟合:高方差;

方法:增大数据量,正则化(L1、L2),Dropout、早停

9、逻辑回归的目标函数和优化方法

目标函数是服从二项分布的似然函数,优化常用的是梯度下降法

10、讲下 拟牛顿法

  • 对比了下梯度下降法只是泰勒的一阶展开式
  • 而牛顿法是泰勒的二阶展开式

牛顿法主要问题在于海森矩阵求逆是一个很复杂的过程,所有才会有拟牛顿法以及相应的改进算法。

11、讲下随机森林或者GDBT

随机森林

采用的是bagging的思想,bagging又称为bootstrap aggreagation,通过在训练样本集中进行有放回的采样得到多个采样集,基于每个采样集训练出一个基学习器,再将基学习器结合。随机森林在对决策树进行bagging的基础上,在决策树的训练过程中引入了随机属性选择。传统决策树在选择划分属性的时候是在当前节点属性集合中选择最优属性,而随机森林则是对结点先随机选择包含k个属性的子集,再选择最优属性,k作为一个参数控制了随机性的引入程度。

GBDT

GBDT采用的是boosting的思想,先从初始训练集训练出一个基学习器,再根据基学习器的表现对训练样本分布进行调整,使得基学习器做错的训练样本在后续受到更多的关注,然后基于调整后的样本分布来训练下一个基学习器,最后将所有基学习器加权结合。GDBT在传统的boosting的基础上,将以决策树为基函数的提升树拟合残差,利用损失函数的负梯度在当前模型的值作为残差的估计。

12、RF、GBDT的区别

GBDT和随机森林的相同点:

  • 1、都是由多棵树组成
  • 2、最终的结果都是由多棵树一起决定

GBDT和随机森林的不同点:

  • 1、组成随机森林的树可以是分类树,也可以是回归树;而GBDT只由回归树组成
  • 2、组成随机森林的树可以并行生成; 而GBDT只能是串行生成
  • 3、对于最终的输出结果而言,随机森林采用多数投票等;而GBDT则是将所有结果累加起来,或者加权累加起来
  • 4、随机森林对异常值不敏感,GBDT对异常值非常敏感
  • 5、随机森林对训练集一视同仁,GBDT是基于权值的弱分类器的集成
  • 6、随机森林是通过减少模型方差提高性能,GBDT是通过减少模型偏差提高性能

13、随机森林怎么取最后的结果?

对于分类任务,随机森林是多数表决;
对于回归任务,随机森林是简单平均

14、随机森林是怎样避免ID3算法信息增益的缺点的?

首先说下信息增益的过程,决策树算法本质上就是要找出每一列的最佳划分以及不同列划分的先后顺序及排布。

  • 信息增益的缺点是比较偏向选择取值多的属性。
  • 而gini系数每次都是二分,所以跟属性多少没有关系。

15、为什么deep learning 能抑制梯度消失或者爆炸的问题?

:几个方面:

  • 一是激活函数不光是只用sigmoid函数,还有 ReLU函数
  • 二是在参数并不是初始化的时候并不是随机选择的,而是在前面有自编码器做了特征特征器,这样避免了梯度下降法求解陷入局部最优解;
  • 三,深度学习一些手段,权值共享,卷积核,pooling等都能抑制梯度消失问题;
  • 四,二次代价函数换成交叉熵损失函数或者选用softmax+对数似然代价函数的组合。
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值