一套基本的机器学习分析流程由以下几个步骤组成。
值得注意的是,虽然看起来这一套流程是从第一步到最后一步的顺序关系,但是在实际应用场景中,经常会出现在模型评估之后,重新返回调整参数、重新做模型训练的情况。这种建模-检验-再建模的过程可能重复多次,直到模型评估的结果符合预期。同样,模型部署之后产生的新数据也可以回到第一步,重新做训练。
1. 数据准备
数据准备包括2个步骤:数据接入、和数据清洗。
1.1 数据接入
Pandora MLTK可以利用已经保存在Pandora的数据做进一步的分析,包括仓库(repo)和数据集(dataset)。Pandora接收数据的方法可参考Pandora机器数据分析平台-数据接收。
1.2 数据清洗
这是在建模前期准备工作中非常重要的一步,因为接入的数据不一定能满足之后建模工作的要求,数据质量也会直接影响之后分析的效果。用户可以通过Pandora和Pandora MLTK提供的数据详情、可视化图表等方法发现数据中存在问题的部分。Pandora用户可以直接通过SPL、或者数据集的界面交互操作,发现并解决这些问题。SPL语法可以参考Pandora SPL参考手册,数据集使用方法可以参考Pandora 数据集。
2. 模型构建
模型构建包括4个步骤:特征加工、特征筛选、模型训练和模型评估。
2.1 特征加工
特征加工是将现有数据的字段做进一步的分析、聚合、提取等行为,为下一步工作做准备。当原始的、独立的特征没有很好的解释效果,我们可以考虑加工原有特征,比如说将原始数据做标准化、归一化处理,将原始数据做log转换等等来帮助一起解释模型。
Pandora用户可以直接通过SPL实现特征加工,并且可以把加工方式保存成模型在其他数据上重复使用。
2.2 特征筛选
特征筛选包含两种含义,一种是特征选择:就是从多个特征中,挑选出一些对结果预测最有用的特征,因为原始的特征中可能会有冗余和噪声;第二种是特征降维:就是将原本特征计算组合构成新特征。我们可以以此筛选出对预测变量最具有解释意义或者影响力最大的特征。
2.3. 模型训练
在数据准备完成之后,我们可以依靠该数据来训练模型了。模型训练包括几个部分的工作:
- 把数据分成训练集和测试集。我们通常建议在训练集上训练模型,在测试集上测试模型效果,不然模型可能会过拟合。
- 选择算法。根据训练目的和训练数据不同,用户有不同的算法可以选择。不同场景下支持的算法可参考ML算法和支持的SPL算子
- 选择算法参数。根据训练目的和选择算法不同,用户选择不同的参数组合。具体的参数组合可参考fit使用方法详述
2.4 模型评估
在训练集上完成模型训练之后,我们可以在测试集上用合适的score方法评估模型表现,具体场景和score方法可参考score使用方法详述。如果模型表现符合预期,那么我们可以保存模型,做下一步的部署和监控;如果不符合预期,那么我们可以回到上一步,通过更改算法、参数组合、特征变量等方法做模型优化,直到模型表现符合预期。
3. 部署应用
在模型评估完成之后,我们可以将模型部署到新数据,并且保存成定时的导出任务,实现新数据的监控、预测、报警等等。同时,我们也可以做模型自身的监控,用真实数据来验证模型表现,如果模型表现低于阀值,则重新训练模型。具体导出任务的设置可参考搜索结果导出。部署的结果我们可以再接入,做增量学习或者为其他训练目的服务。
4. 数据展现
利用Pandora提供的可视化BI功能,我们可以将搜索数据结果用合适的可视化图表做展现,甚至做成仪表盘、APP或者大屏实现及时监控和告警反馈。具体可视化图表和使用方法可参考Pandora可视化手册