专栏首页ATYUN订阅号机器学习工程师心得:特征工程比超参数调优更重要

机器学习工程师心得:特征工程比超参数调优更重要

事实上,特征工程比超参数调优更重要,这是作为一个教训和一个重要的提醒而言的,这将彻底改变在构建任何机器学习模型之前处理问题和数据的方式。

特征工程的重要性

我记得第一次开始学习数据科学时,特征工程并不总是包含在书籍和在线课程中。这给了我一个错觉:在应用机器学习来解决问题时,特征工程可能并不重要。

在讨论什么是特征工程及其重要性之前。让我们先来尝试了解机器学习模型的工作原理。

机器学习模型如何运作?从本质上讲,机器学习模型只是一种算法,通过对历史数据进行训练来学习模式,最终根据看不见的测试数据进行预测。

换句话说,如果数据的代表性不足以描述你尝试解决的问题,那么模型将无法学习基础模式。而这就是特征工程要发挥作用的地方。

特征工程是将原始数据转换为更能代表预测模型的基础问题的特征的过程,从而提高了模型对于不可见数据的准确性。特征工程是机器学习应用的基础,数据中的特征对于你使用的预测模型非常重要,并将影响你将要实现的结果。

特征的质量和数量对模型的好坏有很大的影响。你可以说特征越好,结果就越好。但这并不完全正确,因为获得的结果还取决于模型和数据,而不仅仅是选择的特征。不过选择正确的特征仍然非常重要。更好的特性可以产生更简单、更灵活的模型,并且通常会产生更好的结果。

虽然模型的性能取决于几个因素:准备的数据和特征,训练中使用的模型,问题陈述,衡量模型成功的指标等等,但特征仍然是确定模型成功的关键部分。

在我看来,虽然你可以汇总数据以生成其他功能(平均值和最大值等),但拥有强大的业务领域知识可以让你更多地了解拥有的数据,并根据其相关性和关系生成新特征。

凭借出色的特征,它在模型选择方面提供了更多空间。你可以选择更简单的模型,但仍然能够获得良好的结果,因为你的数据现在更具代表性,而不那么复杂的模型可以轻松地学习基础模式。

最终,特性工程归结为问题表示。如果你的数据具有能够很好地表示问题的优秀特征,那么模型很可能会因为很好地学习了模式而给出更好的结果。

超参数调优的重要性

什么是超参数调优?在机器学习中,超参数调优是为学习算法选择一组最优超参数的问题。

模型超参数是模型外部的配置,其值无法从数据估计。作为一名数据科学家(或机器学习从业者),模型超参数对我们来说是未知的。

我们只能通过搜索超参数的离散空间,根据给定的默认值,经验法则或反复试验找到最佳值。

例如,一些超参数是训练神经网络的学习率,支持向量机(SVM)的C和sigma值,或k近邻(KNN)的k值。

超参数是至关重要的,因为它们控制机器学习模型的整体行为。最终目标是找到超参数的最佳组合,最小化预定义的损失函数以提供更好的结果。

如果不这样做,由于模型不能收敛且无法最小化损失函数,将导致次优结果。

这就像探索各种可能性并尝试找到最佳组合,以提供最佳结果。用于调整超参数的一些常用技术包括网格搜索,随机搜索,贝叶斯优化等。

特征工程比超参数调优更重要

现在我们已经了解了特征工程和超参数调优的重要性,让我们深入挖掘,看看为什么前者比后者更重要。

这并不是说超参数调优并不重要,而是当我们谈论改进模型的性能和最终结果时,特征工程是一个优先事项,特别是在现实生活中的场景。

首先,我们必须了解大多数机器学习库中超参数的默认值足以满足大多数用例,通常很难显著提高性能。在Kaggle中,超参数调优非常重要。在现实生活中,这并不重要。

