前一文讲的是一些特征的基础处理方式,包括怎么降维、怎么处理脏数据等等。其实特征工程真正的难点是如何结合业务需求衍生出新的特征。结合业务需求讲的是利用专家经验来提取出数据里对结果影响更大的特征,往往是原有数据字段通过加减乘除等操作生成新的字段,这些字段在结合一些线性算法做训练的时候往往能起到提升模型效果的作用,接下来就简单介绍下特征衍生。

因为衍生特征这个方法是需要结合业务特点的,范围太广,所以本文就用一个例子来介绍。今天就用一份NBA比赛数据做例子吧,因为读者大部分是男同学,对于篮球应该比较熟悉,如果是妹子读者的话可以咨询下你的男朋友~

球员

投篮数

命中数

比赛场次

全明星

科比

800

400

500

乔丹

500

300

200

上面这份数据我就随便写两个球员哈(非黑),然后随便写了三个特征数据分别是投篮数、命中数、比赛场次,目标列就是是否是明星球员。现在要思考这样的问题,如果只用原始的这三个输入特征去做训练,信息量可能略显单薄。先拿“命中率”来讲,我们都知道在投篮比赛中命中投篮越多表示这个球员越厉害,原始数据中科比的命中数多于乔丹,而只有乔丹是明星,如果这样的数据带入很有可能学出来的效果是“命中球数越多,越不可能成为全明星”,这个理论与我们熟悉的客观事实不符。

真正熟悉篮球的同学肯定会了解,影响一个球员能否成为明星的关键,不是他浪投进了多少,而是更关键的是这个球员的命中率。如果我们衍生一个字段叫命中率,它的计算方式是“命中数/投篮数”,那这个特征对于数据的刻画可能更深刻。于是数据变成了:

球员

投篮数

命中数

命中率

比赛场次

全明星

科比

800

400

0.5

500

乔丹

500

300

0.6

200

在真实业务场景中,特征衍生往往要覆盖业务的各个方面,可能要衍生出成百上千的新特征才能更好的描述训练数据集的意义。

[特征工程系列三]显性特征的衍生相关推荐

  1. [特征工程系列二]显性特征的基本处理方法

    今天接着前一篇文章讲,主要分享基于显性特征工程的一些最基本的处理方法.关于显性特征是什么,大家可以去看系列文章一.关于显性特征的处理方法可以做这样的类比:不知道大家平时会不会自己做菜,我个人的话基本每 ...

  2. 特征工程系列:自动化特征构造

    特征工程系列:自动化特征构造 原创: JunLiang 木东居士  今天 0x00 前言 数据和特征决定了机器学习的上限,而模型和算法只是逼近这个上限而已.由此可见,特征工程在机器学习中占有相当重要的 ...

  3. [特征工程系列一] 论特征的重要性

    满打满算,还有十天左右就要过年了,这些天大家或多或少都有点浮躁.反过来想,趁大家都懈怠的时候,正是学习的最佳时机.趁着这几天,也给自己加点码,去认真的再看一下特征工程.我给自己列了下面的这一份学习清单 ...

  4. 特征工程系列:数据清洗

    文章系列: 特征工程系列:数据清洗 特征工程系列:特征筛选的原理与实现 特征工程系列:特征预处理 特征工程系列:特征构造 特征工程系列:时间特征构造以及时间序列特征构造 前言 数据和特征决定了机器学习 ...

  5. 特征工程系列:特征筛选的原理与实现(下)

    0x00 前言 我们在<特征工程系列:特征筛选的原理与实现(上)>中介绍了特征选择的分类,并详细介绍了过滤式特征筛选的原理与实现.本篇继续介绍封装式和嵌入式特征筛选的原理与实现. 0x01 ...

  6. [特征工程系列五]基于蒙特卡洛搜索树的半自动特征工程方案

    不知道有多少同学坚持看完了特征工程系列1~4,今天我们迎来最后一篇.前面的四篇其实都是一些基于特征工程理论的干货的分享,今天我们来点虚的,讲讲我YY的一种蒙特卡洛搜索树的半自动化的特征工程方案.其实为 ...

  7. ​特征工程系列:特征预处理(上)

    特征工程系列:特征预处理(上) 关于作者:JunLiang,一个热爱挖掘的数据从业者,勤学好问.动手达人,期待与大家一起交流探讨机器学习相关内容~ 0x00 前言 数据和特征决定了机器学习的上限,而模 ...

  8. 特征工程系列:特征预处理(下)

    特征工程系列:特征预处理(下) 本文为数据茶水间群友原创,经授权在本公众号发表. 关于作者:JunLiang,一个热爱挖掘的数据从业者,勤学好问.动手达人,期待与大家一起交流探讨机器学习相关内容~ 0 ...

  9. 《scikit-learn》数据预处理与特征工程(三)特征选择

    特征工程包括三个部分: 1.特征提取:从文字,图像,声音等其他非结构化数据中提取信息作为特征,建立最原始特征信息采集. 2.特征创造:把现有的一些特征进行组合胡总和相互计算,得到新的特征. 3:特征选 ...

最新文章

  1. c语言中比较两个数组函数,输入两个数组,调用large函数比较,计数,输出统计结果...
  2. java基础编程题(1)
  3. c# yield关键字原理
  4. Android上常见度量单位【xdpi、hdpi、mdpi、ldpi】解读
  5. Spring创建Bean的3种方式
  6. 1.7编程基础之字符串
  7. 技术解读丨分布式缓存数据库Redis大KEY问题定位及优化建议
  8. Spark Streaming之运行原理
  9. 多个Wyze 摄像头漏洞可导致攻击者接管设备并访问视频
  10. 什么是pytorch_什么是Pytorch?
  11. getTime()的兼容性(ios)
  12. 中学计算机课程课时,高中信息技术课程教学计划
  13. 算法题:Find the closest common ancestor
  14. adobe flash builder4.6 安装存在问题,可能未安装某些必需组件
  15. Java代码实现24点计算
  16. 一行代码视频下载,so easy!
  17. 北京软件开发公司排名-最大的软件开发公司有哪些呢
  18. 【芯片前端】Filelist -f/-F的文件解析方式探究
  19. 服务器虚拟化太金苹果效果好,《我的世界》金苹果更新速度太快,如今附魔金苹果“可遇不可求”...
  20. python爬楼梯问题

热门文章

  1. java map输出中括号,从地图检索数据时获取双方括号
  2. centeros php pgsql,centos php添加pgsql扩展
  3. php execute 更新不变,php – Doctrine executeUpdate数组参数
  4. vscode 注释_VSCode最强助攻
  5. linux oel7没有网络,rhel7/oel7上修改默认内核启动顺序的方法
  6. cas无法使用_一文彻底搞懂CAS实现原理
  7. Java中的输入输出流
  8. 如何创造char二叉树C语言,递归创建二叉树c语言实现+详细解释
  9. php 接受数组_PHP接收前端发送的数组
  10. Oracle的三种循环