FeatureTools是2017年9月上线的github项目,是一个自动生成特征的工具,应用于关系型数据。

github链接:https://github.com/Featuretools/featuretools

项目官网:https://www.featuretools.com/

API doc:https://docs.featuretools.com/api_reference.html

最近看了一下这个开源工具,对生成关系型特征有一些帮助,把这个项目简单总结一下。

这个项目起源于Deep Feature Systhesis 这篇文章,链接是 http://www.jmaxkanter.com/static/papers/DSAA_DSM_2015.pdf ,官网上也有类似资料,但是没有文章介绍的详细。

Feature Tools是 Deep Feature Systhesis (DFS) 算法的开源实现,实现原理如下。

假定我们有四个Entity,即四张表(Table):Customer, Order, Order Product 和 Product。他们之间的关系是这样的:

1个Customer对应多个Order,其余的以此类推。

我们的目标是给Customer建立特征。

DFS方法把特征分为两类:

1. Entity feature, 仅依据Customer表中的数据计算特征,计算出的特征简称efeat;

2. Ralated feature, 依据Customer表和其他表的关系计算特征,relation又为两类,一是forward relation, 即一对一的关系,比如 一个Order只对应一个Customer,二是 backward relation,即一对多的关系,比如 一个Customer对应多个Order。

假设我们不是对Customer计算特征,而是对Order计算特征,这时Customer和Order是forward relation,可以直接把Customer的字段加到Order表中,然后再计算各种特征,这样计算得到的特征简称 dfeat;

如果是针对Customer计算特征,Customer和Order是backward relation,此时就需要先计算相同Customer的不同Order的特征值(比如 sum, max, min, mean, std等),计算得到的特征简称rfeat。

DFS把Entity之间的关系称为parent-child关系,比如 Customer和Order是一对多的关系,所以Customer是parent,Order是child。这是FeatureTools的输入参数之一。

上面的概念都搞清楚了,就能自然理解DFS计算特征的过程了:根据parent-child关系,计算rfeat和dfeat,把rfeat和dfeat合并到parent表中,计算parent的efeat,以递归方式执行这些操作即可,也就是自底向上累积计算特征。

附上文中给出的伪代码:

文中提到了一个注意点:一般先计算rfeat,后计算dfeat,同一个Entity一般只使用一次。

一般来说,rfeat包含的信息量更多,也更常用,所以rfeat相比dfeat更重要一些,这是我的理解。

featureTools的使用比较简单,可以参考5-minutes demo实操一下:https://docs.featuretools.com/#minute-quick-start

要把这个工具的所有api都了解清楚,可以参考上面的api链接,下载数据,跑demo,把所有特征都计算一遍。

p.s. 这个工具有两个弱点:

1. 使用这种多层全排列的方式容易造成特征维数过多,实践中必须做特征筛选,降低特征维数。

2. 这种暴力搜索得到的特征,可解释性可能偏弱,需要深入研究那些优质特征的可解释性。懂业务的人搞出几个解释性强的特征,可能秒杀暴力搜索得到的所有特征。所以,实际应用时,可以用暴力搜索法作为特征挖掘的辅助算法。

3. 从官网文档看,FeatureTools只有单机版,处理的数据量有限。

