特征工程介绍

特征工程是机器学习中非常基础、非常重要的工作,也是必不可少的。好的特征可以让机器学习模型获得更好的效果,甚至可以说,特征的好坏决定了模型可以达到的精度的上限。本次分享讲解特征工程相关的基础知识,主要包括如下6个主题:

  1. 特征工程介绍
  2. 特征预处理
  3. 特征构建
  4. 特征选择
  5. 特征评估
  6. 特征工程案例介绍

通过前面5部分的介绍,我们可以学习特性预处理、特长构建、特征选择、特征评估这些特征工程中最重要的知识点。最后通过一个案例将前面的知识点串联起来,让大家可以更好地领悟,做到活学活用。

展开查看详情

1.特征⼯工程介绍 gongyouliu

2. ⾃自我介绍 ⾃自我介绍 09年年毕业,从事⼤大数据与AI近⼗十⼀一年年,有9年年推荐系统算法研究及⼯工程实践经验 业余喜欢读书、暴暴⾛走、写技术和深度思考类⽂文章,维护“⼤大数据与⼈人⼯工智能”和“gongyouliu”两个公众号 公司及⼯工作介绍 电视猫MoreTV是⼀一款基于智能电视以及互联⽹网机顶盒的视频应⽤用 ⼤大数据基础架构、数仓、BI、搜索、推荐、NLP等 电视猫从12年年开始做⼤大数据&推荐系统到现在差不不多8年年

3. Agenda • 1. 特征⼯工程介绍 • 2. 特征预处理理 • 3. 特征构建 • 4. 特征选择 • 5. 特征评估 • 6. 推荐系统特征⼯工程案例例

4.1. 特征⼯工程介绍

5. 什什么是特征? 特征(Feature)是建⽴立在原始数据之上的特定表示,它是⼀一个单独的可度量量属性,通常⽤用结构 化数据集中的⼀一列列表示。对于⼀一个通⽤用的⼆二维数据集,每个观测值(样本)由⼀一⾏行行表示,每个 特征由⼀一列列表示,对于每⼀一个观测具有⼀一个特定的值。下图就是⽤用户基本属性表,其中每⼀一 列列就是⼀一个特征,其中年年龄、身⾼高、体重是数值的,是数值特征,数值特征也叫做连续特 征,⽽而性别是⽤用⽂文本描述的,并且只有男⼥女女两种取值,是离散特征。

6. 特征的种类 (1) 离散特征 离散特征⼀一般分为类别特征和有序特征,类别之间是⽆无序关系的, ⽐比如性别,有序特征之间 是有序关系的,⽐比如收⼊入的低、中、⾼高三个等级,之间是有序的。 (2) 连续(数值)特征 能够⽤用实数或者整数等数值度量量的特征就是连续特征,⽐比如身⾼高、体重等都属于连续特征。 (3) 时空特征 在某些模型中时间是⾮非常重要的特征,时间⼀一般是相对的,具有周期性。对基于地理理位置的服 务,位置是⾮非常重要的特征,⽤用户的⾏行行为可能跟位置有关(如⼴广东⼈人喜欢看粤语剧),地理理位置 可以⽤用⾏行行政区划的层级关系表示,也可以⽤用相对距离来表示。

7. 特征的种类 (4) ⽂文本特征 ⽂文本是⾮非常重要的⼀一类数据,我们可以从⽂文本中抽提特征,⽐比如利利⽤用TF-IDF等获得的特 征,⽂文本特征⼀一般可以通过转化为向量量来表示。 (5) 富媒体特征 包括从图⽚片、视频、⾳音频、HTML、甚⾄至程序语⾔言等富媒体中抽提的特征,这些特征也 ⼀一般⽤用数值向量量来表示。

8. 特征⼯工程 特征⼯工程(Feature Engineering)是将原始数据转化为特征的过程,这些特征可以很好地测量量或 者描述输⼊入输出之间的内在关系,通过这些特征来构建数学模型,从⽽而提⾼高模型对未知数据预 测的准确性。特征⼯工程在整个算法模型⽣生命周期中所处的阶段⻅见下图。

