zoukankan      html  css  js  c++  java
  • Feature Tools 简介

    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只有单机版,处理的数据量有限。

  • 相关阅读:
    UVA 254 Towers of Hanoi
    UVA 701 The Archeologists' Dilemma
    UVA 185 Roman Numerals
    UVA 10994 Simple Addition
    UVA 10570 Meeting with Aliens
    UVA 306 Cipher
    UVA 10160 Servicing Stations
    UVA 317 Hexagon
    UVA 10123 No Tipping
    UVA 696 How Many Knights
  • 原文地址:https://www.cnblogs.com/xxiaolige/p/9319798.html
Copyright © 2011-2022 走看看