机器学习:数据准备和特征工程

对于数据挖掘,数据准备阶段主要就是进行特征工程。

数据和特征决定了模型预测的上限,而算法只是逼近了这个上限。

好的特征要少而精,这会使模型更简单、更精准。

一、特征构造

1.’常见提取方式

文本数据的特征提取

词袋向量的方式:统计频率

图像数据的特征提取

像素点RGB

用户行为特征提取

特征提取总结:

  • 特征设计时需要与目标高度相关:

    这个特征对预测目标是否有用

    如果有用,这个特征的重要程度如何

    这个特征的信息是否在其他特征重体现过

  • 特征需要专业领域知识、直觉和一定的数学知识
  • 初始提取的特征后续还要进行特征转换处理,再进入算法模型
  • 特征设计和提取需要不断反复迭代验证,是一个非常耗时的工作

2.RFM

在客户关系(CRM)领域,三个刻画用户的神奇指标:

  • 最近一次消费间隔时长(Recency)
  • 消费频率(Frequency)
  • 消费金额(Monetary)

RFM分析方法有一种叫五等分法

把RFM切成5个人数等分区间,然后形成RFM的组合立方体

125个格子

R越小越好,FM越大越好

R是越小,等级越大,于是RMF统一为等级越大越好

因此用户的等级范围是111-555

RFM应用价值:用户细分

111-555共125个群体,比较多,可以做一些合并

根据不同的RFM值组合情况,可以把用户分成不同群体,以便制定差异化策略

RFM应用价值:用户价值及营销响应评估

二、特征转换

1.连续变量无量纲化处理

使不同规格尺度的数据转换到同一规格尺度

目的:

  • 无量纲化可以让不属于同一量纲的特征值可以比较:例如身高(cm),体重(kg)
  • 无量纲化后模型收敛会加快(运行速度较快)
  • 无量纲化对一些模型的结果影响比较大,例如聚类模型,无量纲化后效果会更好 基于距离的一些模型

常用无量纲化方法--标准化

效果:把原始的连续变量转换为均值为0,标准差为1的变量

${x}‘=\frac{x-\bar{x}}{\delta }$

常用无量纲化方法--区间缩放法

效果:把原始的连续变量转换为范围在a-b之间的变量,常见的a=0,b=1

${x}‘=\frac{x-\min(x)}{\max(x)-\min(x) }$

2.连续变量数据变换

数据变换:通过函数变换改变原数据的分布

目的:

  • 变换后更便捷地发现数据之间的关系:从没有关系变成有关系
  • 很多数据呈现严重的偏态分布(很多偏小的值聚集在一起),变换后差异可以拉开
  • 让数据更符合模型理论所需要的假设,然后对其分析,例如变换后数据呈现正态分布

常用的数据变换方法

  • log变换 x=ln(x)
  • box-cox变换,自动寻找最佳正态分布变换函数的方法

3.连续变量离散化

把连续型的数值切割为少数的一些区间,例如年龄值切割为5个年龄段

目的:

  • 方便探索数据分布和相关性,例如直方图,交叉表
  • 离散化后的特征对异常数据有很强的鲁棒性:减少异常数据对模型的影响
  • 离散化后可以进行特征交叉组合,由M+N个特征变量变为M*N个特征变量
  • 特征离散化后,模型会更稳定
  • 特征离散化后,简化了模型复杂度,降低了过拟合风险
  • 一些模型(关联模型)要求输入特征是离散的

离散化方法:

非监督离散化方法

有监督的离散化:决策树

一种特殊的离散化:二值化

一种特殊的离散化:Rounding(取整)

4.类别变量编码

把类别型变量编码成数值型的变量

目的:

  • 很多机器学习算法无法处理类别型变量,必须转换为数值型变量
  • 一定程度上起到了扩充特征的作用(构造了新的特征)

one-hot编码

Counting Encoding

用类别的频数来编码,也可以对频数去量纲化(秩序,归一化等)

Target Encoding

用目标变量(二分类)中的某一类的比例来编码

5.日期型变量处理

6.缺失值处理

