算法面试必备-----数据挖掘常见面试题
- 算法面试必备-----数据挖掘常见面试题
-
- 一、数据挖掘概念
- 二、机器学习理论
- 三、数据预处理
-
- 1、异常值是指什么?请列举1种识别连续型变量异常值的方法?
- 2、什么是数据标准化,为什么要进行数据标准化?
- 3、如何处理缺失值数据?
- 4、如何进行探索性数据分析(EDA)?
- 5、给定一个数据集,这个数据集有缺失值,且这些缺失值分布在离中值有 1 个标准偏差的范围内。百分之多少的数据不会受到影响?为什么?
- 6、对于不平衡数据集,有什么应对方案?
- 7、什么是欠采样和过采样?
- 8、为什么需要对数值类型的特征做归一化?
- 9、在对数据进行预处理时,应该怎样处理类别型特征?
- 10、什么是组合特征,如何处理高维组合特征?
- 11、怎样有效的找到组合特征?
- 12、有哪些文本表示模型?他们各自有什么优缺点?
- 13、Word2Vec是如何工作的?和 LDA有什么区别与联系?
- 14、在图像分类任务中,训练数据不足会带来什么问题?如何缓解数据量不足带来的问题?
- 四、特征选择与特征提取(降维)
- 五、模型的评估
- 六、模型的性能度量
- 七、过拟合与欠拟合及处理
- 八、损失函数
- 九、集成学习
- 14 .在 k-means 或 kNN,我们是用欧氏距离来计算最近的邻居之间的距离。为什么不用曼哈顿距离?
- 15 .一个有 1000 列和 1 百万行的训练数据集。这个数据集是基于分类问题的。你来降低该数据集的维度以减少模型计算时间。你的机器内存有限,你会怎么做?(你可以自由做各种实际操作假设)
- 16. KNN 中的 K 是如何选取的?
- 十、分类算法
- 聚类算法
- 推荐算法
- 深度学习
- 目标检测
- 图像分割
- 图像分类
- 选择题
算法面试必备-----数据挖掘常见面试题
一、数据挖掘概念
1、数据挖掘的基础是什么?
现在已经成熟的三种技术支持这种技术:大规模数据收集,强大的多处理器计算机和数据挖掘算法。
2、数据挖掘的优缺点?
优点:
基本上,为了找到可能的违约者,我们在银行和金融机构中使用数据挖掘。此外,这是基于过去的事务,用户行为和数据模式完成的。
通常,它可以帮助广告商将正确的广告推向互联网。此外,它基于机器学习算法在网页上冲浪。此外,通过这种方式,数据挖掘既有利于买家,也有利于各种产品的销售者。
基本上,零售商场和杂货店的人们都使用它。此外,它是安排和保持大多数可销售物品在最关注的位置。
缺点:
安全性:用户在线用于各种用途的时间必须很重要。他们没有安全系统来保护我们。一些数据挖掘分析使用软件。这很难操作。因此他们需要用户进行基于知识的培训。数据挖掘技术不是100%准确。因此,它可能在某些条件下造成严重后果。
3、列出数据挖掘中使用的步骤?
a。业务理解
b, 数据理解
C。数据准备
d。造型
e, 评估
F。部署
4、数据挖掘有哪些问题?
任何严肃的数据挖掘包都需要解决许多问题
不确定性处理
处理缺失值
处理噪声数据
算法的效率
限制发现的知识只有用
纳入领域知识
数据的大小和复杂性
数据选择
可理解的发现知识:数据与发现的知识之间的一致性。
二、机器学习理论
1、极大似然估计
(1)定义
极大似然估计:利用已知的样本结果,反推最有可能(最大概率)导致这样结果的参数值(模型已定,参数未知)。
(2)求解极大似然估计的方法:
求最大似然估计量的一般步骤:
1)写出似然函数;
2)对似然函数取对数,并整理;
3)求导数;
4)解似然方程。
(3)极大似然估计和梯度下降法的区别是什么?
不同
2、批梯度下降法和SGD的区别是什么?为什么有这样的区别?
三、数据预处理
1、异常值是指什么?请列举1种识别连续型变量异常值的方法?
异常值(Outlier) 是指样本中的个别值,其数值明显偏离所属样本的其余观测值。在数理统计里一般是指一组观测值中与平均值的偏差超过两倍标准差的测定值。
2、什么是数据标准化,为什么要进行数据标准化?
数据标准化是预处理步骤,将数据标准化到一个特定的范围能够在反向传播中保证更好的收敛。一般来说,是将该值将去平均值后再除以标准差。如果不进行数据标准化,有些特征(值很大)将会对损失函数影响更大(就算这个特别大的特征只是改变了1%,但是他对损失函数的影响还是很大,并会使得其他值比较小的特征变得不重要了)。因此数据标准化可以使得每个特征的重要性更加均衡。
3、如何处理缺失值数据?
数据中可能会有缺失值,处理的方法有两种:
一种是删除整行或者整列的数据
另一种则是使用其他值去填充这些缺失值。
在Pandas库,有两种很有用的函数用于处理缺失值:isnull()和dropna()函数能帮助我们找到数据中的缺失值并且删除它们。如果你想用其他值去填充这些缺失值,则可以是用fillna()函数。
(1)均值插补
如果样本属性的距离是可度量的,则使用该属性有效值的平均值来插补缺失的值;
如果的距离是不可度量的,则使用该属性有效值的众数来插补缺失的值。如果使用众数插补,出现数据倾斜会造成什么影响?
(2)同类均值插补
首先将样本进行分类,然后以该类中样本的均值来插补缺失值。
(3)建模预测
将缺失的属性作为预测目标来预测,将数据集按照是否含有特定属性的缺失值分为两类,利用现有的机器学习算法对待预测数据集的缺失值进行预测。
该方法的根本的缺陷是如果其他属性和缺失属性无关,则预测的结果毫无意义;但是若预测结果相当准确,则说明这个缺失属性是没必要纳入数据集中的;一般的情况是介于两者之间。
(4)高维映射
将属性映射到高维空间,采用独热码编码(one-hot)技术。将包含K个离散取值范围的属性值扩展为K+1个属性值,若该属性值缺失,则扩展后的第K+1个属性值置为1。
这种做法是最精确的做法,保留了所有的信息,也未添加任何额外信息,若预处理时把所有的变量都这样处理,会大大增加数据的维度。这样做的好处是完整保留了原始数据的全部信息、不用考虑缺失值;缺点是计算量大大提升,且只有在样本量非常大的时候效果才好。
4、如何进行探索性数据分析(EDA)?
EDA的目的是去挖掘数据的一些重要信息。一般情况下会从粗到细的方式进行EDA探索。一开始我们可以去探索一些全局性的信息。观察一些不平衡的数据,计算一下各个类的方差和均值。看一下前几行数据的信息,包含什么特征等信息。使用Pandas中的df.info()去了解哪些特征是连续的,离散的,它们的类型(int、float、string)。接下来,删除一些不需要的列,这些列就是那些在分析和预测的过程中没有什么用的。
比如:某些列的值很多都是相同的,或者这些列有很多缺失值。当然你也可以去用一些中位数等去填充这些缺失值。然后我们可以去做一些可视化。对于一些类别特征或者值比较少的可以使用条形图。类标和样本数的条形图。找到一些最一般的特征。对一些特征和类别的关系进行可视化去获得一些基本的信息。然后还可以可视化两个特征或三个特征之间的关系,探索特征之间的联系。
你也可以使用PCA去了解哪些特征更加重要。组合特征去探索他们的关系,比如当A=0,B=0的类别是什么,A=1,B=0呢?比较特征的不同值,比如性别特征有男女两个取值,我们可以看下男和女两种取值的样本类标会不会不一样。
另外,除了条形图、散点图等基本的画图方式外,也可以使用PDF\CDF或者覆盖图等。观察一些统计数据比如数据分布、p值等。这些分析后,最后就可以开始建模了。
一开始可以使用一些比较简单的模型比如贝叶斯模型和逻辑斯谛回归模型。如果你发现你的数据是高度非线性的,你可以使用多项式回归、决策树或者SVM等。特征选择则可以基于这些特征在EDA过程中分析的重要性。如果你的数据量很大的话也可以使用神经网络。然后观察ROC曲线、查全率和查准率。
5、给定一个数据集,这个数据集有缺失值,且这些缺失值分布在离中值有 1 个标准偏差的范围内。百分之多少的数据不会受到影响?为什么?
由于数据分布在中位数附近,先假设这是一个正态分布。在一个正态分布中,约有 68%的数据位于跟平均数(或众数、中位数)1 个标准差范围内的,那样剩下的约 32%的数据是不受影响的。因此,约有 32%的数据将不受到缺失值的影响。
6、对于不平衡数据集,有什么应对方案?
即数据集中,每个类别下的样本数目相差很大。例如,在一个二分类问题中,共有 100 个样本(100 行数据,每一行数据为一个样本的表征),其中 80 个样本属于 class 1,其余的 20 个样本属于 class 2,class 1:class2=80:20=4:1,这便属于类别不均衡。当然,类别不均衡问题同样会发生在多分类任务中。
解决不平衡分类问题的策略可以分为两大类:一类是从训练集入手 , 通过改变训练集样本分布,降低不平衡程度;另一类是从学习算法入手 , 根据算法在解决不平衡问题时的缺陷 , 适当地修改算法使之适应不平衡分类问题。平衡训练集的方法主要有训练集重采样 (re-sampling)方法和训练集划分方法。学习算法层面的策略包括分类器集成 、代价敏感学习和特征选择方法等。
7、什么是欠采样和过采样?
使用不同的数据集。有两种方法使不平衡的数据集来建立一个平衡的数据集:欠采样和过采样。欠采样是通过减少丰富类的大小来平衡数据集,当数据量足够时就该使用此方法。通过保存所有稀有类样本,并在丰富类别中随机选择与稀有类别样本相等数量的样本,可以检索平衡的新数据集以进一步建模。当数据量不足时就应该使用过采样,**它尝试通过增加稀有样本的数量来平衡数据集,而不是去除丰富类别的样本的数量。**通过使用重复、自举或合成少数类过采样等方法(SMOTE)来生成新的稀有样品。
欠采样和过采样这两种方法相比而言,都没有绝对的优势。这两种方法的应用取决于它适用的用例和数据集本身。另外将过采样和欠采样结合起来使用也是成功的。
8、为什么需要对数值类型的特征做归一化?
分析与解答
对数值类型的特征做归一化可以将所有的特征都统一到一个大致相同的数值区间内。 最常用的方法主要再以下两种:
( 1 )线性函数归化( Min-Max Scaling ) 。 它对原始数据进行线性变换,使结果映射到 [0,1] 的范围,实现对原始数据的等比缩放。归一化公式如下:
( 2 )零均值归一化( Z-Score Normalization ) 。它会将原始数j居映射到均值为 0 ,标准差为 1 的分布上 。那么归一化公式定义为:
实例说明
注意:当然,数据归一化并不是万能的。在实际应用中,通过梯度下降法求解的模型通常是需要归一化的。包括:线性回归、逻辑回归、支持向量机、 神经网络等模型。但对于决策树模型则并不适用 ,以 C4.5 为例 ,决策树在进行节点分裂时主要依据数据集 D 关于特征 x的信息增益比,而信息增益比跟特征是否经过归一化是无关的,因为归一化并不会改变样本在特征 x 上的信息增益。
9、在对数据进行预处理时,应该怎样处理类别型特征?
分析与解答
序号编码( Ordinal Encoding )
独热编码( One-hot Encoding )
二进制编码( Binary Encoding)
10、什么是组合特征,如何处理高维组合特征?
分析与解答
为了提高复杂关系的拟合能力,在恃征工程中经常会把一阶离散特征两两组合,构成高阶组合特征。
11、怎样有效的找到组合特征?
本节介绍一种基于决策树的特征组合寻找方法。
假设原始输入特征包含年龄、性别、用户类型(试用期、付费)、物晶类型(护肤、食晶 等) 4 个方面的信息 ,并且根据原始输入和标签(点击 /未点击)构造出了决策树,如国 1.2所示。
12、有哪些文本表示模型?他们各自有什么优缺点?
13、Word2Vec是如何工作的?和 LDA有什么区别与联系?
分析与解答
14、在图像分类任务中,训练数据不足会带来什么问题?如何缓解数据量不足带来的问题?
分析与解答
为了提高复杂关系的拟合能力,在恃征工程中经常会把一阶离散特征两两组合,构成高阶组合特征。
四、特征选择与特征提取(降维)
1、特征选择与提取相同点与不同点
相同点与不同点
相同点:特征选择和特征提取二者达成的效果相似,都是试图减少数据集中属性(特征)的数量,找出最有效(同类样本的不变性、不同样本的鉴别性、对噪声的鲁棒性)的特征。
不同点:特征提取(降维)主要通过属性间的关系,通过组合原有属性产生新的属性,最终会改变特征空间;特征选择是在原始数据集中提取特征的子集,是一种包含关系,不改变特征空间。
2、特征选择的方法
特征选择是一个重要的数据预处理过程,主要有两个原因:一是减少特征数量、降维,使模型泛化能力更强,减少过拟合;二是增强对特征和特征值之间的理解
方法一:Filter(过滤型)
(1)方差选择法
使用方差选择法,先要计算各个特征的方差,然后根据阈值,选择方差大于阈值的特征。使用feature_selection库的VarianceThreshold类来选择特征的代码如下:
(2)相关系数法
使用相关系数法,先要计算各个特征对目标值的相关系数以及相关系数的P值
(3)互信息法
方法二:Wrapper(包裹型)
递归特征消除法
方法三:Embedded(嵌入型)
(1)基于惩罚项的特征选择法
使用带惩罚项的基模型,除了筛选出特征外,同时也进行了降维。
实际上,**L1惩罚项降维的原理在于保留多个对目标值具有同等相关性的特征中的一个,所以没选到的特征不代表不重要。**故,可结合L2惩罚项来优化。具体操作为:若一个特征在L1中的权值为1,选择在L2中权值差别不大且在L1中权值为0的特征构成同类集合,将这一集合中的特征平分L1中的权值,故需要构建一个新的逻辑回归模型:
(2)基于树模型的特征选择法
树模型中GBDT也可用来作为基模型进行特征选择,使用feature_selection库的SelectFromModel类结合GBDT模型
3、特征提取(降维)的方法
主成分分析法(PCA)
线性判别分析法(LDA)
五、模型的评估
1、模型评估的方法有哪些?
(1)留出法
(2)交叉验证法
(3)自助法
2、什么是 K-fold 交叉验证?
K-fold 交叉验证就是把原始数据随机分成 K 个部分,在这 K 个部分中选择一个作为测试数据,剩余的 K-1 个作为训练数据。交叉验证的过程实际上是将实验重复做 K 次,每次实验都从 K 个部分中选择一个不同的部分作为测试数据,剩余的数据作为训练数据进行实验,最后把得到的 K 个实验结果平均,用于评价模型的泛化能力,从而进行模型选择。
六、模型的性能度量
1、讲讲模型的性能度量
(1)错误率与精度
(2)查准率与查全率(精确率与召回率)