机器学习性能改善备忘单:32个帮你做出更好预测模型的技巧和窍门

简介:

机器学习最有价值(实际应用最广)的部分是预测性建模。也就是在历史数据上进行训练,在新数据上做出预测。

而预测性建模的首要问题是:

如何才能得到更好的结果?

这个备忘单基于本人多年的实践,以及我对顶级机器学习专家和大赛优胜者的研究。

有了这份指南,你不但不会再掉进坑里,而且会提升性能,甚至在你自己的一些预测难题中取得世界领先水平的结果。

让我们一起来看看吧!

概述

本备忘单的目的是为你提供一些提升机器学习性能的想法。要获得突破,你所需要的可能就是其中的一个。找到你要的那个,然后回来,再找下一个再提升。

我把这份清单分为4个子主题:

1、基于数据改善性能

2、借助算法改善性能

3、用算法调参改善性能

4、借助模型融合改善性能

清单越往下,你获得的增益可能越小。比如,对问题场景重新设立框架或者更多的数据通常比对最好的算法进行调参得到收益要多。

不总是这样,但通常如此。

1.基于数据改善性能

改变你的训练集数据以及问题定义方式,你能够得到很大提升,也许是最大的提升。

策略:从新的、不同的角度透视你的数据,以便将潜藏的问题结构充分暴露给算法。

数据策略

• 获得更多的数据:你能够拿到更多或者更高质量的数据么?对现代非线性机器学习模型如深度学习而言,数据越多,改进越多。

• 创造更多数据:如果你不能拿到更多数据,那么,你能创造出新的数据么?也许你可以填充或者重新排列现有数据,或者利用概率模型来产生新的数据。

• 清洁你的数据。你能否改善数据中的信号?也许可以纠正或删除一些缺失或错误的观测值,或者在合理范围外的离群点,从而提升数据质量。

• 数据重新取样。你能否对数据重新取样,以改变其大小或者分布?也许你可以用一个小得多的数据来实验,以提高实验的速度;或对某个特殊类型的观察值进行过采样/欠采样以使得它们更好地代表整个数据集。

• 重新界定问题:你能否改变你正试图解决的问题类型?重构数据,如回归,二项或多项分类,时间序列,异常检测,评分,推荐等问题类型。

• 重新缩放数据。你能否对数值型变量进行缩放处理?输入数据的归一化和标准化处理可以提升使用加权或距离度量的算法性能。

• 转化数据。你能否改变数据的分布形态?使得数据更服从高斯分布,或进行指数变换可能会暴露出数据更多的特征供算法学习。

• 数据投影(映射):你能否将数据投影到一个更低维的空间?你可以用无监督的聚类或投影方法,创造一个新的压缩数据集代表。

• 特征选择。所有的输入变量是否同等重要?使用特征选择和衡量特征重要性的方法,可以创造出数据的新视角,供模型算法探索。

• 特征工程。 你能够创造或者增加新的特征?也许有的属性可以分解为多个新的值(比如类别,日期或字符串)或者属性可以聚集起来代表一个事件(如一个计数,二进制标志或统计信息)

上面这些工作的期待结果是:你应该得到数据集的一批新视角和新版本。

下一步:你可以用预测性模型算法评估它们每一个的价值。

2.借助算法改善性能

机器学习无外乎算法。

调整的策略:找出那些性能高于基线水平,比平均水平要好的算法和数据呈现方式。对结果保持怀疑态度,设计实验,使得它很难愚弄你。

算法策略

• 重采样方法。要用什么样的重采样方法来估计其在新数据上的能力?使用一种能够最好地利用现有数据的方法和参数设置。K折交叉验证法,利用其中的一折作为验证集可能是最佳操作。

• 评价指标。用什么样的指标来评价预测能力?选择能够最好地体现问题和专业需求的指标。不要任何问题一上来就看分类准确率。

• 基线性能。比较算法时,什么是基线性能?通过随机算法或零规则算法(预测均值或众数)来建立一个基线,并以此对所有算法进行排序。

