机器学习面试题节选(2)

30、谈谈判别式模型和生成式模型?

解析:

判别方法:由数据直接学习决策函数 Y = f(X),或者由条件分布概率 P(Y|X)作为预测模型,即判别模型。
生成方法:由数据学习联合概率密度分布函数 P(X,Y),然后求出条件概率分布P(Y|X)作为预测的模型,即生成模型。
由生成模型可以得到判别模型,但由判别模型得不到生成模型。
常见的判别模型有:K近邻、SVM、决策树、感知机、线性判别分析(LDA)、线性回归、传统的神经网络、逻辑斯蒂回归、boosting、条件随机场
常见的生成模型有:朴素贝叶斯、隐马尔可夫模型、高斯混合模型、文档主题生成模型(LDA)、限制玻尔兹曼机
31、线性分类器与非线性分类器的区别以及优劣

解析:

线性和非线性是针对,模型参数和输入特征来讲的;比如输入x,模型y=ax+ax^2那么就是非线性模型,如果输入是x和X^2则模型是线性的。
线性分类器可解释性好,计算复杂度较低,不足之处是模型的拟合效果相对弱些。
非线性分类器效果拟合能力较强,不足之处是数据量不足容易过拟合、计算复杂度高、可解释性不好。
常见的线性分类器有:LR,贝叶斯分类,单层感知机、线性回归
常见的非线性分类器:决策树、RF、GBDT、多层感知机
SVM两种都有(看线性核还是高斯核)
引用自@伟祺

解析:

过拟合的原因是算法的学习能力过强;一些假设条件(如样本独立同分布)可能是不成立的;训练样本过少不能对整个空间进行分布估计。 
41、防止过拟合的方法
处理方法:
1 早停止:如在训练中多次迭代后发现模型性能没有显著提高就停止训练
2 数据集扩增:原有数据增加、原有数据加随机噪声、重采样
3 正则化,正则化可以限制模型的复杂度
4 交叉验证
5 特征选择/特征降维
6 创建一个验证集是最基本的防止过拟合的方法。我们最终训练得到的模型目标是要在验证集上面有好的表现,而不训练集
42、机器学习中,为何要经常对数据做归一化
维基百科给出的解释:1)归一化后加快了梯度下降求最优解的速度;2)归一化有可能提高精度。
3 归一化的类型
1)线性归一化

这种归一化方法比较适用在数值比较集中的情况。这种方法有个缺陷,如果max和min不稳定,很容易使得归一化结果不稳定,使得后续使用效果也不稳定。实际使用中可以用经验常量值来替代max和min。

2)标准差标准化
经过处理的数据符合标准正态分布,即均值为0,标准差为1,其转化函数为:

其中μ为所有样本数据的均值,σ为所有样本数据的标准差。

3)非线性归一化
经常用在数据分化比较大的场景,有些数值很大,有些很小。通过一些数学函数,将原始值进行映射。该方法包括 log、指数,正切等。需要根据数据分布的情况,决定非线性函数的曲线,比如log(V, 2)还是log(V, 10)等。

本题解析来源:@zhanlijun,链接:http://www.cnblogs.com/LBSer/p/4440590.html

 

标准化和归一化什么区别?

作者:myazi
链接:https://www.zhihu.com/question/20467170/answer/222792995
来源:知乎
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
 

1归一化

特点

对不同特征维度的伸缩变换的目的是使各个特征维度对目标函数的影响权重是一致的,即使得那些扁平分布的数据伸缩变换成类圆形。这也就改变了原始数据的一个分布。

好处:

1 提高迭代求解的收敛速度

2 提高迭代求解的精度

 

2标准化

特点

对不同特征维度的伸缩变换的目的是使得不同度量之间的特征具有可比性。同时不改变原始数据的分布。

好处

1 使得不同度量之间的特征具有可比性,对目标函数的影响体现在几何分布上,而不是数值上

2 不改变原始数据的分布

举例

根据人的身高和体重预测人的健康指数

假设有如下原始样本数据是四维的(当然一般不会有这么无聊的数据)

 