9.2. 特征预处理理

10. 特征预处理理的⽅方法 缺失值处理理:⼀一般缺失值可以⽤用均值、中位数、众数等填充,或者直接将缺失值当做⼀一个 特定的值来对待。还可以利利⽤用⼀一些复杂的插值⽅方法,如样条插值等来填充缺失值。如果缺 失值不不多,还可以将包含缺失值的样本丢弃。 归⼀一化:不不同特征之间由于量量纲不不⼀一样,数值可能相差很⼤大,直接将这些差别极⼤大的特征 灌⼊入模型,会导致数值⼩小的特征根本不不起作⽤用,⼀一般我们要对数值特征进⾏行行归⼀一化处理理, 常⽤用的归⼀一化⽅方法有min-max归⼀一化、分位数归⼀一化、正态分布归⼀一化、⾏行行归⼀一化等。

11. 特征预处理理的⽅方法 异常值与数值截断:对于数值型特征,可能会存在异常值,包括异常⼤大和异常⼩小的值。在 统计数据处理理中有所谓3σ准则,即对于服从正态分布的随机变量量,该变量量的数值分布在 (μ-3σ,μ+3σ)中的概率为0.9974,这时可以将超出该范围的值看成异常值,采⽤用向上截断 (⽤用μ-3σ)和向下截断(⽤用μ+3σ)的⽅方法来为异常值赋予新的值。对于真实业务场景,可能还要 根据特征变量量的实际意义来进⾏行行处理理。 ⾮非线性变换:有时某个属性不不同值之间差别较⼤大(⽐比如年年收⼊入),有时为了了让模型具备更更多的 ⾮非线性能⼒力力(特别是对于线性模型),这两种情况下都需要对特征进⾏行行⾮非线性变换,⽐比如值取 对数(值都是正的情况下)作为最终的特征,也可以采⽤用多项式、⾼高斯变换、logistic变换等转 化为⾮非线性特征。

12.3. 特征构建

13. 什什么是特征构建 特征构建:所谓特征构建是从原始数据中提取特征,将原始数据空间映 射到新的特征向量量空间,使得在新的特征空间中,模型能够更更好地学习 数据中的规律律。

14. 特征构建的⽅方法 离散特征: 连续(数值)特征: 1) one-hot编码(n-hot) 1) 直接使⽤用 2) 计数编码 2) 离散化(分桶) 3) 散列列编码(映射到低维向量量空间) 3) 特征交叉(⾮非线性函数) 4) 离散特征之间交叉(⽤用户地域与视频语⾔言) 5) 离散特征与连续特征交叉(视频语⾔言与⽤用户年年龄)

15. 特征构建的⽅方法 时间特征: ⽂文本特征: 1) 转化为数值 TF-IDF、LDA、Word2Vec 2) 将时间离散化(是否⼯工作⽇日、周⼏几) 富媒体特征: 领域相关的⽅方法 地理理位置特征: 嵌⼊入特征: 1) ⾏行行政区划表示 基于内容的嵌⼊入、基于⾏行行为的嵌⼊入 2) 经纬度表示 3) 距离表示

16.4. 特征选择

17. 什什么是特征选择 特征选择:特征选择是指从所有构建的特征中选择出⼀一个⼦子集,⽤用于模 型训练与学习的过程。特征选择不不光要评估特征本身,更更需要评估特征 与模型的匹配度,评估特征之间的相关性、评估特征对最终的预测⽬目标 的精准度的贡献。特征没有最好的,只有跟应⽤用场景和模型合适的,特 征选择对于构建机器器学习应⽤用是⾮非常重要的⼀一环。 特征选择主要有以下两个⽬目的: • 简化模型,节省存储和计算开销,让模型更更易易于理理解和使⽤用; • 减少特征数量量、降维,改善通⽤用性、降低过拟合的⻛风险。