• 抽检线性算法。什么样的线性算法能有好结果?线性方法通常更容易产生偏倚,也易于理解,能快速训练。如果能达到好效果,则更容易被选中。评估多个不同的线性方法。

• 抽检非线性算法。哪些非线性算法能有好结果?非线性算法通常要求更多数据,有更高的复杂性,但是能获得更好的性能。评估多个不同的非线性方法。

• 从文献中偷师学艺。哪些文献报导的方法能很好地解决你的问题?也许你能从算法类型或传统方法的延伸中获取解决自己问题的灵感。

• 标准参数设置。评估算法时,什么是标准的参数设置?每一个算法都有机会解决你的问题,这不是说在现有基础上死磕调参,而是说,每一种算法都需要把参数调好,才能在算法“大赛”中有胜出的机会。

上面这些工作的期待结果是:你应该会得到性能良好的候选算法和数据呈现候选方法清单(不太长的有限个方法)。

下一步:通过算法调参改善性能

3.用算法调参改善性能

算法调参可能是你花时间最多的地方。它可能非常耗时间,从算法抽检中很快能挖掘出一两个性能不错的算法,而把这一两个算法的潜力充分挖掘出来可能需要好几天,几周甚至几个月的时间。

调整的策略:充分挖掘性能良好的算法的潜力。

调参策略

• 诊断。对算法要做哪些诊断和回顾?也许可以回顾一下学习曲线,了解目前模型的状态是过拟合还是欠拟合,然后纠正它。不同的算法可能提供不同的可视化结果和诊断。检视算法得到正确预测结果和错误预测结果的样本。

• 试试直觉。你的直觉是什么?如果你琢磨参数的时间足够长,而反馈回路又很短,那么你会得到怎么调参的直觉。试一试,看看你遇到更大的难题时能不能再得到新的参数设置灵感。

• 学习文献。文献中用到了哪些参数,范围是多少?评估标准参数性能是调参的良好开端。

• 随机搜索。哪些参数可以用随机搜索?也许你可使用算法超参数的随机搜索,来发现那些你永远也想不到的参数设置。

• 网格搜索。哪些参数可以使用网格搜索?也许有一些标准超参数网格值,你可以拿来赋值,从而发现好的参数设置,重复这一过程,不断精调网格。

• 最优化。那些参数可以优化?也许有一些参数,如结构或者学习率,可以用直接搜索程序(如模式搜索)或随机优化(如遗传算法)来调整。

• 交替实施。算法有哪些其他的实施?也许其中的一个交替实施方法可以在同样的数据上得到更好的结果。每个算法都有无数的微决定由算法的使用者做出,其中的一些可能会影响到问题的解决。

• 算法延伸。哪些是常见的算法延伸?也许你可以通过评估常见的或标准的算法延伸而提高性能。这可能需要一些实施工作。

• 算法定制。对你的个案而言,需要做哪些算法定制?也许你可以为你的数据修饰算法,从损失函数,内部优化方法到算法的具体决定。

• 联系专家。对你的个案,专家们有什么算法推荐?给一个或多个算法领域的学术界专家写封简单的邮件,概述你的预测问题,以及你已经做出的尝试。这可能会让你获悉前沿工作,或者学术界不为你所知的新想法。

上面这些工作的期待结果是:你应该可以得到一个很短的清单,上面是经过精调的算法。也许甚至只剩下一个。

下一步:到这一步,对剩下的一个或多个模型进行最后的收尾,做出预测或者投放到产品中。更进一步的性能提升可以通过多个模型的融合来达到。

4. 借助模型融合改善性能

你可以组合多个模型的预测。在算法调参之后,这是下一个大的改善空间。实际上,组合多个“够用”的模型,而不是多个精调(同时也非常脆弱,可能严重overfitting)的模型通常可以达到很好的性能提升。

策略:组合多个性能良好的模型预测结果。

组装策略

• 混合模型预测结果。 你是否可以直接组合多个模型的预测结果?也许你可以使用同样的或不同的算法来搭建多个模型。对各自的预测结果取均值,或者众数。

