【15】机器学习算法面试八股
271遍历字典可以用什么方法
272反转列表的方法
list.reverse()sorted()指定reverse
273python 元组中元组转为字典,字典转元组
zip(d.values(),d.keys())
274range在python2和python3里的区别
在py2中,range得到的是一个列表,在py3中,range得到的是一个生成器,节约内存
275Python列表去重复元素
l1 = ['b','c','d','b','c','a','a']l2 = list(set(l1))
276特征工程有哪些
1. 数据预处理(清洗)
- 处理缺失值
- 图片数据扩充
- 处理异常值
- 处理类别不平衡问题 2. 特征缩放
- 归一化
- 正则化 3. 特征编码
- 序号编码(Ordinal Encoding)
- 独热编码(One-hot Encoding)
- 二进制编码(Binary Encoding)
- 离散化 4. 特征选择
- 过滤式(filter)
- 包裹式(wrapper)
- 嵌入式(embedding) 5. 特征提取
- 降维
- 图像特征提取
- 文本特征提取 6. 特征构建
277遇到缺值的情况,有哪些处理方式
- 直接使用含有缺失值的特征:当仅有少量样本缺失该特征的时候可以尝试使用;
- 删除含有缺失值的特征:这个方法一般适用于大多数样本都缺少该特征,且仅包含少量有效值是有效的;
- 插值补全缺失值
- 均值、众数、中位数、固定值、手动、最邻近补全
- 建模预测:回归、决策树
- 高维映射、压缩感知
- 多种方法插补
278样本不均衡的处理办法
1. 扩充数据集 2. 尝试其他评价指标3. 对数据集进行重采样
- 对小类的数据样本进行采样来增加小类的数据样本个数,即过采样(over-sampling ,采样的个数大于该类样本的个数)
- 对大类的数据样本进行采样来减少该类数据样本的个数,即欠采样(under-sampling,采样的次数少于该类样本的个素) 4. 尝试不同分类算法 如决策树往往在类别不均衡数据上表现不错。 5. 尝试对模型进行惩罚 **比如你的分类任务是识别那些小类,那么可以对分类器的小类样本数据增加权值,降低大类样本的权值(这种方法其实是产生了新的数据分布,即产生了新的数据集),从而使得分类器将重点集中在小类样本身上。如focal loss
279常见的筛选特征的方法有哪些
- 过滤式(filter)
- 包裹式(wrapper)
- 嵌入式(embedding) 过滤式(filter):先对数据集进行特征选择,其过程与后续学习器无关,即设计一些统计量来过滤特征,并不考虑后续学习器问题。如方差选择、卡方检验、互信息
包裹式(wrapper):实际上就是一个分类器,它是将后续的学习器的性能作为特征子集的评价标准。如Las Vagas 算法
嵌入式(embedding):实际上是学习器自主选择特征。如基于惩罚项的选择、基于树的选择GBDT
280出现Nan的原因
- NaN的含义是没有意义的数,not a number,一般有这几种情况:0/0,Inf/Inf,Inf-Inf,Inf*0等,都会导致结果不确定,所以会得到NaN
- 数据处理时,在实际工程中经常数据的缺失或者不完整,此时我们可以将那些缺失设置为nan
- 读取数据时,某个字符不是数据,那么我们将它认为nan处理。
281特征筛选,怎么找出相似性高的特征并去掉
特征选择---过滤法(特征相关性分析):可以采用方差选择法或相关系数法。
282对于不同场景机器学习和深度学习你怎么选择,你更习惯机器学习还是深度学习?
- 当数据量小时,深度学习算法表现不佳。可采用机器学习算法。
- 深度学习依赖于高端设备,而传统学习依赖于低端设备。如果成本限制严格,可采用机器学习算法。
- 如果对时间要求苛刻,可采用机器学习算法。
- 针对特定领域,如图像、视频流,深度学习在精度上更优异,可采用深度学习的方法。
283包含百万、上亿特征的数据在深度学习中怎么处理
这么多的特征,肯定不能直接拿去训练,特征多,数据少,很容易导致模型过拟合。
- 降维:PCA或LDA
- 使用正则化,L1或L2
- 样本扩充
- 特征选择:去掉不重要的特征
284类别型数据你是如何处理的?比如游戏品类,地域,设备
序号编码、one-hot编码、二进制编码
285计算特征之间的相关性方法有哪些? 相关性分析
- pearson系数,对定距连续变量的数据进行计算。是介于-1和1之间的值
- Spearman秩相关系数:是度量两个变量之间的统计相关性的指标,用单调函数来描述俩个变量之间的关系有多好。
- Kendall(肯德尔等级)相关系数:肯德尔相关系数是一个用来测量两个随机变量相关性的统计值。
286傅里叶变换
FFT和DFT的区别FFT是一种DFT(离散傅里叶变换)的高效算法,称为快速傅立叶变换
287牛顿法和拟牛顿法推导
288了解哪些插值算法
- 最近邻插值法(Nearest Neighbour Interpolation):最近邻插值法虽然计算量较小。
- 双线性插值:双线性内插法的计算比最邻近点法复杂,计算量较大,但没有灰度不连续的缺点,结果基本令人满意。它具有低通滤波性质,使高频分量受损,图像轮廓可能会有一点模糊。
- 双三次插值:三次多项式插值法插值精度高,具有更EI平滑的边缘,图像损失质量低,但是计算量较大。
289线性回归与逻辑回归
个人理解
- 线性回归是回归(预测),逻辑回归是分类。
- 线性回归,输出套上sigmoid函数就成了逻辑回归 两者优缺点 优点
- 模型简单,原理简单易理解
- 计算代价不高,易于理解和实现。 缺点:
- 易过拟合
- 特征很多的时候,效果不好
- 处理线性问题效果比较好,而对于更复杂的问题可能束手无策
290回归和分类的区别
- 两者的的预测目标变量类型不同,回归问题是连续变量,分类问题离散变量。
- 回归问题是定量问题(预测),分类问题是定性问题(分类)。
- 回归目标是得到最优拟合;而分类目标是得到决策边界
- 评价指标不用:回归的评价指标通常是MSE;分类评价指标通常是Accuracy、Precision、Recall
更多校园招聘常见面试问题(开发、算法、编程题目)参见CSDN博客:http://t.csdn.cn/V4qbH
欢迎关注、收藏、点赞后进行问题咨询及秋招建议
#数据人的面试交流地##我发现了面试通关密码##如何判断面试是否凉了##你们的毕业论文什么进度了##我的实习求职记录#机器学习算法面经 文章被收录于专栏
介绍秋招面试过程中对机器学习算法、数据挖掘、python语言、C++语言、数据结构的面试题目和基础总结