我的工程

在”LittleBoy“节点下的第二个菜单就是”我的工程“,”工程“指的是训练AI模型所需要的一系列配置。点击”新建AI工程“按钮,会弹出一个窗口,在这里可以命名工程名称,默认情况下系统会根据当前时间给出一个名称,建议用户根据自己的数据集重新命名一个更有意义的名字,系统后续会依据这个名称来命名用这个工程所训练出来的AI模型(例如,工程名称为“abc”,则其生产的模型会被命名为“模型_abc”);另外在这个窗口可以选择工程类别,目前支持分类,回归,聚类三种类别,这里需要用户根据数据及业务的不同来选择不同的类别。

这里我们首先以”分类“工程为例建立工程(回归工程与分类工程一致),我们会看到需要配置5个步骤来训练AI模型:

  • 训练数据

    第一步选择事先已经导入到DB集群中的数据表。系统以树形结构依次列出:集群、数据库、schema、数据表名称。选择好训练数据以后,就可以点击”下一步“。

    如果您暂时没有训练数据,可以用我们提供的测试数据集来熟悉训练流程,点击下载测试数据集: http://oushu.io/assets/download/dataset.zip

  • 特征及标签

第二步需要配置的是要以哪些数据列作为”特征“及哪个数据列作为”标签“。

页面里上半部分展示的是训练数据的可视化统计:默认展示出的是数据集第一列的数据分布统计,当训练数据大于1000条时,为了页面加载速度不受影响,系统默认统计前1000条的数据分布。如需查看此列全部数据统计,点击”(共1000条数据结果)“后面的小闪电图标。

页面的右上角为饼状图和柱状图的切换按钮,方面以两种试图来观察数据,如上方两图所示。

页面左下方列出了训练数据的所有列,在这里我们需要选择哪些列作为”特征“,再选择一个列作为”标签“。系统默认会选择除最后一列的所有列作为”特征“,而最后一列作为”标签“,可依据实际情况自行更改。

页面右下方展示出训练数据的前1000条,方便用户观察此列数据的形态。

点击每一行列名,会触发页面上方针对所选列的可视化统计,及页面右下方的数据预览。

向下查看此页面,在页面下方,还有一个高级功能:开启组合列特征。打开之后会出现一个空列表及右上方的+号按钮。

那么什么是组合列特征?

所谓组合列特征,就是将几个列组合到一块,共同来作为一个新的”feature“参与训练。有一些特殊的场景我们会利用到这个功能。

例如:我们的训练数据有两个列,分别是一个地点的”经度”和“纬度“,这两个列的数据都是一些float类型的数字。显然这两个列的数值在地图上即可表示此条数据的一个地理位置。假设训练集的每条数据是一个房子的描述,”标签“列为此房子的房价。我们从业务上认为,房价会受一个个不同的地区区域所影响,而不单单是一个点。这样为了模型有更好的推断效果,我们希望在”特征“里 构建出一个个“地块”, 即人为的将经度及纬度分成一个个小段,然后这些小段构成一个个小方块。如果将一个连续的数值分布切成若干段,我们就需要配置这些”切“点。所以配置一个组合列特征的工作,就是选择需要组合的列,如果某个列是数字类型的,就需要我们配置将数字切成段的”切“点。而”构成一个个小方块“的具体工作是系统自动完成的。

点击+号按钮会弹出配置窗口,我们刚刚说的的”切“点即下图中的”边界值“,鼠标滑过其后方的?图标,会显示出说明。

下图的事例中,我们将三个列组合到一起,并给每个列设置好一些边界值,以便这些列进行自动组合。