从上面两个坐标图可以看出,样本在数据值上的分布差距是不一样的,但是其几何距离是一致的。而标准化就是一种对样本数据在不同维度上进行一个伸缩变化(而不改变数据的几何距离),也就是不改变原始数据的信息(分布)。这样的好处就是在进行特征提取时,忽略掉不同特征之间的一个度量,而保留样本在各个维度上的信息(分布)。

从采用大单位的身高和体重这两个特征来看,如果采用标准化,不改变样本在这两个维度上的分布,则左图还是会保持二维分布的一个扁平性;而采用归一化则会在不同维度上对数据进行不同的伸缩变化(归一区间,会改变数据的原始距离,分布,信息),使得其呈类圆形。虽然这样样本会失去原始的信息,但这防止了归一化前直接对原始数据进行梯度下降类似的优化算法时最终解被数值大的特征所主导。归一化之后,各个特征对目标函数的影响权重是一致的。这样的好处是在提高迭代求解的精度。

  

49、随机森林如何评估特征重要性?

解析:

衡量变量重要性的方法有两种,Decrease GINI 和 Decrease Accuracy:
1) Decrease GINI: 对于回归问题,直接使用argmax(VarVarLeftVarRight)作为评判标准,即当前节点训练集的方差Var减去左节点的方差VarLeft和右节点的方差VarRight。
2) Decrease Accuracy:对于一棵树Tb(x),我们用OOB样本可以得到测试误差1;然后随机改变OOB样本的第j列:保持其他列不变,对第j列进行随机的上下置换,得到误差2。至此,我们可以用误差1-误差2来刻画变量j的重要性。基本思想就是,如果一个变量j足够重要,那么改变它会极大的增加测试误差;反之,如果改变它测试误差没有增大,则说明该变量不是那么的重要。
50、优化Kmeans?

解析:

使用kd树或者ball tree
将所有的观测实例构建成一颗kd树,之前每个聚类中心都是需要和每个观测点做依次距离计算,现在这些聚类中心根据kd树只需要计算附近的一个局部区域即可。

 

51、KMeans初始类簇中心点的选取。

解析:

k-means++算法选择初始seeds的基本思想就是:初始的聚类中心之间的相互距离要尽可能的远。
1. 从输入的数据点集合中随机选择一个点作为第一个聚类中心
2. 对于数据集中的每一个点x,计算它与最近聚类中心(指已选择的聚类中心)的距离D(x)
3. 选择一个新的数据点作为新的聚类中心,选择的原则是:D(x)较大的点,被选取作为聚类中心的概率较大
4. 重复2和3直到k个聚类中心被选出来
5. 利用这k个初始的聚类中心来运行标准的k-means算法
说说常见的优化算法及其优缺点?

解析:

温馨提示:在回答面试官的问题的时候,往往将问题往大的方面去回答,这样不会陷于小的技术上死磕,最后很容易把自己嗑死了。
简言之
1)随机梯度下降
优点:可以一定程度上解决局部最优解的问题
缺点:收敛速度较慢
2)批量梯度下降
优点:容易陷入局部最优解
缺点:收敛速度较快
3)mini_batch梯度下降
综合随机梯度下降和批量梯度下降的优缺点,提取的一个中和的方法。
4)牛顿法
牛顿法在迭代的时候,需要计算Hessian矩阵,当维度较高的时候,计算  Hessian矩阵比较困难。
5)拟牛顿法
拟牛顿法是为了改进牛顿法在迭代过程中,计算Hessian矩阵而提取的算法,它采用的方式是通过逼近Hessian的方式来进行求解。

具体而言
从每个batch的数据来区分
梯度下降:每次使用全部数据集进行训练
优点:得到的是最优解
缺点:运行速度慢,内存可能不够
随机梯度下降:每次使用一个数据进行训练
优点:训练速度快,无内存问题
缺点:容易震荡,可能达不到最优解
Mini-batch梯度下降
优点:训练速度快,无内存问题,震荡较少
缺点:可能达不到最优解

