自己在实际的工作和平时的学习中,深深地感受到数据和特征的重要性。正如“Garbage in, garbage out”(错进,错出)所说,对于机器学习中,数据和特征往往决定了结果的上限,模型、算法和优化策略则是逐步在逼近这个上限(注:该话的大意来自于《百面机器学习》这本书的第一章—特征工程)。自己查到了市面上关于介绍“特征工程”的书籍,从讲解的详细程度和实践性出发,选择了《特征工程入门与实践》这本书作为参考书籍。下面是我读完这本书后所总结的读书笔记。

1. 特征工程简介

特征工程的意义:在现实中很少有像机器学习竞赛和学术文献中那样干净的数据,在对原始数据的利用过程中,必须要将数据转化为更好地可以表现潜在问题的特征,才能更好地作为机器学习算法模型的输入,从而得到较为理想的模型性能。

特征工程的评估:(1)得到基准模型的性能;

(2)应用至少一种特征工程;

(3)对于每种特征工程,获得对应的性能指标;

(4)若指标的提升(相对于原模型的相对提升,用百分数表示)大于我们自己定义的阈值,则可以在机器学习流水线中应用该特征工程。

特征工程的评价指标:分类:准确率、召回率、F1、AUC、特定领域的性能指标(如搜索推荐中的指标);

回归:MSE、RMS、EMAE等;

聚类:轮廓系数(值在-1~1之间)等;

统计检验:皮尔逊相关系数、p值检验、卡方检验等。

注:对于前三类问题,本书中所有的特征工程的源代码只涉及其中的分类的准确率指标评价问题。

特征工程的机器学习流水线:(1)探索性数据分析(进行数据的基本的描述性统计);

(2)特征理解(如观察每列数据的等级等);

(3)特征增强(如填充缺失值,对数据进行归一化等);

(4)特征构建(如编码分类变量等);

(5)特征选择(本书中都是单变量测试,根据测试的结果选择性能较佳的特征);

(6)特征转换(从原始列中创建与之前结构不同的新列);

(7)特征学习(相比于(6)中的PCA、LDA等一些依赖数据形状的算法,这里将对对数据形状无要求的数据的特征进行学习,介绍的学习的算法有RBM和Word2vector)。

注:原始的数据会经过多种处理,乃至多种机器学习算法才能得到最终的输出,这里将整体的处理过程称为特征工程的机器学习流水线。在scikit-learn中有很多流水线的实现中常用的模块,如Pipeline、train_test_split等,这些都方便了我们对于流水线的构造。在接下来的 2-7节内容中,将对流水线中每一部分进行介绍。

2. 探索性数据分析

这部分是穿插在整个流水线的实现过程中的,经常以图表可视化的形式呈现。比如,我们可以用Seaborn创建关联热图,显示特征的交互情况。在识别缺失值时,使用Pandas得到属性的统计信息。

3. 特征理解

我们常见的大多数非结构化的数据(如服务器日志等)都可以转化为结构化的数据(利用Pandas转化为DataFrame的数据形式更方便处理)。这里将在机器学习中经常要处理的数据划分为四大类,如下所示:

(1)定类数据     不同的数据只表示不同的类别,并无大小高低之分。

(2)定序数据      相比(1),数据之间有大小高低之分。

(3)定距数据       可以对这样的数据进行一些如计算算数平均值、标准差等的操作,常与分桶关联。

(4)定比数据        数据之间的数值差别比较大。

注:(1)和(2)是定性数据,(3)和(4)是定量数据(数据代表数值大小)。对于(1)常用直方图、扇形图表示,对于(2)常用直方图、扇形图、茎叶图表示,对于(3)常用直方图表示,对于(4)常用直方图表示。