下图所示的是我们配置了两个组合列特征,可以随时点击后边的编辑或删除按钮来更改配置。

  1. 评估数据

    第三步需要选择”评估数据“,”评估数据“的结构与”训练数据“要一模一样才可以,否则系统会提示选择错误。建议用户在训练模型前,将训练数据的5~10%单独存到一个表作为评估数据。

    系统会利用所提供的评估数据,对一个模型进行指标评估。

    • 当此模型为“分类”算法时,系统会计算出它的Acurracy,AUC,混淆矩阵(Confusion Matrix)等行业常用指标
    • 当此模型为“回归”算法时,系统会计算出它的R²指标。
    • 当次模型为“聚类”算法时,系统会计算出它的Score,即K-means最近簇距离的平方和。

    这些指标会在“模型管理”列表中显示出来,可供后续比较同类模型的准确度。

  2. 配置算法

    第四步为配置算法。默认情况下系统使用内部的AutoML算法自动调整各种算法参数,此步用户可以直接点下一步。

    如果用户有一定的机器学习知识,希望通过手动调参方式来训练模型,可以打开”开启传统调参模式“按钮,可以看到如下页面。

    在”AI算法选择”下拉列表中,可以选择系统内置的几种算法:其中Oushu Neura Network及Wide And Deep Neural Network为深度学习的算法。 其他几种为传统ML算法。 需要注意的是Boosted Tree算法只支持二分类。

参数设置里,可打开”高级组合参数模式“。这样每个超参可以设置多个值,系统会自动将所有组合搭配出来,训练多个模型,然后选出最好的。如果配置的组合过多,但是不想系统将所有组合一一训练,可以设置random_search参数,这个数值即系统随机从所有组合中随机抽取的几套组合(填几就训练几个模型,并从其中选择最好的)。

在参数设置的右侧,有两列数据:默认值及最佳值。

  • 默认值:系统为每个算法提供了一套默认值,方便以此为基础来调参。
  • 最佳值:当此工程跑过AutoML后,系统会将AutoML选出的最佳超参展现到此处,作为后续手动调参的一个参考;如果用户配置过多套参数,跑完过后,系统也会将其中最佳搭配展示到此处。我们称这个功能为“调参助手”。
点击”恢复默认值“及”使用最佳值“按钮可将相应参数自动填充到左侧参数框中。
  1. 开始训练

第五步需要选择一个训练集群, 这个列表会列出LittleBoy菜单中”训练集群“列表中配置好的所有集群。

AutoML训练模式有两种:

  1. 快速测试:用来测试一下整个工程配置是否可以成功训练模型,LittleBoy会根据系统大数据经验,只训练一个模型。此模式训练时间相对短,模型效果不一定好,只做测试之用。
  2. 精准训练:表示LittleBoy系统会根据内建算法,自动训练多个备选模型,并在训练完成时智能选取一个最好的。

一般新配置的工程,建议先选取快速测试,来看一下配置以及数据是否完全正确。当成功训练出一个模型后,再使用训练时间更长的精准训练,来自动训练一个准确率高的模型。

点击开始训练后,系统会做一些必要的验证,如果训练数据集比较大,此处可能需要等候片刻。当验证通过后,页面会自动跳回”我的工程”列表,第一条即我们跑起来的工程,可以看到“当前状态”是“正在运行”,如下图。

点击“状态”按钮(或“正在运行”的彩色状态条)系统会弹出当前工程的训练进度,包括训练百分比,已经运行时长及模型收敛情况可视化。如下图。如果需要停止训练,可以点击此页面的停止按钮,或者列表中的“停止”按钮。

我的工程列表还有一个“复制”按钮,它的功能是复制其所在的工程并形成一个新的工程。当用户需要新建一个与已有的工程类似的工程时,可以利用此功能。

聚类:

下面说明一下聚类工程。

如上图,在工程类别中选择“训练聚类模型”,即可配置一个聚类工程,聚类工程的配置流程与分类及回归有些不同。

第一步没有不同,依然是选择需要聚类的数据源,在运行完工程后,系统会做两件事:

  1. 训练一个聚类模型。
  2. 新建一个结果表,将训练数据原封不动复制过来,并新加一个列“oushulbclustering_index”, 此列从0开始递增,不同数字表示不同类别。

第二步无需选择标签,只选择特征即可。

第三步,需要选择一个位置存储聚类结果表。系统会默认给出一个表名,用户可以随意更改。

第四步,系统会展示出KMeans算法的参数配置页面,目前LittleBoy的聚类算法只支持KMeans。

当然也可以打开组合参数模式,一次性配置多种数值。 注意n_cluster不要配置多个值,它的含义是我们希望系统将训练数据分为几类(或者模型可以将其他数据分为几类)。

开始训练后,当训练完成时我们会看到“查看结果”按钮, 这个是聚类特有的。

点击“查看结果”,直接跳转到OushuDB->对象管理中的表。