18. 特征选择的⽅方法 基于统计量量选择: 基于模型选择: 1)选择⽅方差⼤大的特征 1) 基于模型参数(树模型可以选择特征) 2)⽪皮尔逊相关系数 2) ⼦子集选择 3)覆盖率 4)假设检验(假设特征与⽬目标变量量独⽴立) 5)互信息(选择互信息⼤大的)

19.5. 特征评估

20. 什什么是特征评估 特征评估:是在将特征灌⼊入模型进⾏行行训练之前,事先评估特征的价值, 提前发现可能存在的问题,及时解决,避免将有问题的特征导⼊入模型, 导致训练过程冗⻓长⽽而得不不到好的结果。特征评估是对选择好的特征进⾏行行 整体评价,⽽而不不是特征选择中所谓的对单个特征重要性的评判。

21. 特征评估的⽅方法 特征的覆盖率:是指有多少⽐比例例的样本可以构建出相关特征。 特征的维度:衡量量的是模型的表达能⼒力力,维度越⾼高,模型表达能⼒力力越强(VC维)。 定性分析:是指构建的特征是否跟⽤用户⾏行行为是冲突的,可以拿熟悉的样本来做验证。(如年年收 ⼊入与是否违约) 定量量分析:通过常⽤用的离线评估指标,如Precision、Recall、AUC等等来验证模型的效果。

22.6. 推荐系统特征⼯工程案例例

23.利利⽤用logistic回归预测点击率

24. kkbox⾳音乐推荐 https://www.kaggle.com/c/kkbox-music-recommendation-challenge/overview KKBOX是亚洲领先的⾳音乐流媒体服务,拥有世界上最全⾯面的亚洲流⾏行行⾳音乐库,拥 有超过3000万条曲⽬目。本项⽬目,我们需要预测KKBOX⽤用户在触发了了第⼀一个听歌曲 事件后,在⼀一个时间窗⼝口内的重复聆听歌曲的可能性。如果⽤用户在第⼀一次听了了歌 曲后之后的⼀一个⽉月内重复聆听了了该歌曲,则其⽬目标被标记为1,否则标记为0。

25. kkbox⾳音乐推荐 msno: ⽤用户id,加密String song_id: song id,歌曲id source_system_tab: 触发事件的类型/tab,⽤用于表示app的功能类型 train数据集 source_screen_name: ⽤用户看到的布局的名字(name of the layout) source_type: ⽤用户在app上播放⾳音乐的⼊入⼝口的类型 target: 标签。1表示⽤用户在第⼀一次听⾳音乐后会在⼀一个⽉月内继续订阅,0表示 没有订阅。

26. kkbox⾳音乐推荐 song_id:歌曲id song_length: 单位为ms genre_ids: genre 类别. 可多选,⽤用 “|“隔开 songs数据集 artist_name:歌⼿手 composer:作曲 lyricist:作词 language:语⾔言

27. kkbox⾳音乐推荐 msno:⽤用户id city:城市 bd: 年年龄。注意:年年龄数据有离群点 members数据集 gender:性别 registered_via: 注册⽅方式 registration_init_time: 注册时间,格式为%Y%m%d expiration_date: 到期时间,格式为 %Y%m%d

28. kkbox⾳音乐推荐 song_id:歌曲id song name :歌曲名字 song_extra_infos数据集 isrc – 国际标准⾳音像制品编码(International Standard Recording Code )。理理论上可⽤用于歌曲id,但产⽣生的ISR没有经过官⽅方授权。因 此ISRC中的信息,如国家代码和参考年年份可能不不正确。且多⾸首歌曲 可能共享共⼀一个ISRC,因为⼀一⾸首歌曲的⾳音像制可发⾏行行多次。

29.kkbox⾳音乐推荐

刘强,硕士学历,09年毕业于中国科学技术大学数学系。有10年大数据与推荐系统相关经验,精通大数据与推荐系统。负责上海千杉网络技术发展有限公司大数据与人工智能团队。业余时间维护“大数据与人工智能”和"gongyouliu"两个公众号,发表大数据、推荐系统、个人成长感悟相关文章。