《特征工程入门与实践》读书笔记一相关推荐

  1. 卓有成效的程序员 阅读笔记 第一部分

    第一部分 机制 第二章 加速法则 加载器(Launcher)允许你输入应用程序或文档名称的第一部分来加载它:一个应用程序列表的有用程度与它的长度成反比 花点时间来学习你手边所有隐藏的快捷键 命令提示符 ...

  2. ThoughtWorks(中国)程序员读书雷达

      软件业的特点是变化.若要提高软件开发的技能,就必须跟上技术发展的步伐.埋首醉心于项目开发与实战,固然能够锤炼自己的开发技巧,却难免受限于经验与学识.世界上并不存在速成的终南捷径,但阅读好的技术书籍 ...

  3. 张逸:ThoughtWorks(中国)程序员读书雷达

    2013/06/20 ·  书籍与教程, 开发· 6.6K 阅读·  书籍, 架构设计, 编程, 领导力 原文出处: 简单文本-张逸   欢迎分享原创到伯乐头条 软件业的特点是变化.若要提高软件开发的 ...

  4. 张逸: ThoughtWorks(中国)程序员读书雷达

    原文出处: 简单文本-张逸 软件业的特点是变化.若要提高软件开发的技能,就必须跟上技术发展的步伐.埋首醉心于项目开发与实战,固然能够锤炼自己的开发技巧,却难免受限于经验与学识.世界上并不存在速成的终南 ...

  5. 程序员的共鸣 - 读《卓有成效的程序员》

    最近读了<卓有成效的程序员>,感觉收获颇大.这是一本写给程序员的难得的好书.书中大都是一些浅显的道理,但作者将这些东西加以收集.归纳.总结,并最终成书.作者为了收集各种提高效率的工具和方法 ...

  6. 读《卓有成效的程序员》-----我的一些题内和题外的感想

    读<卓有成效的程序员>-----我的一些题内和题外的感想 本文出自:http://hi.baidu.com/xiaonan33309/blog/item/c708c901a50d940b7 ...

  7. 卓有成效的程序员(影印版)

    卓有成效的程序员(影印版) 一本揭示高效程序员的思考模式,一本告诉你如何缩短你与优秀程序员的差距 定价 : ¥42.00会员价 : ¥31.50(75折) 详情查看:http://www.china- ...

  8. [黑马程序员C++笔记]P72-P83通讯录管理系统

    目录 系统需求 1.菜单功能 2.退出功能 3.添加联系人 (1)​​​​​​​设计联系人结构体 (2) 设计通讯录结构体 ​​​​​​​(3)main函数中创建通讯录 (4)封装添加联系人函数 (5 ...

  9. [黑马程序员C++笔记]P72-P83通讯录管理系统总体概览

    系统需求 通讯录是一个可以记录亲人.好友信息的工具. 本教程主要利用C++来实现一个通讯录管理系统 系统中需要实现的功能如下: 添加联系人:向通讯录中添加新人,信息包括(姓名.性别.年龄.联系电话.家 ...

  10. php末尾友链,与php程序员的笔记网站交换友链的原则

    很抱歉,由于本网站首页友链已满,目前停止交换首页友链,内页仍可交换友链!(2013年2月24日) 随着本站友链的数量不断增多,本人不得不对本站的友链申请的原则进行郑重的申明一下,希望各位申请本站友链的 ...

最新文章

  1. PacificA 一致性协议解读
  2. 正则表达式——获取指定IP的物理地址
  3. JUnit 测试含有控制台输入的方法
  4. 安装alien,DEB与RPM互换
  5. 64位内核第二讲,进程保护之对象钩子
  6. SAP NetWeaver 平台介绍
  7. 什么样的人适合做自动化测试
  8. A - 敌兵布阵(线段树)(单点更新区间求和)
  9. 前端-CSS,语法、元素、属性、动画、计算方法布局及简单实战项目
  10. 域名系统包含几类服务器,域名服务器可以划分为哪四种
  11. android高德地图 画质,高德导航地图端口和分辨率修改
  12. 修改Docker默认安装路径
  13. 计算机图形学——MFC绘图基础
  14. 漫画插画绘图工具:MediBangPaintPro for Mac
  15. 仿慕课网Android端app——慕课Ime(自写服务器接口)
  16. 《次世代数据存储思维与技术》大纲
  17. 车用主驱电机系统开发实战
  18. 正版推荐 -Macs Fan Control 控制苹果电脑上风扇工具软件
  19. for循环标记使用方法、配合Break,Continue例题演示
  20. 春招快来了,杭电研究生学长聊聊踩过的坑,助你成功上岸

热门文章

  1. 女生学前端适合么?新人应该怎么学习?
  2. 物理不好适合学计算机,理科女物理不好、数学一般,能不能学计算机、经济学专业?...
  3. Java icetea_java – OpenJDK 8的IcedTea插件
  4. 微信文件管理更改文件夹移动报错
  5. u一点·料:阿里巴巴1688ued体验设计践行之路
  6. python处理word文档中表格 添加一列_Python操作word文档插入图片和表格的实例演示...
  7. 在launcher中隐藏app图标
  8. 记录一次大创项目配置服务器的心得
  9. 重庆地区外卖店铺分析系统的设计与实现
  10. 10个好用的免费图片网站,绝对能在2021年设计上好帮手