Answers:
非常有趣的问题(+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(本文中进行了描述)。
Featuretools是最近发布的用于自动特征工程的python库。它基于名为Deep Feature Synthesis的算法,该算法最初于2015年MIT开发,并在Kaggle的公共数据科学竞赛中进行了测试。
这就是它如何适合通用数据科学过程。
该库的目的不仅是帮助专家更快地构建更好的机器学习模型,而且还使数据科学过程对尝试学习的人减少了威胁。如果您有事件驱动或相关数据,我强烈建议您检查一下!
免责声明:我是该项目的开发人员之一。
特征工程是机器学习的核心,既费力又费时。已经进行了各种使要素工程自动化的尝试,以期使人们摆脱困境。解决分类问题的一种具体实现是auto-sklearn。它在后台使用了一种称为SMAC的优化程序来选择适当的一组变换和算法(以及算法参数)。
请注意,Trifacta提供了一个非常易于使用的数据转换工具。它具有高度直观的GUI,可用于设置转换/特征工程图。还有一个免费试用版,可用于解决大小合理的问题。
Scikit-learn最近发布了新的转换器,用于处理特征工程的许多方面。例如:
您可以使用SimpleImputer
(http://scikit-learn.org/stable/modules/generation/sklearn.impute.SimpleImputer.html)进行多种缺失数据插补技术,包括数值和分类变量的均值,中位数和任意值插补。
您可以使用IterativeImputer
(https://scikit-learn.org/stable/modules/genic/sklearn.impute.IterativeImputer .html#sklearn.impute.IterativeImputer)
您可以使用OneHotEncoder()
Scikit-learn中的分类进行一种热门编码
您可以使用来按数字对分类变量进行编码LabelEncoder
。
您可以使用PowerTransformer
(http://scikit-learn.org/stable/modules/generation/sklearn.preprocessing.PowerTransformer.html)进行Yeo-Johnson变量转换。
您可以使用KBinsDiscretiser
(https://scikit-learn.org/stable/auto_examples/preprocessing/plot_discretization.html)进行离散化
Scikit学习中可能还有其他功能工程转换器,开发人员会定期更新库。
作为著名的Scikit学习库的替代,最近发布了一个新的开源库,称为feature-engine。使用功能引擎,您可以:
github repo和docs(https://feature-engine.readthedocs.io/en/latest/)中的更多详细信息
免责声明:我创建了功能引擎并将其开源。
另一个开源python包允许使用不同类型的分类变量编码:https://contrib.scikit-learn.org/categorical-encoding/
最后,功能工具是用于交易数据的良好开源库。
Amazon Machine Learning是一种工具,我有时会使用它进行功能设计。
由于Amazon AWS服务已显示出许多希望和标准,因此我绝对可以指望Amazon ML,因为它具有使数据科学家的工作流程变得更简单的前景和希望。但是到目前为止,它仍然很小。
但是,正如您要求的用于特征工程的工具一样,这就是其中之一。
有关/有关使用Amazon ML的一些常见问题解答。