【fcon】聚焦金融行业在数智化的全面革新,一线的金融数智化实践干货
写点什么

如何将机器学习模型的正确率从 80%提高到 90%以上-金马国际

  • 2020-09-11
  • 本文字数:2319 字

    阅读完需:约 8 分钟

如何将机器学习模型的正确率从 80%提高到 90%以上

6 月 17 日,极客时间正式上线,10 周掌握企业级 agents 从设计、开发到部署全流程。

本文最初发表在 datascience 网站,由 infoq 中文站翻译并分享。

前 言

如果你已经完成了自己的一些数据科学项目,那么现在,你可能已经意识到,达到 80% 的正确率还不错,并不是很糟糕!但在现实中, 80% 的正确率是无法达满足要求的。事实上,在我工作过的大多数公司,都希望最低正确率至少要达到 90%(或他们正在关注的任何指标)。


因此,为了显著提高你的正确率,我将与你讨论你可以掌握哪五个技巧。我强烈建议你要通读这五种技巧,因为这些技巧有很多细节,而这些细节尚不为大多数初学者所知。


读完本文后,我想你应该会明白,在决定你的机器学习模型的性能方面起作用的变量,比你想象的要多得多。


话虽如此,本文介绍了你可以掌握的五个技巧,能够改善你的机器学习模型!

1. 缺失值处理

我见过的最大的错误之一,就是人们对缺失值的处理,这不一定是他们的错。网上很多资料都说,通常要通过均数填补法(mean imputation)来处理缺失值,用给定特征的均值来替换空值,但这通常并不是最好的方法。


例如,假设我们有一个现实年龄和健康评估分数的表格,并假设一个 80 岁的老人缺少健康评估分数。如果我们从 15 岁到 80 岁的年龄范围内去平均健康评估分数,那么这名 80 岁老人的健康评估分数似乎会比他实际应该的分数要高得多。


因此,你要问自己的第一个问题就是,为什么数据一开始就缺失了?


接下来,让我们考虑处理缺失数据的其他方法,除了平均值/中值填补法:


  • 特征预测建模法:回到我刚才提到的关于年龄和健康评估分数的例子,我们可以建立年龄和健康评估得分之间的关系进行建模,然后使用这个模型来找出给定年龄的预期健康评估分数。这可以通过多种技术来实现,包括回归分析、方差分析等等。

  • k 最近邻填补法:使用 k 最近邻填补法,缺失数据用另一个相似样本的值来填充,对于那些不知道的,就用距离函数(即欧几里得距离)来确定 k 最近邻的相似度。

  • 删除行:最后,你可以删除该行。通常不建议这样做,但当你有大量的数据要处理时,这样的做法是可以接受的。

2. 特征工程

第二个可以显著改进机器学习模型的技巧是通过特征工程。特征工程是将原始数据转换为特征的过程,这些特征更好地表示人们试图解决的潜在问题。不过,这个步骤并没有具体的方法,这就是为什么说数据科学既是一门科学,又是一门艺术。尽管如此,但还是有一些你可以考虑的事情,如下。


  • 将 datetime 变量转换为一周中的某一天、一年中的某一个月等等。

  • 为变量进行分桶操作。(如,对于高度变量,可以这样分桶:100~149 厘米、150~199 厘米、200~249 厘米等等)。

  • 组合多个特征和/或值来创建新特征。例如,由 kaggle 主持的泰坦尼克号生存挑战赛中正确率最高的模型之一,设计了一个名为 “is_women_or_child” 的新变量,如果这个人是妇女或儿童,则为真,否则为假。

3. 特征选择

可以大大提高模型正确率的第三个技巧是特征选择,即选择数据集中最相关/最有价值的特征。太多的特征会导致算法过拟合,而太少的特征又会导致算法的欠拟合。


有两种我喜欢使用的主要方法,你可以使用它们来帮助你进行特征选择。


  • 特征重要性法:一些算法,如随机森林或 xgboost,允许你确定哪些特征在预测目标变量的值时是最“重要”的。通过快速创建其中的一个模型并进行特征重要性的处理,你将了解到哪些变量比其他变量更为有用。

  • 降维法:作为最常用的降维分析技术之一,主成分分析(principal component analysis,pca)采用了大量的特征,并使用线性代数将它们约简到较少的特征。

4. 集成学习算法

改进机器学习模型的最简单技巧之一就是简单地选择一种更好的机器学习算法。如果你还不知道什么是集成学习(ensemble learning)算法,那么现在就是学习它的时候了!


集成学习是一种将多种学习算法结合使用的方法。这样做的目的是,与单独使用单个算法相比,它能允许你实现更高的预测性能。


流行的集成学习算法包括随机森林算法、xgboost 算法、梯度提升算法和 adaboost 算法等。为了解释集成学习算法如此强大的原因,我将举一个随机森林的例子:


