6

一文读懂:机器学习模型构建全流程

 9 months ago
source link: https://www.woshipm.com/ai/5962437.html
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
neoserver,ios ssh client

本文是系列文章的第二篇,会具体产出模型构建环节的具体内容。阅读本文前,建议先阅读上篇文章,可以知道模型构建环节处于AI产品构建的哪个位置。

c6e6e082-d9e9-11ed-a6e8-00163e0b5ff3.jpg

上文以薅羊毛项目为例,简单介绍了AI产品构建的全流程,其中模型构建、模型评估等重点环节只是一笔带过。今天我们来了解一下模型构建环节的具体内容。

模型构建,其实就是从繁杂的数据中提取那些最能解释数据本质的特征,再利用算法建立出对未知数据有准确预测能力模型的过程。

模型构建主要包括5个阶段,分别为算法选择、特征工程、模型训练、模型验证和模型融合。

一、算法选择

以上文薅羊毛项目为例,基于其需求定义,模型需要计算出用户是薅羊毛用户的概率,并根据概率高低分为正常、疑似、高危三类,最终技术同学决定采用逻辑回归算法来实现该需求。

逻辑回归算法具有计算速度快、可解释性强的优点,适用于解决需求中的多分类问题,而且还可以对用户“为什么封号”的质疑,有较强的解释性。

目前大家对算法有个概念就可以,后续篇章中会对常见的算法进行较详细的介绍。

二、特征工程

确定算法之后,我们就可以进入特征工程阶段了。

特征工程是模型构建过程中最重要的部分,如果我们可以挑选到足够优质的特征,不仅可以提升模型性能,还能降低模型的复杂度,大幅简化构建过程。

数据和特征决定了模型的上限,而模型和算法只是逼近这个上限而已。

所有模型的输入都是数量化的信息,所以我们需要通过某种方式,把各种类型的数据转化成数量化的信息,这个过程就是特征工程。

以薅羊毛项目为例,我们可以通过用户是否在夜间活动、操作频率、历史订单、完成活动速度、同一台终端是否登录多个账号等一系列特征,来表达是薅羊毛用户的可能性,这就是建立了薅羊毛用户的特征工程。我们可以通过这些特征来判断用户的可疑程度。

特征过程包括以下四个流程:

  1. 数据清洗:数据预处理的重要环节,主要是对数据进行重新审查和校验,检查数据一致性、处理无效值和缺失值等。
  2. 特征提取:从原始数据中提取有用的特征,将其转化为一组更具代表性和可解释性的特征。特征提取的目的是减少原始数据的维度,提高数据的表达能力,帮助算法进行更好的完成任务。
  3. 特征选择:筛选出对分类或回归有重要贡献的特征,从而降低数据集复杂度,提高模型的泛化能力。
  4. 生成训练集和测试集:把整理过的数据分为训练集和测试集,为模型训练做最后的准备。

构造机器学习模型的目的,是希望从原始数据中梳理出问题的结构,学习到问题的本质,那些优质的特征其实就是对问题本质的最好诠释,而如何找到优质特征自然也就成为了模型构建的核心工作。

特征工程的内容很多,也非常重要,建议自己主动去查一下资料,详细了解一下数据清洗、数据提取、数据选择的各种方法,对该环节了解越深入,和算法同学的沟通越顺畅。

三、模型训练

模型训练是通过不断训练、验证和调优,让模型达到最优的过程。

这里的“最优”,指的是模型拟合能力和泛化能力的平衡点。

  • 拟合能力:模型在已知数据上(训练集)表现的好坏
  • 泛化能力:模型在未知数据上(测试集)表现的好

如果想让模型有足够好的拟合能力,就需要构建一个复杂的模型对训练集进行训练,但是模型越复杂就会越依赖训练集的数据,就越可能出现训练集的表现很好,但在测试集上表现差的情况,泛化能力比较差,这种情况叫做“过拟合”。

如果想让提高模型的泛化能力,就要降低模型复杂度,减少对训练集的依赖,但如果过度降低复杂度,又可能导致“欠拟合”的情况。

  • 过拟合:模型把数据学习的太彻底,甚至把噪声数据的特征也学习到了,就导致不能很好的识别未知数据,模型泛化能力下降。训练集表现很好,但是测试集很差。读的是“死书”,并没有真正掌握书里的精髓,自然就无法很好的应用了。产生过拟合的原因一般有:特征过多,模型复杂度过高,样本数据无法代表预定的分类,样本噪音干扰过大等。
  • 欠拟合:模型不能很好的捕捉数据特征,不能很好的拟合数据。在训练集的表现就很差,需要继续努力“学习”。产生欠拟合的原因一般有:模型复杂度过低、特征量过少等。

算法工程师就这样不断的调整模型参数、训练,再用交叉验证的方式,逐渐找到拟合能力和泛化能力的平衡点,这个平衡点就是我们训练模型的目标。

  • 交叉验证:一种评估机器学习模型性能的有效方法,可以用于选择最佳模型参数、模型选择以及避免过拟合等问题。包括简单交叉验证、留出交叉验证、自助交叉验证等方法。

四、模型验证

经过复杂的模型训练,我们终于得到了一个所谓的“最优解”,但是怎么证明这个最优解就是真正的最优解呢?我们需要模型验证阶段来确认这个“最优解”的真假。

模型验证一般通过模型的性能指标稳定性指标来评估。

模型性能,就是模型预测的准确性。

  • 分类模型性能评估:分类模型的预测结果是具体的分类,一般使用召回率、F1、KS、AUC等评估指标,来判断分类模型的性能。
  • 回归模型性能评估:回归模型的预测结果是连续值,一般使用方差和MSE等评估指标,来判断回归模型的性能。

模型稳定性,指的是模型性能可以持续多久,一般使用PSI指标来评估模型的稳定性。

产品经理需要对模型验证环节格外关注,需要深入理解评估指标、计算逻辑,并能根据指标的数据判断模型效果是否达标。

这里只简单描述了模型验证的概念和意义,后面会详细讲解模型评估的核心指标。

五、模型融合

为了提升模型的准确率和稳定性,有时会同时构建多个模型,再把这些模型集成在一起,确保模型有更优的整体表现。

比如薅羊毛项目这种分类模型,可以用最简单的投票方法来融合,票数最多的类别就是最终的结果。

我们只需要知道一些常用的模型融合方法即可,比如加权平均法、Bagging等,感兴趣的话可以自己查一下。

本文粗略介绍了模型构建的算法选择、特征工程、模型训练、模型验证和模型融合等5个环节,其中产品经理需要重点关注特征过程和模型验证环节,建议继续查阅资料,加强理解。

下篇文章,我会详细介绍模型评估环节的详细内容,敬请期待。

本文由 @AI小当家 原创发布于人人都是产品经理,未经许可,禁止转载

题图来自 Unsplash,基于 CC0 协议

该文观点仅代表作者本人,人人都是产品经理平台仅提供信息存储空间服务。


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK