[特征工程系列三]显性特征的衍生
2018-02-11 17:38
267 查看
前一文讲的是一些特征的基础处理方式,包括怎么降维、怎么处理脏数据等等。其实特征工程真正的难点是如何结合业务需求衍生出新的特征。结合业务需求讲的是利用专家经验来提取出数据里对结果影响更大的特征,往往是原有数据字段通过加减乘除等操作生成新的字段,这些字段在结合一些线性算法做训练的时候往往能起到提升模型效果的作用,接下来就简单介绍下特征衍生。
因为衍生特征这个方法是需要结合业务特点的,范围太广,所以本文就用一个例子来介绍。今天就用一份NBA比赛数据做例子吧,因为读者大部分是男同学,对于篮球应该比较熟悉,如果是妹子读者的话可以咨询下你的男朋友~
上面这份数据我就随便写两个球员哈(非黑),然后随便写了三个特征数据分别是投篮数、命中数、比赛场次,目标列就是是否是明星球员。现在要思考这样的问题,如果只用原始的这三个输入特征去做训练,信息量可能略显单薄。先拿“命中率”来讲,我们都知道在投篮比赛中命中投篮越多表示这个球员越厉害,原始数据中科比的命中数多于乔丹,而只有乔丹是明星,如果这样的数据带入很有可能学出来的效果是“命中球数越多,越不可能成为全明星”,这个理论与我们熟悉的客观事实不符。
真正熟悉篮球的同学肯定会了解,影响一个球员能否成为明星的关键,不是他浪投进了多少,而是更关键的是这个球员的命中率。如果我们衍生一个字段叫命中率,它的计算方式是“命中数/投篮数”,那这个特征对于数据的刻画可能更深刻。于是数据变成了:
在真实业务场景中,特征衍生往往要覆盖业务的各个方面,可能要衍生出成百上千的新特征才能更好的描述训练数据集的意义。
因为衍生特征这个方法是需要结合业务特点的,范围太广,所以本文就用一个例子来介绍。今天就用一份NBA比赛数据做例子吧,因为读者大部分是男同学,对于篮球应该比较熟悉,如果是妹子读者的话可以咨询下你的男朋友~
球员 | 投篮数 | 命中数 | 比赛场次 | 全明星 |
科比 | 800 | 400 | 500 | 否 |
乔丹 | 500 | 300 | 200 | 是 |
真正熟悉篮球的同学肯定会了解,影响一个球员能否成为明星的关键,不是他浪投进了多少,而是更关键的是这个球员的命中率。如果我们衍生一个字段叫命中率,它的计算方式是“命中数/投篮数”,那这个特征对于数据的刻画可能更深刻。于是数据变成了:
球员 | 投篮数 | 命中数 | 命中率 | 比赛场次 | 全明星 |
科比 | 800 | 400 | 0.5 | 500 | 否 |
乔丹 | 500 | 300 | 0.6 | 200 | 是 |
在真实业务场景中,特征衍生往往要覆盖业务的各个方面,可能要衍生出成百上千的新特征才能更好的描述训练数据集的意义。
相关文章推荐
- [特征工程系列二]显性特征的基本处理方法
- Hulu机器学习问题与解答系列 | 二十二:特征工程—结构化数据
- 【机器学习系列之三】特征工程
- [特征工程系列一] 论特征的重要性
- 【特征工程系列2】如何获得训练数据的标签?
- kaggle数据挖掘竞赛初步--Titanic<数据变换> 完整代码: https://github.com/cindycindyhi/kaggle-Titanic 特征工程系列: Titanic
- 使用腾讯云 GPU 学习深度学习系列之四:深度学习的特征工程
- 评分卡系列(二):特征工程
- 【特征工程系列3】Zipf定律及其特征化
- 【特征工程系列1】用户评价信息的特征化
- 经典算法研究系列:九、图像特征提取与匹配之SIFT算法
- 机器学习之特征工程
- 数据挖掘实践与我的想法之特征工程
- 【Android Studio】studio学习系列(一) 从eclipse导入工程
- ALOHA算法衍生系列:Iterative Interference Cancellation在ALOHA算法中的应用总结
- 一天一工程总结系列-7.15-ReactiveCocoa
- 第10章 新建工程-库函数版—零死角玩转STM32-F429系列
- 深度学习系列(七):自编码网络与PCA特征学习的分类对比实验
- 【特征工程】3 特征工程技术与方法
- 机器学习 数据特征分析 特征工程