1. 特征工程
- 定义:对原始数据进行一系列工程处理,将其提炼为特征,作为输入供算法和模型使用。
1.1 特征归一化
归一化就是把你需要处理的数据经过处理后(通过某种算法)限制在你需要的一定范围内。分为:
-
线性函数归一化:最大值最小值归一化
这种归一化适合数值比较集中情况,如果max和min不稳定,很容易使得归一化结果不稳定; 实际应用中可以用经验常量值来替代max和min。
-
标准差归一化(零均值归一化):标准正态分布
-
非线性归一化:log、指数、正切等变换
经常用在数据分化比较大的场景,通过数学函数进行映射。
(1)为什么一些机器学习模型要归一化处理?
- 加快了梯度下降求解最优解的速度。等高线显得圆滑,在梯度下降求解时能较快收敛。如果不做归一化,梯度下降很可能走“之”字,很难收敛甚至不能收敛。
- 把有量纲表达式变为无量纲表达式,有可能提高精度。
- 逻辑回归等模型先验假设数据服从正态分布。
(2)归一化为什么能提高梯度下降法求解最优解速度?
归一化后使得等高线变得更加圆润,更容易使得梯度下降沿着梯度方向一直前进到最优解的点。不进行归一化,曲线的梯度方向不一定一直沿着向最优解的方向前进,很容易走“之”字。
(3)归一化有可能提高精度么?
一些分类器需要计算样本之间的距离(如欧氏距离),例如KNN。如果一个特征值域非常大,那么距离计算就主要取决于这个特征,从而与实际情况相悖(实际情况是值域范围小的特征更重要),对这类模型的特征进行归一化有可能提高精度。
(4) 哪些机器学习算法不需要归一化处理?哪些需要归一化处理?
概率模型不需要归一化,因为它们不关心变量的值,而是关心变量的分布和变量之间的条件概率。
- 决策树、RF
归一化是为了使计算更方便,避免造成数值问题,比如说求矩阵的逆可能很不精确或者梯度下降法收敛比较困难,需要计算欧氏距离的话量纲也需要调整。
- 线性回归、逻辑回归(LR)、支持向量机(SVM)、KNN、神经网络等模型。
(5)对于树形结构为什么不需要归一化
数值缩放不影响分裂点位置。因为第一步都是按照特征值进行排序的,排序的顺序不变,那么所属的分支以及分裂点就不会有不同。
对于树模型不能进行梯度下降,因为树模型是阶跃的,阶跃点处不可导的。所以树模型是通过寻找最优分裂点完成的。
1.2类别特征
类别特征的输入通常是字符串形式,除了决策树等少数模型能直接处理字符串的输入外,对于LR、SVM等模型来说,类别特征必须经过处理转换成数值特征才能正常工作。
- 序号编码、独热编码(one-hot)、二进制编码、Helmert Contrast、Sum Contrast、Polynomial Contrast、Backward Contrast等。
1.3组合特征
可以利用矩阵分解来减少两个高维特征组合后需要学习的参数。
特征选择目的:
- 减少也正的数量、降维,使模型繁华能力更强从而减少过拟合;
- 增强特征对特征值之间的理解。
怎样有效的找到组合特征?
- 特征是否发散:如果一个特征不发散,如方差接近于0,也就是说样本在这个特征上基本没有差异,这个特征对样本的区分没有什么作用;
- 特征与目标的相关性。
特征选择有哪些方法?
- 过滤式(filter)
先对数据集进行特征选择,然后在训练学习器。卡方检验、皮尔逊相关系数 - 包裹式(wrapper)
需考虑后续学习器,根据目标函数(通常是预测效果评分),每次选择若干特征,或者排除若干特征。 - 嵌入式(embedding)
是Filter与Wrapper方法的结合。先使用某些机器学习的算法和模型进行训练,得到各个特征的权值系数,根据系数从大到小选择特征。
1.4文本表示模型
词袋模型和N-gram模型、主题模型、词嵌入和深度学习模型
- 词嵌入:将每个词都映射成低维空间(通常K=50~300维)上的一个稠密向量。K维空间的每一维可以看作一个隐含的主题。
- 传统的浅层机器学习模型中,一个好的特征工程往往可以带来算法效果的显著提升。而深度学习模型正好为我们提供了一种自动地选择特征工程的方式,模型中的每个隐层都可以认为对应着不同抽象层次的特征。
- 与全连接网络结构相比:卷积神经网络和循环神经网络一方面很好抓住了文本的特性,另一方面又减少了网络中待学习的参数,提高了训练速度,并且降低了过拟合风险。
主题模型是基于概率图的生成式模型(LDA),其似然函数可以写成若干条件概率连乘的形式。词嵌入模型一般表达为神经网络,似然函数在网络输出上,需要学习网络的权重以得到单词的稠密向量表示。
1.5图像数据不足时的处理方法
- 基于模型的方法:主要是采用降低过拟合风险的措施,包括简化模型、添加约束项以缩小假设空间、集成学习、Dropout超参数等;
- 基于数据的方法:根据一些先验方法进行数据扩充。
随即旋转、平移、裁剪、填充、左右翻转。添加噪声:椒盐噪声、高斯白噪声等。颜色变换。改变图像的亮度、清晰度、对比度、锐度等。 - 先对图像特征进行提取,然后在图像特征空间进行变换:生成式对抗网络。
2.模型评估
2.1模型评估的局限性
准确率accuracy:分类正确的样本占总样本的比例。
精确率precision:分类正确的样本占分类器判定为正样本个数的比例。
召回率recall:分类正确的样本占真正的正样本个数的比例。
F1 score:精确率和召回率的调和平均值(2倍的和分之积)。
ROC曲线:横坐标为假阳性率(False Positive Rate, FPR),纵坐标为真阳性率(True Positive Rate, TPR).
平均绝对误差MAE(Mean Absolute Error)
平均绝对百分比误差MAPE
均方误差MSE(Mean Squared Error)
均方根误差RMSE(Root Mean Squared Error)
相比P-R曲线,ROC曲线有一个特点,当正负样本分布发生变化时,ROC的曲线形状基本保持不变,而P-R曲线的形状一般会发生比较剧烈变化。
三条距离公理:正定性、对称性、三角不等式
余弦满足正定和对称,不满足三角不等式
2.2A/B测试的陷阱
需要进行线上A/B测试原因:
- 离线无法完全消除过拟合的影响
- 离线无法还原线上的工程环境
- 线上系统的某些商业指标在离线评估中无法计算。
划分测试集要注意保留样本的独立性和采样方式的无偏性。
2.3模型评估的方法
- Holdout检验
- 交叉检验:k-fold交叉验证、留一验证
- 自助法
自助法:当样本无限大时候,大约有1/e(36.8%)的样本从未被选择。
2.4超参数调优
网格搜索、随机搜索、贝叶斯优化
要素:1、目标函数,即算法需要最大化/最小化的目标;2、搜索范围,一般通过上限和下限来决定;3、算法的其他参数,如搜索步长。
2.5过拟合与欠拟合
降低过拟合风险的方法:
1、从数据入手,获得更多的数据
2、降低模型的复杂度
-
神经网络减少网络层数、神经元个数;决策树模型、降低深度和剪枝。
3、正则化方法
4、集成学习方法 -
bagging、stacking、boosting
降低欠拟合风险:
1、添加新特征:构造特征工程如:因子分解机、GBDT、Deep-crossing
2、增加模型复杂度
3、减小正则化系数