• 混合数据呈现方式。你是否可以组合用不同数据呈现方法得到的模型预测结果?也许你使用了不同的问题投射方法,来训练性能良好的的算法,那么这些预测结果可以组合起来。

• 混合数据样本。你是否可以组合不同数据角度(特征)训练的模型?也许你可以创造训练样本的多个子样本来训练一个性能良好的算法,然后把结果组合起来。这叫做自助聚集(bootstrap aggregation)或者bagging,当各个模型的预测都很高明而方法各异(不相关)时,效果最好。

• 纠正预测。你是否可以纠正性能良好模型的预测?也许你可以明确地纠正预测结果,或者通过像boosting这样的方法来学习如何纠正预测错误。

• 学习组合。你能否使用新的模型,学习如何将多个性能良好的预测结果以最佳方式组合起来?这叫做堆栈(stacked generalization or stacking),当各子模型都很高明而方法各异时,通常能产生不错的结果,聚集模型就是各预测结果的简单加权线性模型。这个过程可以在多个层面上重复进行。

上面这些工作的期待结果是:你应该可以得到一个或多个性能良好的模型的组装结果,比任何单一模型的结果都好。

下一步:可以把一个或多个组装最后定下来,进行预测,投入产品中。

结语

本备忘单密集打包了各种改善性能的想法。如果你觉得这里提到的要点太多,你不必样样都做。提升性能,你只需要一个好的想法。你可以依照下序的建议试试:

1、选择一个组

• 数据

• 算法

• 调参

• 组装

2、从组中选择一个方法

3、从选择的方法中挑一个去试

4、比较结果,如果有改进则留下

5、重复上述过程


本文作者:Jason Brownlee

来源:51CTO