缺失值原因

处理方法

7.特征组合

目的:通过特征组合构造出更多/更好的特征,提示模型精度

组合让特征更加精细,反映了原始多个特征之间的交互关系。

特征组合的方法

示例

三、数据降维

在尽量少减少信息量的前提下,采用某种映射方法(函数),把原来的高维(变量多)数据映射为低维数据(变量少)

降维原因:

  • 维数灾难:高维情况下容易发生模型的过拟合(泛化能力弱)
  • 特征之间有明显的自相关的时候,也要考虑降维,因为自相关会让模型效果变差
  • 降维可以对数据中的有效信息进行综合提取,并去除一些无用的噪音信息
  • 降维后降低模型复杂度,减少模型训练时间
  • 降维之后可以对数据进行可视化分析

维数灾难

维数灾难原因

当特征值(空间)个数趋向无限大时,样本密度非常稀疏,训练样本被分错的可能性趋向于零

降维后发生什么?

线性模型可能精确度会下降,但是也会避免出现过拟合现象

避免维度灾难的一个方法是增加样本量

样本密度:样本数/特征值个数;当增加维度时,保持样本密度不变的方法就是增加样本量

常用降维方法

主成分分析

通过某种线性投影,将高维数据映射到低维空间中表示,并期望在所投影的维度上数据方差最大。使用较少的数据维度,尽量保留住较多的数据信息。

PCA操作流程

线性判别分析法

PCA与LDA

实验结果

总结:

  • 如果研究的问题有目标变量(类别型)

    优先使用LDA来降维

    可以使用PCA做小幅度的降维去噪声,然后再使用LDA降维

  • 如果研究的问题没有目标变量

    优先使用PCA来降维

四、特征选择

特征选择与降维

特征选择原因:

  • 提高预测准确性
  • 构造更快,消耗更低的预测模型
  • 能够对模型有更好的理解和解释

特征选择的方法

单特征重要性评估

过滤方法

苹果onNet_month与Flag(目标)指标的相关性

信息值(IV)

变量重要性可视化:趋势分析

更多指标

原文地址:https://www.cnblogs.com/aidata/p/11620888.html

时间: 2024-11-06 10:44:59

机器学习:数据准备和特征工程的相关文章

大数据:“人工特征工程+线性模型”的尽头

大数据:“人工特征工程+线性模型”的尽头 作者:李沐 来源:http://qing.blog.sina.com.cn/1953709481/74733da9330036o7.html 11年的时候我加入百度,在凤巢使用机器学习来做广告点击预测.当时非常惊讶于过去两年内训练数据如此疯狂的增长.大家都在热情的谈特征,每次新特征的加入都能立即得到AUC的提升和收入的增长.大家坚信特征才是王道,相信还会有源源不断的特征加入,数据规模还会成倍的增长.我也深受感染,坚定的相信未来两年数据至少还会长十倍,因此

数据表达与特征工程

字符串式    的特征称为“类型特征” 数值类型    的特征称为“连续特征” 本节讨论: 如何将不同的特征进行转换 如何合理表达数据 如何进行特征选择 数据表达 1.使用哑变量转换类型特征 哑变量,也称虚拟变量,是一种用来把某些类型变量转换为二值变量的方法 广泛使用于回归分析中 展示get_dummies的使用: #导入pandas import pandas as pd #手工输入一个数据表 fruits = pd.DataFrame({'数值特征':[5,6,7,8,9],'类型特征':[

机器学习之(四)特征工程以及特征选择的工程方法

关于特征工程(Feature Engineering),已经是很古老很常见的话题了,坊间常说:"数据和特征决定了机器学习的上限,而模型和算法只是逼近这个上限而已".由此可见,特征工程在机器学习中占有相当重要的地位.在实际应用当中,可以说特征工程是机器学习成功的关键.纵观Kaggle.KDD等国内外大大小小的比赛,每个竞赛的冠军其实并没有用到很高深的算法,大多数都是在特征工程这个环节做出了出色的工作,然后使用一些常见的算法,比如LR,就能得到出色的性能.遗憾的是,在很多的书籍中并没有直接

