Posts machine-learning-feature-engineering
Post
Cancel

machine-learning-feature-engineering

Foreword

在机器学习领域,整个行业朝着准入门槛更低、研发流程更敏捷方向发展,Auto-ML的出现意味着整个流程更加自动化。Auto-ML主要集中在特征工程自动化,模型选择自动化,模型训练及参数优化自动化,数据偏移检测自动化等。以下以python sklearn等模块,示例各个阶段如何进行自动化数据数据。

Feature Engineering

特征工程自动化指通过一些方法手段,自动从原始数据中提取出候选特征进行模型训练。

feature tools

官方网站:https://github.com/FeatureLabs/featuretools

原理介绍

生产环境中我们遇到的大部分数据都是按照结构化存储的。存储的数据类型可简单分为:数据实体(Entity)、数据实体关联关系(EntitySet)。不同的数据实体有不同的ID(EntityID),包括命名规则以及值域等。EntitySet则描述了不同EntityID的关联关系。

Featuretools提供了基于DFS深度特征提取算法,自动发现EntitySet路径中不同实体的关联关系。在遍历数据时,使用预先定义的Aggregation和Transform,对Entity数据进行计算,生成合成特征。

Featuretools侧重于特征计算处理,其最大的优点是定义了一套标准的特征处理元语:Aggregation、Transform,可以用于处理相同类型的数据。

官方例子已经比较详细,因此这里不再添加额外例子,可访问查看:https://docs.featuretools.com/en/stable/

boruta

官方网站:https://github.com/scikit-learn-contrib/boruta_py

原理介绍

Boruta主要用于探索特征变量相关性。生产环境建模中,不仅关注特征如何构建,还关注新增、删除特征后,模型评价指标的变化。通常对特征选择有以下两类结果:

1、删除某些特征后,导致模型评价指标变差,说明这些特征对于模型评价指标很重要; 2、删除某些特征后,模型评价指标无明显变化,说明这些特征对于模型评价指标不重要。

以上结论中,结论1一定正确,结论2不一定正确,因为模型评价指标可能同因变量关系不大。Boruta提供了评估自变量(特征)同因变量重要关系的方法,从而能够更高效发现重要特征。

Boruta将原特征进行随机shuffle从而构造出影子特征,将原始特征与影子特征拼接成新特征后,加入到训练数据中,作为特征矩阵参与模型训练,最后以影子特征的feature importance得分做为参考base, 从原始特征中选出与因变量真正相关的特征集合。

官方例子已经比较详细,因此这里不再添加额外例子,可访问查看:https://pypi.org/project/Boruta/

tsfresh

官方网站:https://github.com/blue-yonder/tsfresh

原理介绍

tsfresh适用于时间序列特征提取工具。该包包含多种特征提取方法和鲁棒特征选择算法,同时还可以对提取出的特征做重要性选择。

tsfresh提供了以下处理能力:返回时序数据的绝对能量(平方和)、返回时序数据的一阶差分结果的绝对值之和、返回时序数据的各阶差分值之间的聚合(方差、均值)统计特征等等,时序数据处理中通用的特征处理计算方法。

官方例子已经比较详细,因此这里不再添加额外例子,可访问查看:https://tsfresh.readthedocs.io/en/latest/

sklearn

官方网站:https://scikit-learn.org/

原理介绍

sklearn提供了一整套涵盖从数据清洗、特征处理、特征选择、模型训练、评估以及可视化等流程功能,网上介绍资料比较多,这里不再赘述。

官方例子已经比较详细,因此这里不再添加额外例子,可访问查看:https://scikit-learn.org/stable/

OLDER POSTS NEWER POSTS

Comments powered by Disqus.

Contents

Search Results