使用 Featuretools库来了解自动化特征工程如何改变并优化机器学习的工作方式.doc
《使用 Featuretools库来了解自动化特征工程如何改变并优化机器学习的工作方式.doc》由会员分享,可在线阅读,更多相关《使用 Featuretools库来了解自动化特征工程如何改变并优化机器学习的工作方式.doc(7页珍藏版)》请在三一文库上搜索。
1、使用 Featuretools库来了解自动化特征工程如何改变并优化机器学习的工作方式近年来,我们在自动模型选择和超参数调优方面取得了进展,但机器学习流程中最重要的方面-特征工程,在很大程度上被我们所忽略。在本文中,我们将使用Featuretools库来了解自动化特征工程如何改变并优化机器学习的工作方式。Featuretools是一个开源的Python库,用于自动化特征工程自动化特征工程是一种相对较新的技术,用于解决真实世界数据集所面临的一系列科学问题。自动特征工程能够缩减时间成本,构建更优秀的预测模型,生成更有意义的特征,还能防止数据泄漏(data leakage)。它具有强大的功能,以至于我
2、相信它将是任何机器学习工作流程的标准部分。接下来,我们将通过以下两个项目来进一步了解它的强大之处,这两个项目都能体现自动化特征工程的一些优点:贷款还款预测(Loan Repayment Prediction):相比于手动特征工程,自动化特征工程能够将机器学习开发时间缩短10倍,同时还能提供更好的模型表现。项目的Notebooks地址:https:/github/Featuretools/Automated-Manual-Comparison/tree/master/Loan%20Repayment零售支出预测(Retail Spending Prediction):自动化特征工程能够通过内部时
3、间序列过滤器的处理,创造更有意义的特征,同时还能防止数据泄漏,从而成功实现模型的部署。项目的Notebooks地址:https:/github/Featuretools/Automated-Manual-Comparison/tree/master/Retail%20Spending手动特征工程 vs自动特征工程特征工程是指获取数据集并构建解释的特征变量的过程,而特征变量能够用于训练机器学习模型并用于预测。通常,分布于多张表中的数据需要汇集到一张表中,其中行代表观察量,而列代表特征。手动特征工程是一种传统的特征工程方法,它主要是利用领域知识来构建特征,一次只能产生一个特征,这是一个繁琐,费时又
4、易出错的过程。此外,每次进行手动特征工程的代码是针对特定的问题,当我们要解决一个新问题、新数据集时,我们需要重写相关代码。自动化特征工程是通过从一组相关的数据表中自动提取有用且有意义的特征,这种方法能够改变标准的工作流程,并适用于任务数据集的有关问题。此外,它不仅减少了特征工程所需的时间,还创建了可解释性的特征,并通过过滤与时间相关的数据来防止数据泄漏。贷款还款项目更快更好地构建模型Home Credit Loan 问题是于今日在 Kaggle上结束的一项机器学习竞赛项目,其目标是预测客户是否能够偿还贷款。对于数据科学家而言,这个问题的挑战在于其数据的大小及所分布的范围。我们来看下完整的数据集
5、,可以看到分布在七张表中有5800万行数据,而机器学习方法需要针对一张表进行模型训练。此时,特征工程就需要将每个客户的所有信息提取并融合到一个表中。特征工程需要从数据表格集中获取所有的数据信息并整合到一张表中对于这个问题,我先是尝试用传统的手动特征工程来解决,共花了10个小时手动地创建一组特征。首先,我研究了其他数据科学家的工作,探索数据与研究,以便获得必要的领域知识。然后我通过编程将所需的知识写成代码,每次构建一个特征。对于一个手动特征,我使用 3 个不同的表格,找到了客户在之前贷款中延迟付款的总数。最终,手动特征工程取得了相当不错的表现:相比于基线特征,手动特征工程取得了 65% 的性能改
6、进,表明了特征工程的适用性和重要性。然而,由于这种方法的效率很低,我无法在这里展开描述整个过程。对于手动特征工程,每个特征花费超过 15 分钟的时间,因为我用的这种方法一次只能创建一个特征。手动特征工程流程除了繁琐性和耗时等缺点外,手动特征工程还有如下弊端:只针对特定问题:对于这个项目,我写了几个小时的代码不能应用于其他任何问题容易出错:每行代码都有可能产生错误此外,手动特征工程所提取的特征还会受到人类创造力和耐心的限制:对于一个问题,我们需要考虑大量的特征,而每个特征的构建又需要大量的时间。从手动到自动的特征工程像 Featuretools 可以实现的功能那样,自动化特征工程能够从一组相关的
7、数据表中创建数千个特征,我们所需要知道的就是数据表的基本结构以及它们之间的关系。我们将单个数据结构称为实体集(entity set),一旦拥有一个实体集,我们将在数据集中采用深度特征合成方法(DFS),通过调用一个函数来构建数千个特征。使用 Featuretools进行自动化特征工程DFS 使用称为“基元 primitives”的函数来聚合并转换我们的数据。这些primitives的获取可以跟获取列的平均值或最大值一样得简单,也可以通过基于主体的专业知识那样相对复杂的方式来获取,因为Featuretools允许我们针对任务自定义我们的 primitives。特征基元(feature primi
8、tives)包括许多需要手动完成的操作,但通过 Featuretools,我们可以在任何关系数据库中使用相同的确切语法,也就是说在不同的数据集上我们也不需要重写代码就能够使用这些操作。此外,当我们将 primitives堆叠在一起以创建深层特征时,DFS的强大之处就尽显无疑了。有关 DFS的更多信息,可以参阅:https:/featurelabs/blog/deep-feature-synthesis/下面,我将演示如何构建这个过程。这里,我只需要一行的代码就能使用DFS 操作,并使用7张表格数据为每个客户创建数千个功能,如下所示,其中 ft代表导入的 featuretools库:1#Deep
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 使用 Featuretools库来了解自动化特征工程如何改变并优化机器学习的工作方式 Featuretools 了解 自动化 特征 工程 如何 改变 优化 机器 学习 工作 方式
链接地址:https://www.31doc.com/p-3381917.html