0
点赞
收藏
分享

微信扫一扫

【机器学习】特征工程

一、特征工程

特征工程:从数据到变量,利用数据所在领域的相关知识构建特征,使机器学习算法发挥其最佳的过程

地位:数据和特征是上限,算法和训练时逼近这个上限

实质:连接原始数据与模型,一系列分析的”起手式“。有无特征工程,是区别实验室学习和现实世界机器学习的界限

主要内容:

  • 结构化:将非结构化数据(文本,图像,语言,音乐)结构化
  • 预处理:清洗数据,填补缺失值
  • 变量加工:将数据变形成更适合预测的形态
  • 特征选择:
  1.  基于理论/经验的
  2.  单变量评估
  3.  基于统计的多变量评估
  4.  基于机器学习的多变量评估

特征工程 为最终目的服务,在预测能力和可解释性之间权衡

二、缺失值处理

  • 缺失值本身就是一种信息
  • 缺失在哪个环节造成 原始收集环节?采集环节?清洗环节?
  • 是否承担缺失值带来的影响  若缺失值超过阈值,就应该删除该变量(60%)

1.一般方法:

sklearn:

  • 单变量填充:对某个变量的填充和其他遍历没有关系,可以是固定值,统计值,常出现值 (填均值不影响方法走向)
  • 多变量填充与近邻填充:寻找多个变量(多列之间的关系)
  • 先进行样本分割,再对训练集进行填充,训练完再对测试集进行填充

 2.结构化:encoding

  • 结构化是为了让计算机能够处理部分数据
  • 分类信息:性别、学历
  • 文本信息:one-hot
  • 注意变量的数量和正则化
  • encoding的局限:没有额外的信息表达

三、改变分布 

3.1 改变分布 :使数据分布符合方法假设

  • 参数对于带正则项的算法的影响:正则项和系数有关系,但系数和数据又有关系,让各个数据站在同一起跑线上——标准化
  • 并非所有算法都需要改变数据分布,基于树的方法是基于比较的
  • 树方法的正则化并不是来自于对系数的惩罚

 3.2 标准化 

  • 成熟的算法:均值0,标准差为1
  • 标准化之前先清洗异常值,变形,删除极端值(winsor)
  •  先分割样本,再对训练集求均值和方差,再用训练集的均值和方差对测试集做标准化
  • MinMaxScaler 把数据归到[0,1]范围之内
  • MaxAbsScaler 把数据归到[-1,1]范围之内

 3.3 非线性变化:不惜一切变正态分布(会损失很多信息)

改变线性模型的预测能力,但是随着模型的复杂,其实更不敏感

3.4 连续值变成分段值  (令线性方法对非线性数据拟合度更好)

  • 增强稳健性&适用于分类算法 
  • 稳健性:异常值、非线性;分类算法,征信模型
  • 可以直接选择非线性方法,但非线性方法的可解释性不如线性方法好,想要线性方法对非线性数据拟合,可以选择将连续值变为分段值

四、变量选择

4.1 为什么要进行预先变量选择 

  • 方法制约:许多模型对多变量效果不好(简单线性模型,树模型)
  • 解释制约:当向别人解释一个模型时,变量过多消弱解释能力
  • 预测制约:预测方差,对极端值的敏感程度,随时间的模型衰弱
  • 实践制约:变量数过大,模型过度复杂,对计算压力较大

单变量选择:单纯根据一个变量数据的分布进行筛选

多变量选择:多重共线性  

举报

相关推荐

0 条评论