从优化方法上来分:
随机梯度下降(SGD)
缺点
选择合适的learning	rate比较难	
对于所有的参数使用同样的learning rate	
容易收敛到局部最优
可能困在saddle point
SGD+Momentum
优点:
积累动量,加速训练
局部极值附近震荡时,由于动量,跳出陷阱
梯度方向发生变化时,动量缓解动荡。
Nesterov Mementum
与Mementum类似,优点:
避免前进太快
提高灵敏度
AdaGrad
优点:
控制学习率,每一个分量有各自不同的学习率
适合稀疏数据
缺点
依赖一个全局学习率
学习率设置太大,其影响过于敏感
后期,调整学习率的分母积累的太大,导致学习率很低,提前结束训练。
RMSProp
优点:
解决了后期提前结束的问题。
缺点:
依然依赖全局学习率
Adam
Adagrad和RMSProp的合体
优点:
结合了Adagrad善于处理稀疏梯度和RMSprop善于处理非平稳目标的优点
为不同的参数计算不同的自适应学习率
也适用于大多非凸优化 -	适用于大数据集和高维空间
牛顿法
牛顿法在迭代的时候,需要计算Hessian矩阵,当维度较高的时候,计算 Hessian矩阵比较困难
拟牛顿法
拟牛顿法是为了改进牛顿法在迭代过程中,计算Hessian矩阵而提取的算法,它采用的方式是通过逼近Hessian的方式来进行求解。
90、请写出你了解的机器学习特征工程操作,以及它的意义

解析:

特征工程包括数据与特征处理、特征选择和降纬三部分。
数据与特征处理包括:
1.数据选择、清洗、采样
- 数据格式化;
- 数据清洗,填充缺失值、去掉脏数据,将不可信的样本丢掉,缺省值极多的字段考虑不用;
- 采样:针对正负样本不平衡的情况,当正样本远大于负样本时,且量都很大时,使用下采样,量不大时,可采集更多的数据或oversampling或修改损失函数;采样过程中可利用分层抽样保持不同类别数据的比例。

2.不同类型数据的特征处理
- 数值型:幅度调整/归一化、log等变化、统计值(例如max、min、mean、std)、离散化、分桶等
- 类别型:one-hot编码等
- 时间型: 提取出连续值的持续时间和间隔时间;提取出离散值的“年”、“月”、“日”、“一年中哪个星期/季度”、“一周中的星期几”、“工作日/周末”等信息
- 文本型:使用If-idf特征
- 统计型:加减平均、分位线、次序、比例

意义:
- 对数据进行预处理,可提高数据质量,提高挖掘质量。对数据进行清洗可填充缺失值、光滑噪声数据,识别和删除离群点数据,保证数据的一致性;
- 使用正确的采样方法可解决因数据不平衡带来的预测偏差;
- 对不同的数据类型进行不同的特征处理有助于提高特征的可用性,例如对数值型数据进行归一化可将数据转化到统一量纲下;对类别型数据,可用one-hot编码方法将类别数据数字化,数字化特征之后可更用来计算距离、相似性等;可从时间型数据当中提取中更多的时间特征,例如年、月和日等,这些特征对于业务场景以及模型的预测往往有很大的帮助。统计型特征处理有助于从业务场景中挖掘更丰富的信息。


特征选择包括:
1.Filter
使用方差、Pearson相关系数、互信息等方法过滤特征,评估单个特征和结果值之间的相关程度,留下Top相关的特征部分。

2.Wrapper
可利用“递归特征删除算法”,把特征选择看做一个特征子集搜索问题,筛选各种特征子集,用模型评估效果。

3.Embedded
可利用正则化方式选择特征,使用带惩罚项的基模型,除了选择出特征外,同时也进行了降纬。

意义:
-剔除对结果预测不大的特征,减小冗余,选择有意义的特征输入模型,提高计算性能。

降纬:
方法:主成分分析法(PCA)和线性判别分析(LDA)

意义:
通过PCA或LDA方法,将较高纬度样本空间映射到较低维度的样本空间,从而达到降纬的目的,减少模型的训练时间,提高模型的计算性能。
113、是否有可能捕获连续变量和分类变量之间的相关性?如果可以的话,怎样做?

解析:

是的,我们可以用ANCOVA(协方差分析)技术来捕获连续型变量和分类变量之间的相关性。

 

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值