AI 模型的构建过程是怎样的?(上)

AI 模型构建的过程

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


模型设计

在模型设计环节,产品经理要考虑的问题就是,在当前业务下,这个模型该不该做,我们有没有能力做这个模型,目标变量应该怎么设置、数据源应该有哪些、数据样本如何获取,是随机抽取还是分层抽样。

在模型设计阶段最重要的就是定义模型目标变量,以及抽取数据样本。

不同的目标变量,决定了这个模型应用的场景,以及能达到的业务预期。

接着,我们再来说说数据样本的抽取。模型是根据我们选择的样本来进行训练的,所以样本的选取决定了模型的最终效果。换句话说,样本是用来做模型的基础。在选取样本的时候,你需要根据模型的目标、业务的实际场景来选择合适的样本。

特征工程

我们可以把整个模型的构建理解为:从样本数据中提取可以很好描述数据的特征,再利用它们建立出对未知数据有优秀预测能力的模型。

在模型的构建过程中,特征工程是一个非常重要的部分。特征挑选得好,不仅可以直接提高模型的性能,还会降低模型的实现复杂度。

无论特征和数据过多或过少,都会影响模型的拟合效果,出现过拟合或欠拟合的情况。

当选择了优质的特征之后,即使你的模型参数不是最优的,也能得到不错的模型性能,你也就不需要花费大量时间去寻找最优参数了,从而降低了模型实现的复杂度。

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

算法工程师们花费在特征工程建立上面的时间,基本上占整个模型构建的 60%。

那什么是特征工程?对一个模型来说,因为它的输入一定是数量化的信息,也就是用向量、矩阵或者张量的形式表示的信息。所以,当我们想要利用一些字符串或者其他类型的数据时,我们也一定要把它们先转换成数量化的信息。像这种把物体表示成一个向量或矩阵的过程,就叫做特征工程(Feature Engineering)。

那什么是建立特征工程呢?比较常见的,我们可以通过一个人的年龄、学历、工资、信用卡个数等等一系列特征,来表示这个人的信用状况,这就是建立了这个人信用状况的特征工程。同时,我们可以通过这些特征来判断这个人的信用好坏。

更具体点来说,建立特征工程的流程是,先做数据清洗,再做特征提取,之后是特征筛选,最后是生成训练 / 测试集。


1. 数据清洗


在建立特征工程的开始阶段,算法工程师为了更好地理解数据,通常会通过数据可视化(Data Visualization)的方式直观地查看到数据的特性,比如数据的分布是否满足线性的?数据中是否包含异常值?特征是否符合高斯分布等等。然后,才会对数据进行处理,也就是数据清洗,来解决这些数据可能存在的数据缺失、有异常值、数据不均衡、量纲不一致等问题。

数据缺失在数据清洗阶段是最常见的问题。在遇到数据缺失问题时,算法工程师可以通过删除缺失值或者补充缺失值的手段来解决它。

至于数值异常的问题,可以选择的方法就是对数据修正或者直接丢弃,当然如果你的目标就是发现异常情况,那就需要保留异常值并且标注。

对于数据不均衡的问题,因为数据偏差可能导致后面训练的模型过拟合或者欠拟合,所以处理数据偏差问题也是数据清洗阶段需要考虑的。

针对量纲不一致的问题,也就是同一种数据的单位不同,比如金额这个数据,有的是以万元为单位,有的是以元为单位,我们一般是通过归一化让它们的数据单位统一。


2. 特征提取


一般提取出的特征会有 4类常见的形式,分别是数值型特征数据、标签或者描述类数据、非结构化数据、网络关系型数据。

数值型特征数据

  • 数据一般包含大量的数值特征。
  • 这类特征可以直接从数仓中获取,操作起来非常简单
  • 一系列聚合函数也可以去描述特征,比如总次数、平均次数,当前次数比上过去的平均次数等等。

标签或描述类数据

  • 这类数据的特点是包含的类别相关性比较低,并且不具备大小关系。
  • 这类特征的提取方法也非常简单,一般就是将这三个类别转化为特征,让每个特征值用0、1 来表示,如有房 [0, 1]、有车 [0, 1] 等等。

非结构化数据(处理文本特征)

  • 非结构化数据一般存在于 UGC(User Generated Content,用户生成内容)内容数据中。比如我们的用户流失预测模型用到了用户评论内容,而用户评论都是属于非结构化的文本类数据。
  • 提取非结构化特征的一般做法就是,对文本数据做清洗和挖掘,挖掘出在一定程度上反映用户属性的特征。

网络关系型数据

  • 前三类数据描述的都是个人,而网络关系型数据描述的是这个人和周围人的关系。
  • 提取这类特征其实就是,根据复杂网络的关系去挖掘任意两人关系之间的强弱,像是家庭关系、同学关系、好友关系等等。

3. 特征选择


特征选择简单来说,就是排除掉不重要的特征,留下重要特征。

算法工程师会对希望入模的特征设置对应的覆盖度、IV 等指标,这是特征选择的第一步。

然后,再依据这些指标和按照经验定下来的阈值对特征进行筛选。

最后,还要看特征的稳定性,将不稳定的特征去掉。


4. 训练 / 测试集


这一步也是模型正式开始训练前需要做的,简单来说,就是算法同学需要把数据分成训练集和测试集,他们会使用训练集来进行模型训练,会使用测试集验证模型效果。

未完待续……


本文转自: 小牛机器人 - RobotBull,转载此文目的在于传递更多信息,版权归原作者所有。如不支持转载,请联系小编demi@eetrend.com删除。

最新文章