Feature Tools 简介的更多相关文章

  1. 2022年Python顶级自动化特征工程框架⛵

    作者:韩信子@ShowMeAI 机器学习实战系列:https://www.showmeai.tech/tutorials/41 本文地址:https://www.showmeai.tech/artic ...

  2. 【问题记录】VMware Tools是灰色的,不能安装

    一.VMware Tools简介 VMware Tools 中包含一系列服务和模块,可在 VMware 产品中实现多种功能,从而使用户能够更好地管理客户机操作系统,以及与客户机操作系统进行无缝交互. ...

  3. selenium 3.0 beta2 初体验

    经过漫长的等待,终于迎来了selenium 3.0 从selenium 1.0 至今,差不多有十多年的历史.这个月终于迎来了selenium3.0 那么selenium3.0 为我们带来了什么? 看一 ...

  4. swagger文档转换为WebApiClient声明式代码

    1 swagger简介 Swagger是一个规范且完整的框架,提供描述.生产.消费和可视化RESTful Web Service.其核心是使用json来规范描述RESTful接口,另外有提供UI来查看 ...

  5. Git使用手册【转】

    转自:https://www.jianshu.com/p/e32a8e7ca93b 目录: Git是什么 基本概念 Git的诞生 Git的安装与配置 创建版本库 Git操作略览 远程仓库:git的杀招 ...

  6. MySQL GUI Tools 使用简介

    转自:http://database.ctocio.com.cn/422/8919922.shtml    MySQL GUI Tools是一套图形化桌面应用工具套装,可以用来管理MySQL服务器.该 ...

  7. Spring Tools Suite (STS) 简介

    首先,sts是一个定制版的Eclipse,专为Spring开发定制的,方便创建调试运行维护Spring应用. 官方页面.下载地址(3.8.1 win x64). 其次,没什么好介绍的,用一下就明白了. ...

  8. 【HEVC简介】Inter Prediction Tools

    参考文献:见<High Efficiency Video Coding (HEVC)>Inter-Picture Prediction in HEVC章节 <HEVC标准介绍.HEV ...

  9. Java测试开发--Spring Tools Suite (STS) 简介(一)

    sts是一个定制版的Eclipse,专为Spring开发定制的,方便创建调试运行维护Spring应用. 官网下载之后,可以看到一个sts-bundle,里面有三个文件夹,一个法律信息,一个tc Ser ...

随机推荐

  1. 利用Powershell自动部署asp.net mvc网站项目 (一)

    这一篇中我们会写一些关于自动化部署的代码.我们会使用 Powershell 书写这类代码. 你将发现这篇文章中涉及的东西非常具体,有的要求甚至相当苛刻且可能不具有通用性.这是因为部署从来都是跟环境打交 ...

  2. Firefox 在LR录制过程中添加例外的问题解决方法

    用lr调火狐打开网页  会报证书安全问题 证书安全提示目的是告诉你这个服务器使用的证书可能不安全,要不要信任,你自己决定,不信任就不能访问.为什么会报证书安全,因为浏览器没添加该证书.或者由于性能工具 ...

  3. thinkphp 操作mssql2008

    配置文件 <?php return array( //'配置项'=>'配置值' //'USERNAME'=>'admin', //赋值 //数据库配置信息 'DB_TYPE' =&g ...

  4. ThinkPHP3.2 介绍

    模块化 驱动化 为云平台而生ThinkPHP3.2正式版发布! ThinkPHP是国内领先的WEB应用开发框架,诞生于2006年初,在国内具有良好的口碑和广大的用户群,秉承了大道至简的开发理念,让WE ...

  5. Spring RestTemplate 小结

    关于RestTemplate 首先,你可以把它理解为一个发起请求并接收响应的工具类(功能类似浏览器). 其次,它其实是一个壳,具体还是通过调用别的接口来实现(如jdk自带的连接,或者HttpClien ...

  6. Qt Creater中Clang-format的使用

    起因在于习惯性的想格式化代码,发现Qt Creater默认居然是没有代码格式化的,只有一个缩进,搞毛线啊!!! 搜索了下,倒是很容易就搜到了,Qt Creater中有个插件:beautifier,在 ...

  7. ARP协议相关介绍

    什么是ARP协议? ARP,即地址解析协议,实现通过IP地址得知其物理地址.在TCP/IP网络环境下,每个主机都分配了一个32位的IP地址,这种互联网地址是在网际范围标识主机的一种逻辑地址.为了让报文 ...

  8. resize2fs: Bad magic number in super-block while trying to open

    I am trying to resize a logical volume on CentOS7 but am running into the following error: resize2fs ...

  9. CentOS安装emacs24.2命令

    CentOS安装emacs24.2命令 #1.安装如下软件 yum -y groupinstall "Development Tools" yum -y install gtk+- ...

  10. MySQL(五)之DDL(数据定义语言)与六大约束

    前言 前面在数据库的讲解中,其实很多东西都非常的细节,在以前的学习过程中我都是没有注意到的.可能在以后的工作中会碰到所以都是做了记录的. 接下来,我将分享的是MySQL的DDL用来对数据库及表进行操作 ...