机器学习面试题目整理

0 调参技巧

  1. 清洗数据,数据预处理,数据增广
  2. 是否使用预训练模型
  3. 使用BN
  4. 在过拟合后,使用正则化技巧如L1、L2、Dropout
  5. 对于不均匀样本,使用重采样
  6. 使用合适的优化器。第一,如果你关心快速收敛,使用自适应优化器,如Adam,但它可能会陷入局部极小,提供了糟糕的泛化。第二,SGD+momentum可以实现找到全局最小值,但它依赖于鲁棒初始化,而且可能比其他自适应优化器需要更长的时间来收敛。我建议你使用SGD+动量,因为它能达到更好的最佳效果。
  7. 学习率不小于1e-3,可以考虑使用学习率衰减
  8. early stop

1 使用归一化/标准化会改变数据原来的规律吗?

归一化:将数据映射到指定的范围,如:把数据映射到0~1或-1~1的范围之内处理。作用:有量纲表达式变成无量纲表达式,便于不同单位或量级的指标能够进行比较和加权。简化计算。
min-max 归一化,也叫 0-1 标准化。
在这里插入图片描述
标准化:将数据变换为均值为0,标准差为1的分布,切记,并非一定是正态的。作用:提升模型的收敛速度(加快梯度下降的求解速度)。提升模型的精度(消除量级和量纲的影响)。简化计算(与归一化的简化原理相同)。
z-score 标准化
在这里插入图片描述
robust 标准化(RobustScaler)
MaxAbs 标准化(最大值绝对值标准化),MaxAbs具有不破坏数据结构的特点,可以用于稀疏数据。
归一化/标准化实质是一种线性变换,线性变换有很多良好的性质,这些性质决定了对数据改变后不会造成“失效”,反而能提高数据的表现,这些性质是归一化/标准化的前提。比如有一个很重要的性质:线性变换不会改变原始数据的数值排序。

2 如果是单纯想实现消除量级和量纲的影响,用Min-Max还是用Z-Score?

数据的分布本身就服从正态分布,使用Z-Score。有离群值的情况:使用Z-Score。
这里不是说有离群值时使用Z-Score不受影响,而是,Min-Max对于离群值十分敏感,因为离群值的出现,会影响数据中max或min值,从而使Min-Max的效果很差。相比之下,虽然使用Z-Score计算方差和均值的时候仍然会受到离群值的影响,但是相比于Min-Max法,影响会小一点。

3 离群值的应对措施

当数据中有离群点时,我们可以使用Z-Score进行标准化,但是标准化后的数据并不理想,因为异常点的特征往往在标准化后容易失去离群特征,此时就可以用RobustScaler 针对离群点做标准化处理。

4 One-hot编码的定义与作用

定义:

  1. one-hot标签则是顾名思义,一个长度为n的数组,只有一个元素是1.0,其他元素是0.0。用N位状态寄存器来对N个状态进行编码。
  2. 将离散特征的取值扩展到了欧式空间,离散特征的某个取值就对应欧式空间的某个点。
  3. 输入输出的one-hot编码。

作用:

  1. 独热编码用来解决类别型数据的离散值问题。
  2. 提升模型的非线性能力。比如用LR算法做模型,在数据处理过程中,可以先对连续变量进行离散化处理,然后对离散化后数据进行one-hot编码,最后放入LR模型中。这样可以增强模型的非线性能力。
  3. 为什么要特征向量要映射到欧式空间?将离散特征通过one-hot编码映射到欧式空间,是因为,在回归,分类,聚类等机器学习算法中,特征之间距离的计算或相似度的计算是非常重要的,而我们常用的距离或相似度的计算都是在欧式空间的相似度计算,计算余弦相似性,基于的就是欧式空间。

优缺点

  1. 优点:独热编码解决了分类器不好处理属性数据的问题,在一定程度上也起到了扩充特征的作用。它的值只有0和1,不同的类型存储在垂直的空间。
  2. 优点:非线性能力。
  3. 缺点:高维稀疏矩阵。一般可以用 PCA + one-hot encoding。

什么场景下使用one-hot编码

  1. 用:独热编码用来解决类别型数据的离散值问题。
  2. 用:在很多学习任务中,特征并不总是连续值,而有可能是分类值。
  3. 用:离散特征的取值之间没有大小的意义,比如color:[red,blue],那么就使用one-hot编码。
  4. 不用:将离散型特征进行one-hot编码的作用,是为了让距离计算更合理,但如果特征本身是离散的,并且不用one-hot编码就可以很合理的计算出距离,那么就没必要进行one-hot编码。有些基于树的算法在处理变量时,并不是基于向量空间度量,数值只是个类别符号,即没有偏序关系,所以不用进行独热编码。 Tree Model不太需要one-hot编码: 对于决策树来说,one-hot的本质是增加树的深度。

5 梯度消失 梯度爆炸

梯度消失:梯度趋近于零,网络权重无法更新或更新的很微小,网络训练再久也不会有效果。

梯度爆炸:梯度呈指数级增长,变的非常大,然后导致网络权重的大幅更新,使网络变得不稳定。

解决方法

  • 使用BN

6 Batch Normalization

BN可以固定小批量中的均值和方差,再学习出合适的偏移和缩放(可学习参数为 gamma,beta)。作用在全连接层的输出之后,激活函数前。也可以作用在全连接层的输入上。可以加速收敛速度,但是一般不改变模型精度。一般不配合dropout使用。用了BN后学习率可以稍微调大。

7 sigmoid激活函数

sigmoid激活函数

8 准确率

在这里插入图片描述
准确率(accuracy)=(TP+TN)/(TP+FN+FP+TN),在所有样本中,预测正确的概率
精确率(precision)=TP/(TP+FP),你认为的正样本中,有多少是真的正确的概率
召回率(recall)=TP/(TP+FN),正样本中有多少是被找了出来

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值