本文主要是介绍使用Python中的Featuretools实现自动化特征工程的实用指南,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
任何参与机器学习黑客马拉松和竞赛的人都知道特征工程的重要性。自从我意识到它具有巨大的潜力以来,我一直是特征工程的巨大倡导者。但手动完成时,这可能是一个缓慢而艰巨的过程。我必须花时间集思广益,讨论哪些功能,并从不同的角度分析它们的可用性。现在,整个FE(Feature Engineering,特征工程)流程都可以实现自动化,我将在本文中向您展示。
资料来源:VentureBeat
我们将使用名为Featuretools的Python特征工程库来执行此操作。但在我们开始讨论之前,我们首先要看一下FE的基本构建模块,用直观的例子来理解它们,然后最后使用BigMart Sales数据集深入了解自动化特征工程的可怕世界。
目录
-
什么是feature?
-
什么是特征工程?
-
为什么需要特征工程?
-
自动化特征工程
-
Featuretools简介
-
Featuretools的实现
-
Featuretools可解释性
1.什么是feature?
在机器学习的背景下,feature即特征可以被描述为解释现象发生的特性(charactristic)或一组特性。当这些特性转换为某种可测量的形式时,它们被称为特征。
例如,假设您有一个学生列表。此列表包含每个学生的姓名,他们学习的小时数,他们的智商以及之前考试中的总分数。现在,您将获得有关新学生的信息 - 他/她学习的小时数和智商,但他/她的分数不见了。你必须估计他/她可能的分数。
在这里,您将使用IQ和study_hours构建预测模型来估计这些缺失的标记。因此,IQ和study_hours被称为此模型的特征。
2.什么是特征工程?
特征工程可以简单地定义为从数据集中的现有特征创建新特征的过程。让我们考虑一个样本数据,其中包含一些项目的详细信息,例如它们的重量和价格。
现在,要创建新特征,我们可以使用Item_Weight和Item_Price。那么,让我们创建一个名为Price_per_Weight的特征。它只是物品的价格除以物品的重量。此过程称为特征工程。
这只是从现有特征创建新特征的一个简单示例,但在实践中,当我们拥有相当多的特征时,特征工程可能变得非常复杂和繁琐。
让我们再看一个例子。在流行的泰坦尼克号数据集(Titanic dataset)中,有一个乘客姓名特征,下面是数据集中的一些名称:
-
Montvila, Rev. Juozas
-
Graham, Miss. Margaret Edith
-
Johnston, Miss. Catherine Helen “Carrie”
-
Behr, Mr. Karl Howell
-
Dooley, Mr. Patrick
这些名称实际上可以分解为其他有意义的特征。例如,我们可以将类似的标题提取并分组为单个类别。让我们来看看乘客姓名中的唯一标题数量。
事实证明,'Dona','Lady','Countess','Capt','Col','Don','Dr','Major','Rev','Sir'和'Jonkheer '非常罕见,可以放在一个标签下。我们称之为rare_title。除此之外,标题'Mlle'和'Ms'可以放在'Miss'下,'Mme'可以用'Mrs'替换。
这篇关于使用Python中的Featuretools实现自动化特征工程的实用指南的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!