其次,面对现实吧。超参数调优耗费时间且计算成本高。迭代不同的超参数组合需要花费大量时间才能实现微小的改进。更糟糕的是,如果是大量数据和复杂模型,每次迭代都需要大量资源。在商业领域中,时间就是金钱。如果搜索最佳超参数所需的工作量和时间不能匹配最终的ROI,那么如果你的模型足够好,可以在给定一组具有强大功能的数据下部署,根本不需要超参数调优。

最后,在现实生活中,由于给定的时间限制,要同时获得最优特征和超参数是极其困难的。因此,为了在更短的时间内实现改进的巨大成果,更智能的选择是首先进行特征工程以足够好地表示问题,使模型可以准确地学习和预测。只有在拥有强大的功能之后,如果时间允许或业务环境需要,我们才能考虑超参数调优。这就是为什么特征工程最重要,而超参数调优应该排在后面。

教材推荐

通过分享我的错误和学习经验,希望你已经理解了这两者的重要性,以及为什么在提高模型性能时,特征工程应该是首要任务。

如果你想了解有关特征工程以及如何将其应用于机器学习问题的更多信息,那么我向你推荐一本书“ Feature Engineering for Machine Learning”。

在典型的机器学习课程中,特征工程并不是作为一个正式的主题,而这本书旨在通过贯穿全书的几个特征工程技术,供你应用和练习。

本文分享自微信公众号 - ATYUN订阅号(atyun_com),作者:关注人工智能的

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2019-04-27

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 谷歌发布What-If工具:无需代码即可分析ML模型

    构建有效的ML系统意味着提出了很多问题。仅训练模型是不够的。相反,优秀的从业者像侦探一样,探索并更好地理解他们的模型:数据点的变化将如何影响我的模型的预测?它对...

    AiTechYun
  • 机器学习初学者常犯的六大错误总结

    在机器学习中,有很多方法来构建产品或解决方案,而且每种方法都有不同的假设。很多时候,如何识别哪些假设是合理的并不是件容易的事情。在最初的操作中,机器学习新手总会...

    AiTechYun
  • 谷歌教机器人通过与环境的交互来识别物体

    谷歌希望使AI系统至少在对象识别和感知方面,能像儿童那样思考。在论文“Grasp2Vec: Learning Object Representations fr...

    AiTechYun
  • 机器学习工程师心得:特征工程比超参数调优更重要

    事实上,特征工程比超参数调优更重要,这是作为一个教训和一个重要的提醒而言的,这将彻底改变在构建任何机器学习模型之前处理问题和数据的方式。

    统计学家
  • 动态 | 谷歌发布机器学习规则 关于机器学习工程的最佳实践(下)

    文章介绍了一种机器学习样式,类似于 Google C++ 样式指南和其他常用的实用编程指南。

    AI科技评论
  • 一战成名,用户贷款风险预测 参赛代码与数据集分享

    队伍名“一战成名” 最终线上排名第七。 ? 任务 融360与平台上的金融机构合作,提供了近7万贷款用户的基本身份信息、消费行为、银行还款等数据信息,需要参...

    机器学习AI算法工程
  • 深度学习系列 | 深度学习在搜狗无线搜索广告中的应用

    编者:本文来自搜狗资深研究员舒鹏在携程技术中心主办的深度学习Meetup中的主题演讲,介绍了深度学习在搜狗无线搜索广告中的应用及成果。戳上面的“携程技术中心”(...

    携程技术
  • 一个完整的机器学习项目在Python中的演练(二)

    磐创AI
  • java堆、栈、堆栈,常量池的区别,史上最全总结

    先说一下栈和堆栈,我们听老一辈的程序员一般都会说堆栈,其实栈就是堆栈的意思,连着叫只是由于历史的原因。博主04年学数据结构的时候,书上都是说的堆栈,FILO(先...

    beifengtz
  • java堆、栈、堆栈,常量池的区别,史上最全总结

    先说一下栈和堆栈,我们听老一辈的程序员一般都会说堆栈,其实栈就是堆栈的意思,连着叫只是由于历史的原因。博主04年学数据结构的时候,书上都是说的堆栈,FILO(先...

    互扯程序

扫码关注云+社区

领取腾讯云代金券