1 请说明随机森林较一般决策树稳定的几点原因
随机森林由多棵决策树形成,并且并行计算多棵决策树。
稳定的原因:
(1)bagging的方法,多棵树投票提高泛化能力
(2)bagging中引入随机(参数、样本、特征、空间映射),避免单棵树的过拟合,提高整体泛化能力
决策树的缺点和注意事项:
决策树的最大缺点:贪心算法。决策树做的选择只能是某种意义上的局部最优选择。
若目标变量是连续变量,决策树不可以使用,改用回归模型。
若某些自变量的类别种类较多,或者自变量是区间型时,决策树过拟合的危险会增大。这种情况需要分箱或多次模型验证,确保其具有稳定性。
对区间型变量进行分箱操作时,无论是否考虑了顺序因素,都有可能因为分箱丧失了某些重要信息,尤其是当分箱前的区间变量与目标变量有明显的线性关系时,这种分箱造成的损失更为明显。
2 什么是聚类分析?聚类算法有哪几种?请选择一种详细描述其计算原理和步骤。
聚类分析是一种无监督的学习方法,根据一定条件将相对同质的样本归到一个类中。
聚类方法主要有:
a. 层次聚类:对给定的数据集进行层次的分解,直到满足某种条件为止。具体分为“自底向上”和“自顶向下”两种方案。
b. 划分聚类:给定一个有N个元组或者纪录的数据集,用分裂法构造K个分组,每个分组代表一个聚类,K《N。
经典算法:kmeans
c. 密度聚类:与其他方法的根本区别:不是基于各种各样的距离,而是基于密度的。
经典算法:DBSCAN。指导思想:只要一个区域中的点的密度大过某个阈值,把它加到与之相近的聚类中。
d. 网格聚类:首先将数据空间划分为有限个单元(cell)的网格结构,所有的处理都以单个的单元为对象。
经典算法:STING,利用网格单元保存数据统计信息,从而实现多分辨率的聚类。
e. 模型聚类:基于模型的方法给每一个聚类假定一个模型,然后去寻找能够很好的满足这个模型的数据集。
高斯混合模型
具体介绍k-means,选k个点开始作为聚类中心,然后剩下的点根据距离划分到类中;找到新的类中心;重新分配点;迭代直到达到收敛条件或者迭代次数。 优点是快;缺点是要先指定k,同时对异常值很敏感。
3 以下算法对缺失值敏感的模型包括:(AE)
A、Logistic Regression(逻辑回归) B、随机森林 C、朴素贝叶斯 D、C4.5 E、SVM
具体分析:
A 逻辑回归(目标变量是二元变量):
建模数据量不能太少,目标变量中每个类别所对应的样本数量要足够充分,才能支持建模。
排除共线性问题(自变量间相关性很大)。
异常值会给模型带来很大干扰,应剔除。
逻辑回归不能处理缺失值,所以之前应对缺失值进行适当处理。
B 随机森林:
可处理高维数据,不同特征进行选择(特征子集是随机选择)。
模型的泛化能力较强。
训练模型时速度快,成并行化方式,即树之间相互独立。
模型可以处理不平衡数据,平衡误差。
最终训练结果,可以进行排序,选择比较重要的特征。
随机森林有袋外数据(OOB),因此不需要单独划分交叉验证集。
对缺失值、异常值不敏感。
模型训练结果准确度高。
相对Bagging能够收敛于更小的泛化误差。
C 朴素贝叶斯:
假设前提有两个,第一个为:各特征彼此独立;第二个为:对被解释变量的影响一致,不能进行变量筛选
朴素贝叶斯对缺失值不敏感。
D C4.5决策树:
C4.5算法的优点是:产生的分类规则易于理解,不用做特征选择,准确率较高。
C4.5算法的缺点是:在构造树的过程中,需要对数据集进行多次的顺序扫描和排序,因而导致算法的低效。
C4.5对缺失值不敏感,因为它有应对缺失值的处理方案。
E SVM:
SVM考虑寻找一个满足分类要求的超平面,并且使训练集中的点距离分类面尽可能的远,也就是寻找一个分类面使它两侧的空白区域(margin)最大。
SVM的优点:
可以解决小样本,高维和非线性问题。
可以避免神经网络结构选择和局部极小点问题。
SVM的缺点:
对缺失数据敏感。
对非线性问题没有通用解决方案,须谨慎选择不同Kernel function来处理。
4 线性回归和逻辑回归的区别
线性回归针对的目标变量是区间型的, 逻辑回归针对的目标变量是类别型的。
线性回归模型的目标变量和自变量之间的关系假设是线性相关的,逻辑回归模型中的目标变量和自变量是非线性的。
线性回归中通常会用假设,对应于自变量x的某个值,目标变量y的观察值是服从正态分布的。逻辑回归中目标变量y是服从二项分布0和1或者多项分布的。
逻辑回归中不存在线性回归中常见的残差。
参数估值上,线性回归采用最小平方法,逻辑回归采用最大似然法。
5 根据要求写出sql
表A结构如下: Member_ID(用户的ID,字符型) Log_time(用户访问页面时间,日期型(只有一天的数据)) URL(访问的页面地址,字符型) 要求:提取出每个用户访问的第一个URL(按时间最早),形成一个新表(新表名为B,表结构和表A一致)
create B as select Member_ID,min(Log_time),URLfrom A group by Member_id