机器学习面试八股3
31 如果给你一些数据集,你会如何分类(我是分情况答的,从数据的大小,特征,是否有
缺失,分情况分别答的);
根据数据类型选择不同的模型,如 Lr 或者 SVM,决策树。
假如特征维数较多,可以选择 SVM 模型,
如果样本数量较大可以选择 LR 模型,但是 LR 模型需要进行数据预处理;
假如缺失值较多可以选择决策树。
选定完模型后,相应的目标函数就确定了。还可以在考虑正负样例比比,通过上下集采样
平衡正负样例比。
32 如果数据有问题,怎么处理;
上下采样平衡正负样例比;2.考虑缺失值;3.数据归一化
常见的损失函数有:0-1 损失函数、绝对损失函数、平方损失函数、对数损失函数
经验风险用来度量模型在整个训练集上的预测效果好坏,而损失函数用来度量模型在单个
训练样本上的预测效果好坏
梯度(gradient)其实是一个向量,一个函数对于其自变量分别求偏导数,这些偏导数所组
成的向量就是函数的梯度。
线性可分支持向量机的模型表达式和感知机是一样的,只不过对于模型参数的求解方式不
一样,导致模型的泛化性能也不一样。感知机利用误分类最小的策略得到分离超平面,线
性可分支持向量机利用间隔最大化的策略得到分离超平面。
线性可分支持向量机是通过最大化训练集的几何间隔来得到模型参数的。几何间隔最大化
可以转化为不等式约束条件下的目标函数最小化问题。
线性可分支持向量机的模型参数通过训练集的每个样本和其对应的拉格朗日乘子计算而来
有多少个训练样本,就有多少个拉格朗日乘子;其中拉格朗日乘子大于零的样本特征向量
就是支持向量
非线性支持向量机用来解决非线性分类问题,本质是将特征向量映射到新的特征空间中,
从而使得数据在新的特征空间中线性可分,然后利用线性支持向量机的方法求解模型参数
33 分层抽样的适用范围
分层抽样利用事先掌握的信息,充分考虑了保持样本结构和总体结构的一致性,当总体由差异
明显的几部分组成的时候,适合用分层抽样。
34LR 和线性回归的区别
线性回归用来做预测,LR 用来做分类。线性回归是来拟合函数,LR 是来预测函数。线性回归
用最小二乘法来计算参数,LR 用最大似然估计来计算参数。线性回归更容易受到异常值的影
响,而 LR 对异常值有较好的稳定性。
35 生成模型和判别模型基本形式,有哪些?
生成式:朴素贝叶斯、HMM 隐含马尔柯夫模型、Gaussians、马尔科夫随机场
判别式:LR,SVM,神经网络,CRF,Boosting
36 核函数的种类和应用场景
线性核、多项式核、高斯核、Sigmoid 核函数。
特征维数高选择线性核
样本数量可观、特征少选择高斯核(非线性核)
样本数量非常多选择线性核(避免造成庞大的计算量)
当样本的特征很多且维数很高时可考虑用 SVM 的线性核函数。当样本的数量较多,特征较少
时,一般手动进行特征的组合再使用 SVM 的线性核函数。当样本维度不高且数量较少时,且
不知道该用什么核函数时一般优先使用高斯核函数,因为高斯核函数为一种局部性较强的核
函数,无论对于大样本还是小样本均有较好的性能且相对于多项式核函数有较少的参数
37 核函数的作用
核函数隐含着一个从低维空间到高维空间的映射,这个映射可以把低维空间中线性不可分的
两类点变成线性可分的。
38 分类算法列一下有多少种?应用场景
单一的分类方法主要包括:LR 逻辑回归,SVM 支持向量机,DT 决策树、NB 朴素贝叶斯、
NN 人工神经网络、K-近邻;
集成学习算法:基于 Bagging 和 Boosting 算法思想,RF 随机森林,GBDT,Adaboost,XGboost
39SVM 为什么使用对偶函数求解
对偶将原始问题中的不等式约束转为了对偶问题中的等式约束, 对偶问题更容易求解,因为
不用求 w 了;而且更加方便了核函数的引入,同时也改变了问题的复杂度,在原始问题下,求
解问题的复杂度只与样本的维度有关,在对偶问题下,只与样本的数量有关。
40ID3,C4.5 和 CART 三种决策树的区别
ID3 决策树优先选择信息增益大的属性来对样本进行划分,但是这样的分裂节点方法有一个
很大的缺点,当一个属性可取值数目较多时,可能在这个属性对应值下的样本只有一个或者很
少个,此时它的信息增益将很高,ID3 会认为这个属性很适合划分,但实际情况下叫多属性的取
值会使模型的泛化能力较差,
所以 C4.5 不采用信息增益作为划分依据,而是采用信息增益率作为划分依据。但是仍不能完
全解决以上问题,而是有所改善
,这个时候引入了 CART 树,它使用 gini 系数作为节点的分裂依据。
41SVM 和全部数据有关还是和局部数据有关?
SVM 只和分类界限上的支持向量点有关,换而言之只和局部数据有关。
42 为什么高斯核能够拟合无穷维度
因为将泰勒展开式代入高斯核,将会得到一个无穷维度的映射。
SVM 的复杂度主要由支持向量数刻画,而不是数据的维度,因此相比其他方法,SVM 不太
容易过拟合。
43LR 和 SVM 区别
LR 是参数模型,SVM 是非参数模型。
2)从目标函数来看,区别在于逻辑回归采用的是 logistical loss,SVM 采用的是 hinge loss.这
两个损失函数的目的都是增加对分类影响较大的数据点的权重,减少与分类关系较小的数
据点的权重。
3)SVM 的处理方法是只考虑 support vectors,也就是和分类最相关的少数点,去学习分类
器。而逻辑回归通过非线性映射,大大减小了离分类平面较远的点的权重,相对提升了与
分类最相关的数据点的权重。
4)逻辑回归相对来说模型更简单,好理解,特别是大规模线性分类时比较方便。而 SVM
的理解和优化相对来说复杂一些,SVM 转化为对偶问题后,分类只需要计算与少数几个支持
向量的距离,这个在进行复杂核函数计算时优势很明显,能够大大简化模型和计算。
5)logic 能做的 svm 能做,但可能在准确率上有问题,svm 能做的 logic 有的做不了。
44 L1 和 L2 正则化的区别
L1 是模型各个参数的绝对值之和,L2 为各个参数平方和的开方值。
L1 正则实质上是对模型参数分布做了拉普拉斯分布的先验性假设,L2 正则是对模型参数分
布做了高斯分布的先验性假设
L1 更趋向于产生少量的特征,其它特征为 0,最优的参数值很大概率出现在坐标轴上,从而导
致产生稀疏
的权重矩阵,而 L2 会选择更多的特征,这些特征都会接近于 0。最优的参数值很小概率出现
在坐标轴上,因此每一维的参数都不会是 0。当最小化||w||时,就会使每一项趋近于 0
45Loss Function 有哪些,怎么用?
平方损失(预测问题)、交叉熵(分类问题)、hinge 损失(SVM 支持向量机)、CART 回
归树的残差损失
46 线性回归的表达式,损失函数;
线性回归 y=wx+b,w 和 x 可能是多维。线性回归的损失函数为平方损失函数。
反向求导推导
47 知道哪些传统机器学习模型
1).回归算法:回归算法是试图采用对误差的衡量来探索变量之间的关系的一类算法。回
归 算 法 是 统 计 机 器 学 习 的 利 器 。 常 见 的 回 归 算 法 包 括 : 最 小 二 乘 法 ( Ordinary Least
Square ) , 逐 步 式 回 归 ( Stepwise Regression ) , 多 元 自 适 应 回 归 样 条 ( Multivariate
Adaptive Regression Splines ) 以 及 本 地 散 点 平 滑 估 计 ( Locally Estimated Scatterplot
Smoothing)。
2).基于实例的算法:基于实例的算法常常用来对决策问题建立模型,这样的模型常常先
选取一批样本数据,然后根据某些近似性把新数据与样本数据进行比较。通过这种方式来
寻找最佳的匹配。因此,基于实例的算法常常也被称为“赢家通吃”学习或者“基于记忆
的 学 习 ” 。 常 见 的 算 法 包 括 k-Nearest Neighbor(KNN), 学 习 矢 量 量 化 ( Learning Vector
Quantization, LVQ),以及自组织映射算法(Self-Organizing Map,SOM)。深度学习的概
念源于人工神经网络的研究。含多隐层的多层感知器就是一种深度学习结构。深度学习通
过组合低层特征形成更加抽象的高层表示属性类别或特征,以发现数据的分布式特征表示。
3).决策树学习:决策树算法根据数据的属性采用树状结构建立决策模型, 决策树模型常
常 用 来 解 决 分 类 和 回 归 问 题 。 常 见 的 算 法 包 括 : 分 类 及 回 归 树 ( Classification And
Regression Tree , CART ) , ID3 (Iterative Dichotomiser 3) , C4.5 , Chi-squared Automatic
Interaction Detection(CHAID), Decision Stump, 随机森林(Random Forest),多元自适应回归
样条(MARS)以及梯度推进机(Gradient Boosting Machine,GBM)。
4).贝叶斯方法:贝叶斯方法算法是基于贝叶斯定理的一类算法,主要用来解决分类和回
归问题。常见算法包括:朴素贝叶斯算法,平均单依赖估计( Averaged One-Dependence
Estimators,AODE),以及 Bayesian Belief Network(BBN)。
5).基于核的算法:基于核的算法中最著名的莫过于支持向量机(SVM)了。基于核的算
法把输入数据映射到一个高阶的向量空间,在这些高阶向量空间里,有些分类或者回归问
题能够更容易的解决。常见的基于核的算法包括:支持向量机( Support Vector Machine,
SVM), 径向基函数(Radial Basis Function,RBF),以及线性判别分析(Linear Discriminate
Analysis,LDA)等。
6).聚类算法:聚类,就像回归一样,有时候人们描述的是一类问题,有时候描述的是一
类算法。聚类算法通常按照中心点或者分层的方式对输入数据进行归并。所以的聚类算法
都试图找到数据的内在结构,以便按照最大的共同点将数据进行归类。常见的聚类算法包
括 k-Means 算法以及期望最大化算法(Expectation Maximization,EM)。
7).降低维度算法:像聚类算法一样,降低维度算法试图分析数据的内在结构,不过降低
维度算法是以非监督学习的方式试图利用较少的信息来归纳或者解释数据。这类算法可以
用于高维数据的可视化或者用来简化数据以便监督式学习使用。常见的算法包括:主成份
分 析 ( Principle Component Analysis , PCA ) , 偏 最 小 二 乘 回 归 ( Partial Least Square
Regression,PLS),Sammon 映射,多维尺度(Multi-Dimensional Scaling, MDS), 投影追踪
(Projection Pursuit)等。
8).关联规则学习:关联规则学习通过寻找最能够解释数据变量之间关系的规则,来找出
大量多元数据集中有用的关联规则。常见算法包括 Apriori 算法和 Eclat 算法等。
9).集成算法:集成算法用一些相对较弱的学习模型独立地就同样的样本进行训练,然后
把结果整合起来进行整体预测。集成算法的主要难点在于究竟集成哪些独立的较弱的学习
模型以及如何把学习结果整合起来。这是一类非常强大的算法,同时也非常流行。常见的
算法包括:Boosting,Bootstrapped Aggregation(Bagging),AdaBoost,堆叠泛化(Stacked
Generalization,Blending),梯度推进机(Gradient Boosting Machine, GBM),随机森林
(Random Forest)。
10).人工神经网络:人工神经网络算法模拟生物神经网络,是一类模式匹配算法。通常用
于解决分类和回归问题。人工神经网络是机器学习的一个庞大的分支,有几百种不同的算
法。(其中深度学习就是其中的一类算法,我们会单独讨论),重要的人工神经网络算法
包括:感知器神经网络( Perceptron Neural Network), 反向传递(Back Propagation),
Hopfield 网络,自组织映射(Self-Organizing Map, SOM)。学习矢量量化(Learning Vector
Quantization, LVQ)
48 什么是 DBSCAN
DBSCAN 是一种基于密度的空间聚类算法,它不需要定义簇的个数,而是将具有足够高密度的
区域划分为簇,并在有噪声的数据中发现任意形状的簇,在此算法中将簇定义为密度相连的点
的最大集合
49k-means 算法流程
从数据集中随机选择 k 个聚类样本作为初始的聚类中心,然后计算数据集中每个样本到这 k
个聚类中心的距离,并将此样本分到距离最小的聚类中心所对应的类中。将所有样本归类后,
对于每个类别重新计算每个类别的聚类中心即每个类中所有样本的质心 ,重复以上操作直到
聚类中心不变为止。
50LDA 的原理
LDA 是一种基于有监督学习的降维方式,将数据集在低维度的空间进行投影,要使得投影后的
同类别的数据点间的距离尽可能的靠近,而不同类别间的数据点的距离尽可能的远。
————————————————
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上
原文出处链接和本声明。
原文链接:https://blog.csdn.net/weixin_44125042/article/details/131738048