机器学习问答:概念漂移、改进结果和加速学习

我通过电子邮件收到很多关于机器学习的问题,我很乐意回答。

我能看到人们在做什么,并帮助做出改变。(您对机器学习有什么问题吗? 请联系我)。

在这篇文章中,我将重点介绍我最近收到的一些有趣问题,并总结我的回答。

machine learning q&a

机器学习问答
照片作者 Angelo Amboldi,部分权利保留

为什么我在垃圾邮件分类器上训练了很多旧邮件后,它的表现反而变差了?

这是一个很棒的问题,因为它突出了机器学习中的一个重要概念,称为概念漂移。

电子邮件的内容会随着时间的推移而变化。用户会改变与谁以及就哪些主题进行交流。电子邮件垃圾邮件发送者会发送不同的优惠,并且会主动改变电子邮件中的策略以避免垃圾邮件检测。

这些变化会影响建模。

关于哪些电子邮件是垃圾邮件,哪些不是垃圾邮件,最好的信息来源是最近收到的电子邮件。你回溯的时间越长,这些电子邮件对建模问题的用处就越小。

“什么是垃圾邮件,什么不是垃圾邮件”的想法已经被模型捕捉到,并且是基于你用来训练模型的。如果垃圾邮件的概念发生变化,那么你需要收集更多示例并更新你的模型。

这是问题的一个重要属性,并且会影响你关于建模问题的决策。例如,你可能希望选择一个易于增量更新而不是从头开始重建的模型。

如何在机器学习问题上获得更好的结果?

就像软件或艺术品一样,它永远不会完成。总有一天你会停止工作。

有很多事情你可以尝试,一些广泛的领域包括:

  • 处理数据:深入研究特征工程,以尝试暴露问题越来越多有用的结构给建模算法。看看你是否可以收集更多的数据来告知问题。研究 数据准备,例如缩放和其他数据转换,这些可能更好地暴露问题中的结构。
  • 尝试其他算法:是否有其他 算法可以进行抽样检查?总有更多的算法,而且经常有非常强大的算法可以让你去寻找和尝试。
  • 调整算法:你是否从尝试过的算法中获得了最大收益?使用网格搜索或随机搜索 调整算法参数
  • 组合预测:尝试组合多个表现良好但不同的算法的预测。使用 集成方法,如装袋、提升和混合。

你越是追求准确性,你的模型就越可能过拟合训练数据,限制其在未见过的数据上的适用性。

重新审视你的 问题定义,并设置最低准确率阈值。通常,“足够好”的模型比经过精细调整(且脆弱)的模型更具实际适用性。

请参阅这篇题为“机器学习中模型预测准确率与解释性”的文章。

如何才能更快地学习机器学习?

练习。大量练习。

  1. 阅读书籍,参加课程,学习并利用他人已经摸索出的东西。
  2. 精通 端到端地解决问题 的过程。
  3. 学习机器学习算法.
  4. 解决问题,重现论文和竞赛的结果。
  5. 设计并执行小型 自学项目,并建立一个成果作品集。

学习新东西是不够的。

要学得更快,你需要更努力地工作。你需要将你学到的东西付诸实践。你需要解决和重做问题。

有什么可以解决的问题?

UCI 机器学习库 中的数据集开始。它们很小,可以放入内存,并且被学者们用来演示算法属性的行为,所以它们是相对被充分理解的。

最流行的数据集列表是一个不错的起点。

转向竞赛数据集。取得足够好的结果,然后尝试重现竞赛获胜者的结果(大体上,通常信息不足)。

来自最新 KDDCupKaggle 竞赛的数据集会是一个不错的起点。

最后,开始提出你自己的问题(或承担别人的问题),定义你自己的问题,收集数据,并整体上端到端地解决问题。

更多信息

如何超越操作机器学习工具?

我建议初学者学习如何操作机器学习工具和库,并精通 端到端地解决机器学习问题

我这样做是因为这是应用机器学习的常规工作,并且在这个过程中有很多东西需要学习,从数据准备到算法,再到沟通结果。

深入研究涉及专业化。例如,你可以深入研究机器学习算法。你可以 研究它们创建列表描述它们,并 从零开始实现它们。事实上,你可以深入的程度是无限的,但你确实想选择一个你觉得有吸引力的领域。

我建议通过自学深入研究的一个通用框架是我的 小型项目方法。这就是你定义一个小型项目(5到10小时的工作量),执行它们并分享结果,然后重复。

我建议四类项目:调查一个工具,调查一个算法,调查一个问题,以及实现一个算法。如果你渴望超越操作机器学习工具或库,后三类项目可能会吸引你。

提问

如果您有机器学习问题,请 联系我

如果您对我的机器学习方法感兴趣,请查看我的 开始这里页面。它链接到许多有用的博文和资源。

暂无评论。

留下回复

Machine Learning Mastery 是 Guiding Tech Media 的一部分,Guiding Tech Media 是一家领先的数字媒体出版商,专注于帮助人们了解技术。访问我们的公司网站以了解更多关于我们的使命和团队的信息。