相关文章
|
2月前
|
机器学习/深度学习 存储 设计模式
特征时序化建模:基于特征缓慢变化维度历史追踪的机器学习模型性能优化方法
本文探讨了数据基础设施设计中常见的一个问题:数据仓库或数据湖仓中的表格缺乏构建高性能机器学习模型所需的历史记录,导致模型性能受限。为解决这一问题,文章介绍了缓慢变化维度(SCD)技术,特别是Type II类型的应用。通过SCD,可以有效追踪维度表的历史变更,确保模型训练数据包含完整的时序信息,从而提升预测准确性。文章还从数据工程师、数据科学家和产品经理的不同视角提供了实施建议,强调历史数据追踪对提升模型性能和业务洞察的重要性,并建议采用渐进式策略逐步引入SCD设计模式。
149 8
特征时序化建模:基于特征缓慢变化维度历史追踪的机器学习模型性能优化方法
|
1月前
|
机器学习/深度学习 人工智能 自然语言处理
PAI Model Gallery 支持云上一键部署 DeepSeek-V3、DeepSeek-R1 系列模型
DeepSeek 系列模型以其卓越性能在全球范围内备受瞩目,多次评测中表现优异,性能接近甚至超越国际顶尖闭源模型(如OpenAI的GPT-4、Claude-3.5-Sonnet等)。企业用户和开发者可使用 PAI 平台一键部署 DeepSeek 系列模型,实现 DeepSeek 系列模型与现有业务的高效融合。
|
7天前
|
机器学习/深度学习 人工智能 自然语言处理
云上一键部署通义千问 QwQ-32B 模型,阿里云 PAI 最佳实践
3月6日阿里云发布并开源了全新推理模型通义千问 QwQ-32B,在一系列权威基准测试中,千问QwQ-32B模型表现异常出色,几乎完全超越了OpenAI-o1-mini,性能比肩Deepseek-R1,且部署成本大幅降低。并集成了与智能体 Agent 相关的能力,够在使用工具的同时进行批判性思考,并根据环境反馈调整推理过程。阿里云人工智能平台 PAI-Model Gallery 现已经支持一键部署 QwQ-32B,本实践带您部署体验专属 QwQ-32B模型服务。
|
1天前
|
机器学习/深度学习 人工智能 边缘计算
DistilQwen2.5蒸馏小模型在PAI-ModelGallery的训练、评测、压缩及部署实践
DistilQwen2.5 是阿里云人工智能平台 PAI 推出的全新蒸馏大语言模型系列。通过黑盒化和白盒化蒸馏结合的自研蒸馏链路,DistilQwen2.5各个尺寸的模型在多个基准测试数据集上比原始 Qwen2.5 模型有明显效果提升。这一系列模型在移动设备、边缘计算等资源受限的环境中具有更高的性能,在较小参数规模下,显著降低了所需的计算资源和推理时长。阿里云的人工智能平台 PAI,作为一站式的机器学习和深度学习平台,对 DistilQwen2.5 模型系列提供了全面的技术支持。本文详细介绍在 PAI 平台使用 DistilQwen2.5 蒸馏小模型的全链路最佳实践。
|
6天前
|
机器学习/深度学习 传感器 数据采集
基于机器学习的数据分析:PLC采集的生产数据预测设备故障模型
本文介绍如何利用Python和Scikit-learn构建基于PLC数据的设备故障预测模型。通过实时采集温度、振动、电流等参数,进行数据预处理和特征提取,选择合适的机器学习模型(如随机森林、XGBoost),并优化模型性能。文章还分享了边缘计算部署方案及常见问题排查,强调模型预测应结合定期维护,确保系统稳定运行。
56 0
|
2月前
|
机器学习/深度学习 人工智能 自然语言处理
云上一键部署 DeepSeek-V3 模型,阿里云 PAI-Model Gallery 最佳实践
本文介绍了如何在阿里云 PAI 平台上一键部署 DeepSeek-V3 模型,通过这一过程,用户能够轻松地利用 DeepSeek-V3 模型进行实时交互和 API 推理,从而加速 AI 应用的开发和部署。
|
2月前
|
机器学习/深度学习 人工智能 算法
机器学习算法的优化与改进:提升模型性能的策略与方法
机器学习算法的优化与改进:提升模型性能的策略与方法
433 13
机器学习算法的优化与改进:提升模型性能的策略与方法
|
2月前
|
机器学习/深度学习 安全 PyTorch
FastAPI + ONNX 部署机器学习模型最佳实践
本文介绍了如何结合FastAPI和ONNX实现机器学习模型的高效部署。面对模型兼容性、性能瓶颈、服务稳定性和安全性等挑战,FastAPI与ONNX提供了高性能、易于开发维护、跨框架支持和活跃社区的优势。通过将模型转换为ONNX格式、构建FastAPI应用、进行性能优化及考虑安全性,可以简化部署流程,提升推理性能,确保服务的可靠性与安全性。最后,以手写数字识别模型为例,展示了完整的部署过程,帮助读者更好地理解和应用这些技术。
131 20
|
23天前
|
人工智能 自然语言处理 搜索推荐
全网首发 | PAI Model Gallery一键部署阶跃星辰Step-Video-T2V、Step-Audio-Chat模型
Step-Video-T2V 是一个最先进的 (SoTA) 文本转视频预训练模型,具有 300 亿个参数,能够生成高达 204 帧的视频;Step-Audio 则是行业内首个产品级的开源语音交互模型,通过结合 130B 参数的大语言模型,语音识别模型与语音合成模型,实现了端到端的文本、语音对话生成,能和用户自然地进行高质量对话。PAI Model Gallery 已支持阶跃星辰最新发布的 Step-Video-T2V 文生视频模型与 Step-Audio-Chat 大语言模型的一键部署,本文将详细介绍具体操作步骤。
|
24天前
|
机器学习/深度学习 数据挖掘 定位技术
多元线性回归:机器学习中的经典模型探讨
多元线性回归是统计学和机器学习中广泛应用的回归分析方法,通过分析多个自变量与因变量之间的关系,帮助理解和预测数据行为。本文深入探讨其理论背景、数学原理、模型构建及实际应用,涵盖房价预测、销售预测和医疗研究等领域。文章还讨论了多重共线性、过拟合等挑战,并展望了未来发展方向,如模型压缩与高效推理、跨模态学习和自监督学习。通过理解这些内容,读者可以更好地运用多元线性回归解决实际问题。

热门文章

最新文章