最新机器学习面试题目文档格式.docx
《最新机器学习面试题目文档格式.docx》由会员分享,可在线阅读,更多相关《最新机器学习面试题目文档格式.docx(19页珍藏版)》请在冰豆网上搜索。
1.样本数据的问题。
样本数量太少;
抽样方法错误,抽出的样本数据不能有效足够代表业务逻辑或业务场景。
比如样本符合正态分布,却按均分分布抽样,或者样本数据不能代表整体数据的分布;
样本里的噪音数据干扰过大
2.模型问题
模型复杂度高、参数太多
决策树模型没有剪枝
权值学习迭代次数足够多(Overtraining),拟合了训练数据中的噪声和训练样例中没有代表性的特征.
解决方法
1.样本数据方面。
增加样本数量,对样本进行降维,添加验证数据
抽样方法要符合业务场景
清洗噪声数据
2.模型或训练问题
控制模型复杂度,优先选择简单的模型,或者用模型融合技术。
利用先验知识,添加正则项。
L1正则更加容易产生稀疏解、L2正则倾向于让参数w趋向于0.
4、交叉验证
不要过度训练,最优化求解时,收敛之前停止迭代。
权值衰减
5、泛化能力
泛化能力是指模型对未知数据的预测能力
6、生成模型和判别模型
1.生成模型:
由数据学习联合概率分布P(X,Y),然后求出条件概率分布P(Y|X)作为预测的模型,即生成模型:
P(Y|X)=P(X,Y)/P(X)。
(朴素贝叶斯、Kmeans)
生成模型可以还原联合概率分布p(X,Y),并且有较快的学习收敛速度,还可以用于隐变量的学习
2.判别模型:
由数据直接学习决策函数Y=f(X)或者条件概率分布P(Y|X)作为预测的模型,即判别模型。
(k近邻、决策树、SVM)
直接面对预测,往往准确率较高,直接对数据在各种程度上的抽象,所以可以简化模型
7、线性分类器与非线性分类器的区别以及优劣
如果模型是参数的线性函数,并且存在线性分类面,那么就是线性分类器,否则不是。
常见的线性分类器有:
LR,贝叶斯分类,单层感知机、线性回归
常见的非线性分类器:
决策树、RF、GBDT、多层感知机
SVM两种都有(看线性核还是高斯核)
线性分类器速度快、编程方便,但是可能拟合效果不会很好
非线性分类器编程复杂,但是效果拟合能力强
8、特征比数据量还大时,选择什么样的分类器?
线性分类器,因为维度高的时候,数据一般在维度空间里面会比较稀疏,很有可能线性可分
对于维度很高的特征,你是选择线性还是非线性分类器?
理由同上
对于维度极低的特征,你是选择线性还是非线性分类器?
非线性分类器,因为低维空间可能很多特征都跑到一起了,导致线性不可分
1.如果Feature的数量很大,跟样本数量差不多,这时候选用LR或者是LinearKernel的SVM
2.如果Feature的数量比较小,样本数量一般,不算大也不算小,选用SVM+GaussianKernel
3.如果Feature的数量比较小,而样本数量很多,需要手工添加一些feature变成第一种情况
9、ill-condition病态问题
训练完的模型测试样本稍作修改就会得到差别很大的结果,就是病态问题(这简直是不能用啊)
10、L1和L2正则的区别,如何选择L1和L2正则
http:
//blog.csdn.NET/xbmatrix/article/details/61624196
他们都是可以防止过拟合,降低模型复杂度
L1是在lossfunction后面加上模型参数的1范数(也就是|xi|)
L2是在lossfunction后面加上模型参数的2范数(也就是sigma(xi^2)),注意L2范数的定义是sqrt(sigma(xi^2)),在正则项上没有添加sqrt根号是为了更加容易优化
L1会产生稀疏的特征
L2会产生更多地特征但是都会接近于0
L1会趋向于产生少量的特征,而其他的特征都是0,而L2会选择更多的特征,这些特征都会接近于0。
L1在特征选择时候非常有用,而L2就只是一种规则化而已。
L1求解
最小角回归算法:
LARS算法
11、越小的参数说明模型越简单
过拟合的,拟合会经过曲面的每个点,也就是说在较小的区间里面可能会有较大的曲率,这里的导数就是很大,线性模型里面的权值就是导数,所以越小的参数说明模型越简单。
12、为什么一些机器学习模型需要对数据进行归一化?
归一化化就是要把你需要处理的数据经过处理后(通过某种算法)限制在你需要的一定范围内。
1)归一化后加快了梯度下降求最优解的速度。
等高线变得显得圆滑,在梯度下降进行求解时能较快的收敛。
如果不做归一化,梯度下降过程容易走之字,很难收敛甚至不能收敛
2)把有量纲表达式变为无量纲表达式,有可能提高精度。
一些分类器需要计算样本之间的距离(如欧氏距离),例如KNN。
如果一个特征值域范围非常大,那么距离计算就主要取决于这个特征,从而与实际情况相悖(比如这时实际情况是值域范围小的特征更重要)
3)逻辑回归等模型先验假设数据服从正态分布。
哪些机器学习算法不需要做归一化处理?
概率模型不需要归一化,因为它们不关心变量的值,而是关心变量的分布和变量之间的条件概率,如决策树、rf。
而像adaboost、gbdt、xgboost、svm、lr、KNN、KMeans之类的最优化问题就需要归一化。
特征向量的归一化方法
线性函数转换,表达式如下:
y=(x-MinValue)/(MaxValue-MinValue)
对数函数转换,表达式如下:
y=log10(x)
反余切函数转换,表达式如下:
y=arctan(x)*2/PI
减去均值,乘以方差:
y=(x-means)/variance
标准化与归一化的区别
简单来说,标准化是依照特征矩阵的列处理数据,其通过求z-score的方法,将样本的特征值转换到同一量纲下。
归一化是依照特征矩阵的行处理数据,其目的在于样本向量在点乘运算或其他核函数计算相似性时,拥有统一的标准,也就是说都转化为“单位向量”。
规则为l2的归一化公式如下:
13、特征向量的缺失值处理
1.缺失值较多.直接将该特征舍弃掉,否则可能反倒会带入较大的noise,对结果造成不良影响。
2.缺失值较少,其余的特征缺失值都在10%以内,我们可以采取很多的方式来处理:
1)把NaN直接作为一个特征,假设用0表示;
2)用均值填充;
3)用随机森林等算法预测填充
随机森林如何处理缺失值(http:
//charleshm.github.io/2016/03/Random-Forest-Tricks/)
方法一(na.roughfix)简单粗暴,对于训练集,同一个class下的数据,如果是分类变量缺失,用众数补上,如果是连续型变量缺失,用中位数补。
方法二(rfImpute)这个方法计算量大,至于比方法一好坏?
不好判断。
先用na.roughfix补上缺失值,然后构建森林并计算proximitymatrix,再回头看缺失值,如果是分类变量,则用没有缺失的观测实例的proximity中的权重进行投票。
如果是连续型变量,则用proximity矩阵进行加权平均的方法补缺失值。
然后迭代4-6次,这个补缺失值的思想和KNN有些类似12。
随机森林如何评估特征重要性(http:
衡量变量重要性的方法有两种,DecreaseGINI和DecreaseAccuracy:
1)DecreaseGINI:
对于回归问题,直接使用argmax(Var−VarLeft−VarRight)作为评判标准,即当前节点训练集的方差Var减去左节点的方差VarLeft和右节点的方差VarRight。
2)DecreaseAccuracy:
对于一棵树Tb(x),我们用OOB样本可以得到测试误差1;
然后随机改变OOB样本的第j列:
保持其他列不变,对第j列进行随机的上下置换,得到误差2。
至此,我们可以用误差1-误差2来刻画变量j的重要性。
基本思想就是,如果一个变量j足够重要,那么改变它会极大的增加测试误差;
反之,如果改变它测试误差没有增大,则说明该变量不是那么的重要。
14、优化Kmeans
使用kd树或者balltree(这个树不懂)
将所有的观测实例构建成一颗kd树,之前每个聚类中心都是需要和每个观测点做依次距离计算,现在这些聚类中心根据kd树只需要计算附近的一个局部区域即可
KMeans初始类簇中心点的选取
k-means++算法选择初始seeds的基本思想就是:
初始的聚类中心之间的相互距离要尽可能的远。
1.从输入的数据点集合中随机选择一个点作为第一个聚类中心
2.对于数据集中的每一个点x,计算它与最近聚类中心(指已选择的聚类中心)的距离D(x)
3.选择一个新的数据点作为新的聚类中心,选择的原则是:
D(x)较大的点,被选取作为聚类中心的概率较大
4.重复2和3直到k个聚类中心被选出来
5.利用这k个初始的聚类中心来运行标准的k-means算法
15、解释对偶的概念
一个优化问题可以从两个角度进行考察,一个是primal问题,一个是dual问题,就是对偶问题,一般情况下对偶问题给出主问题最优值的下界,在强对偶性成立的情况下由对偶问题可以得到主问题的最优下界,对偶问题是凸优化问题,可以进行较好的求解,SVM中就是将primal问题转换为dual问题进行求解,从而进一步引入核函数的思想。
16、如何进行特征选择?
特征选择是一个重要的数据预处理过程,主要有两个原因:
一是减少特征数量、降维,使模型泛化能力更强,减少过拟合;
二是增强对特征和特征值之间的理解
常见的特征选择方式:
1.去除方差较小的特征
2.正则化。
1正则化能够生成稀疏的模型。
L2正则化的表现更加稳定,由于有用的特征往往对应系数非零。
3.随机森林,对于分类问题,通常采用基尼不纯度或者信息增益,对于回归问题,通常采用的是方差或者最小二乘拟合。
一般不需要featureengineering、调参等繁琐的步骤。
它的两个主要问题,1是重要的特征有可能得分很低(关联特征问题),2是这种方法对特征变量类别多的特征越有利(偏向问题)。
4.稳定性选择。
是一种基于二次抽样和选择算法相结合较新的方法,选择算法可以是回归、SVM或其他类似的方法。
它的主要思想是在不同的数据子集和特征子集上运行特征选择算法,不断的重复,最终汇总特征选择结果,比如可以统计某个特征被认为是重要特征的频率(被选为重要特征的次数除以它所在的子集被测试的次数)。
理想情况下,重要特征的得分会接近100%。
稍微弱一点的特征得分会是非0的数,而最无用的特征得分将会接近于0。
17、数据预处理
1.缺失值,填充缺失值fillna:
i