是否有用于特征工程的工具?


29

我正在寻找的是具有某些功能的工具,这些功能特定于功能工程。我希望能够轻松地进行平滑,可视化,填补空白等。类似于MS Excel,但它以R作为基础语言而不是VB。

Answers:


21

非常有趣的问题(+1)。虽然我不知道目前有任何软件工具可以提供功能工程的综合功能,但在这方面肯定有很多选择。据我所知,目前,要素工程在很大程度上仍然是一个费力手动的过程(即,请参阅此博客文章)。谈到功能工程主题领域,Jason Brownlee的这篇出色文章提供了对该主题的相当全面的概述。

O'Reilly Media Inc.的首席数据科学家兼数据内容策略总监Ben Lorica写了一篇非常不错的文章,描述了截至2014年6月的最新方法,方法,工具和创业公司。区域自动(或如他所说的那样,精简)功能的工程。

我简要介绍了Ben提及的一些初创公司Skytree的产品确实确实令人印象深刻,尤其是在这个问题的主题上。话虽如此,他们的一些说法对我来说真的很可疑(例如,“ Skytree将机器学习方法与开放源代码选择相比,最多可提高150倍”)。在继续谈论商业数据科学和机器学习产品时,我不得不提到Microsoft的解决方案,尤其是其Azure Machine Learning Studio。此基于Web的产品功能强大且美观大方,并提供了一些功能工程功能(FEF)。有关一些简单的FEF的示例,请参见以下视频

回到问题,我认为可以用于自动进行要素工程的最简单方法是使用相应的IDE。由于您(我也)对R语言作为数据科学后端感兴趣,因此我建议除了RStudio之外,还要检查另一个类似的开源IDE,称为RKWard。RKWard vs RStudio的优点之一是它支持为IDE 编写插件,从而使数据科学家能够自动化功能工程并简化基于R的数据分析。

最后,在特征工程解决方案范围的另一端,我们可以找到一些研究项目。最为明显的两个似乎是斯坦福大学的哥伦布项目(在相应的研究论文中进行了详细描述)和Brainwash本文中进行了描述)。


5

Featuretools是最近发布的用于自动特征工程的python库。它基于名为Deep Feature Synthesis的算法,该算法最初于2015年MIT开发,并在Kaggle的公共数据科学竞赛中进行了测试。

这就是它如何适合通用数据科学过程。

在此处输入图片说明

该库的目的不仅是帮助专家更快地构建更好的机器学习模型,而且还使数据科学过程对尝试学习的人减少了威胁。如果您有事件驱动或相关数据,我强烈建议您检查一下!

免责声明:我是该项目的开发人员之一。


2

特征工程是机器学习的核心,既费力又费时。已经进行了各种使要素工程自动化的尝试,以期使人们摆脱困境。解决分类问题的一种具体实现是auto-sklearn。它在后台使用了一种称为SMAC的优化程序来选择适当的一组变换和算法(以及算法参数)。

请注意,Trifacta提供了一个非常易于使用的数据转换工具。它具有高度直观的GUI,可用于设置转换/特征工程图。还有一个免费试用版,可用于解决大小合理的问题。


2

Scikit-learn最近发布了新的转换器,用于处理特征工程的许多方面。例如:

  1. 您可以使用SimpleImputerhttp://scikit-learn.org/stable/modules/generation/sklearn.impute.SimpleImputer.html)进行多种缺失数据插补技术,包括数值和分类变量的均值,中位数和任意值插补。

  2. 您可以使用IterativeImputerhttps://scikit-learn.org/stable/modules/genic/sklearn.impute.IterativeImputer .html#sklearn.impute.IterativeImputer

  3. 您可以使用OneHotEncoder()Scikit-learn中的分类进行一种热门编码

  4. 您可以使用来按数字对分类变量进行编码LabelEncoder

  5. 您可以使用PowerTransformerhttp://scikit-learn.org/stable/modules/generation/sklearn.preprocessing.PowerTransformer.html)进行Yeo-Johnson变量转换。

  6. 您可以使用KBinsDiscretiserhttps://scikit-learn.org/stable/auto_examples/preprocessing/plot_discretization.html)进行离散化

Scikit学习中可能还有其他功能工程转换器,开发人员会定期更新库。

作为著名的Scikit学习库的替代,最近发布了一个新的开源库,称为feature-engine。使用功能引擎,您可以:

  1. 在数字和分类变量中表示均值,中位数,任意,尾端和随机插补
  2. 进行各种类型的分类编码,包括热,整数,序数,均值编码和证据权重。
  3. 执行各种变量转换,包括对数,倒数,exp和box cox
  4. 各种离散化,包括等频率,等距离和基于树
  5. 离群值处理。

github repo和docs(https://feature-engine.readthedocs.io/en/latest/)中的更多详细信息

免责声明:我创建了功能引擎并将其开源。

另一个开源python包允许使用不同类型的分类变量编码:https//contrib.scikit-learn.org/categorical-encoding/

最后,功能工具是用于交易数据的良好开源库。


1

您应该考虑检查Azure机器学习平台。它是在线的,您可以通过一个免费帐户使用它。

Azure ML通过使用图形用户界面中的模块为您提供工作流。它们中的许多都与Data Munging有关,您可以轻松清理数据。如果在GUI中无法执行某些操作,则只需添加一个模块即可运行自定义R或Python脚本来处理数据。

它的好处是,您可以随时轻松地可视化数据并检查dataframe.describe()R的简单统计信息。


1

Amazon Machine Learning是一种工具,我有时会使用它进行功能设计。

由于Amazon AWS服务已显示出许多希望和标准,因此我绝对可以指望Amazon ML,因为它具有使数据科学家的工作流程变得更简单的前景和希望。但是到目前为止,它仍然很小。

但是,正如您要求的用于特征工程的工具一样,这就是其中之一。

有关/有关使用Amazon ML的一些常见问题解答

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.