随机森林包括使用原始数据经过自助法(bootstrap)处理的数据集创建多个决策树。然后,模型选择每个决策树的所有预测的模式(大多数)。这有什么意义呢?通过依赖“多数为胜”模型,它降低了单个树出错的风险。



例如,如果我们创建一个决策树,即第三个决策树,它将预测为 0。但是如果我们依赖所有 4 个决策树的模式,那么预测值将为 1。这就是集成学习的力量!

超参数调整

最后,有些技巧虽然不经常谈到,但仍然非常重要,那就是调整模型超参数。你必须清楚地理解你正在使用的机器学习模型,否则,你很难理解这个模型的超参数是什么。


来看一下随机森林的所有超参数:


class sklearn.ensemble.randomforestclassifier(n_estimators=100, *, criterion='gini', max_depth=none, min_samples_split=2, min_samples_leaf=1, min_weight_fraction_leaf=0.0, max_features='auto', max_leaf_nodes=none, min_impurity_decrease=0.0, min_impurity_split=none, bootstrap=true, oob_score=false, n_jobs=none, random_state=none, verbose=0, warm_start=false, class_weight=none, ccp_alpha=0.0, max_samples=none
复制代码


例如,了解min_impurity_decrease是什么可能是个好主意,这样,当你想让你的机器学习模型更宽容时,可以对这个参数进行调整!

结语

通过阅读本文,我相信,当涉及到将模型的正确率从 80% 提高到 90% 以上时,你现在应该会有更多的想法了。本文提到的这些信息,也会让你在未来的数据科学项目更加顺利。


作者简介:


terence s,学生,数据科学、数据分析及 mba 专业。


原文链接:




公众号推荐:

agi 概念引发热议。那么 agi 究竟是什么?技术架构来看又包括哪些?ai agent 如何助力人工智能走向 agi 时代?现阶段营销、金融、教育、零售、企服等行业场景下,agi应用程度如何?有哪些典型应用案例了吗?以上问题的回答尽在《中国agi市场发展研究报告 2024》,欢迎大家扫码关注「ai前线」公众号,回复「agi」领取。

2020-09-11 08:003523
infoq高级技术编辑

发布了 1112 篇内容, 共 500.6 次阅读, 收获喜欢 1970 次。

关注

评论 1 条评论

发布
很不错的总结!这才是干货
2020-09-11 08:09
回复
没有更多了
  • 为什么我的模型准确率都 90% 了,却不起作用?

    非平衡数据库中的模型性能评估

  • 阅读本文,你将学到如何识别这些现象的必要的知识,并获得如何克服这些现象的工具和补救措施,最终提高你的模型性能,这是每一个机器学习工程师的真正目标。

  • 为了解决这个问题,ibm的研究人员最近开发了一种称为freaai的方法,可以给出模型精度较低位置的可解释数据切片。

  • 我们想找一个趋势线把这个散点图的趋势画出来,那么趋势线我们怎么才可以找到呢?最常见的做法就是用我们今天要讲的回归算法。

    2021-08-27

  • 3类你必须掌握的特征工程

    2021-09-15

  • 在某些情况下,神经网络之类模型的表现可能会胜过更简单的模型,但很多情况下事情并不是这样的。

  • 这篇文章教你如何使用 lazy predict 运行超过 40 个机器学习模型进行回归项目。

  • automl 是一种术语,描述了在真实世界场景中执行机器学习的自动化端到端过程。

  • 多租户是云计算的一个重要特征,但还有很多人不清楚多租户到底是什么意思?今天我们就一起看看如何理解多租户的定义,以及多租户架构的有啥优势?

    2021-09-26

  • 为什么模型在训练集上得了满分1.0,而在验证集上的得分却如此低呢?

    2021-09-17

  • 不变风险最小化是一种激动人心的新型学习范式,可帮助预测模型的泛化水平超越训练数据的局限。

  • 今天这节课,我就给你讲几个衡量这些算法模型的重要指标:准确率、精确率、召回率和置信区间。

    2021-08-23

  • 本文将介绍机器学习模型可解释性的定义、性质和方法,并在后续的文章中,着重介绍不同解释模型的方法,力求在维持模型精度的同时,通过更好的解释模型方法,提高模型的可解释性,从而提高人们对模型和模型结果的信任和接受程度。

    2021-11-11

  • 机器学习是怎么建立模型的?

    2021-09-06

  • 我在kaggle中最重要的座右铭是永远不要复制别人的工作,我可以从他们的想法中得到启发,甚至使用他们的建模方法,但我从不提交其他人的工作作为我的金马国际的解决方案。

  • “不要把时间浪费在kaggle竞赛上。在处理真正的业务问题时它一点用都没有。”

  • 性能最好的机器学习模型未必是最好的金马国际的解决方案

  • 今天,我会带你从0打造一款预测用户复购意向的产品。

    2021-02-26

  • 本文用一个真实的例子解决了模型不能得到足够好的结果的问题。

  • 1、架构设计复杂度模型

    2021-04-18

发现更多内容
金马国际
网站地图