百面机器学习:特征工程、模型评估

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、减小正则化系数

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值