特征工程指南

特征工程数据科学最有创造力的方面.要像其他任何有创造力的尝试一样对待它,就想写一个喜剧的秀.坚持头脑风暴创建模板或公式检查/重新审视以前的工作特征分类一些预处理似乎永远都是必要的很高的基数(即包含大量不同的值)会带来很稀疏的数据填补缺失值是一个难点Onehot 编码One-of-K 给一个长度为 K 的数组编码基本方法:大多使用一些线性的算法去掉第一列避免共线性稀疏格式是记忆友好的(便于存储)目前对待缺失值的大部分实现方法都不够优雅,没有考虑变量.哈希编码对固定长度的数组进行 Onehot 编码

Hulu机器学习问题与解答系列 | 二十二:特征工程—结构化数据

听说最近冒出的大批呱儿子个个都是撑着眼皮也要看书的无眠小青蛙.我们学习Machine Learning的脚步又怎能停下来?动动手指,上滑开始~ 今天的内容是 [特征工程-结构化数据] 场景描述 特征工程是指结合问题寻找有效的特征并进行处理成适合模型的输入形式.机器学习中有句经典的话叫做"Garbage in, garbage out",意思是如果输入的数据是垃圾,那么得到的结果也是垃圾.可以看出模型成败的关键并不仅仅取决于模型的选取,还取决于我们是否有根据特定的问题找到了行之有效的输入

机器学习 特征工程之特征选择

概念 首先看一下维基百科中关于特征选择的介绍: 在机器学习和统计学中,特征选择 也被称为变量选择.属性选择 或变量子集选择 .它是指:为了构建模型而选择相关特征(即属性.指标)子集的过程. 在机器学习中,每个特征对于目标类别的影响并不相同,所以需要从特征集中挑选出一组最具统计意义的特征子集,把其他无用数据删掉,达到降维的目的. 特征选择的目标是寻找最优特征子集.特征选择能剔除不相关(irrelevant)或冗余(redundant )的特征,从而达到减少特征个数,提高模型精确度,减少运行时间的目

机器学习:特征工程

特征选择直接影响模型灵活性.性能及是否简洁. 好特征的灵活性在于它允许你选择不复杂的模型,同时运行速度也更快,也更容易理解和维护. 特征选择 四个过程:产生过程,评价函数,停止准则,验证过程. 目的:过滤特征集合中不重要特征,挑选一组最具统计意义的特征子集,从而达到降维的效果. 选择标准:特征项和类别项之间的相关性(特征重要性). - - -搜索特征子空间的产生过程- - - 搜索的算法分为完全搜索(Complete),启发式搜索(Heuristic), 随机搜索(Random) 3大类. 完全

(七)机器学习里的特征工程

不管是工业界还是学术界,机器学习都是一个炙手可热的方向,但是学术界和工业界对机器学习的研究各有侧重,学术界侧重于对机器学习理论的研究,工业界侧重于如何用机器学习来解决实际问题.我们结合美团在机器学习上的实践,进行一个实战系列的介绍,介绍机器学习在解决工业界问题的实战中所需的基本技术.经验和技巧.本文主要结合实际问题,概要地介绍机器学习解决实际问题的整个流程,包括对问题建模.准备训练数据.抽取特征.训练模型和优化模型等关键环节:另外几篇则会对这些关键环节进行更深入地介绍. 下文分为: 1)机器学习

机器学习 | 特征工程- 超参数调优方法整理

特征工程是机器学习当中很重要的部分,可以帮助我们设计.创建新特征,以便模型从中提取重要相关性.本文将记录并持续更新相关特征工程的工具包介绍,包括自动模型选择和超参数调优等各方面. · Featuretools Featuretools 是一个开源的Python 库,用于自动化特征工程.自动特征工程能够缩减时间成本,构建更优秀的预测模型,生成更有意义的特征,还能防止数据泄漏(data leakage). 目标任务:从数据表格集中获取所有的数据信息并整合到一张表中,再创建特征. 解决方案:采用深度特