数据准备与预处理

通常情况下,在构建一个模型时,您需要准备好用于模型构建和调试所需要使用的数据,并完成数据的预处理,以便后续根据业务需求进行模型开发所需的进一步加工。本示例以PAI为您提供的公开数据为例,演示数据准备与预处理的操作步骤。

前提条件

已经新建了一个工作流,详情请参见新建自定义工作流

step1:进入工作流页面

  1. 登录PAI控制台,在左侧导航栏单击工作空间列表,再单击待操作的工作空间名称,进入对应工作空间内。

  2. 在工作空间页面的左侧导航栏选择模型开发与训练 > 可视化建模(Designer),进入Designer页面。

  3. 在工作流列表页面,选中对应工作流后,单击进入工作流即可进入工作流页面。

step2:准备数据

本示例使用PAI为您提供的心脏病案例的公开数据。您无需新建表、写入表数据,可直接使用读数据表来读取此公开数据,作为数据准备。

说明

通常情况下,您需要准备一个MaxCompute表或OSS表,并通过源/目标组件下的读数据表写数据表OSS数据等组件来查询或写入数据到表中,操作详情可参见源/目标对应组件文档。

43a466b14a69a9811948b46d83377753.png
  1. 在左侧组件列表的搜索框中,搜索读数据表,找到读数据表组件。

  2. 读数据表组件拖入右侧画布中,画布中自动生成一个名称为读数据表-1的工作流节点。

  3. 在画布中选中读数据表-1节点,在右侧节点配置页面中的表名中输入pai_online_project.heart_disease_prediction,读取公开的心脏病案例的数据表。

    您也可以将右侧的节点配置页面切换到字段信息页签,查看此公开数据的字段详情。

step3:数据预处理

本示例使用的原始数据为公开的心脏病案例的数据,数据预处理以将所有字段取值归一化为例,为您展示数据预处理的步骤。本示例的数据预处理主要包括三个处理流程:

  1. 将原始数据表中,取值为非数值类型的字段,通过SQL替换为数值类型的取值,以保证此预处理后,表中所有字段的取值都是数值类型。

  2. 将表中字段转换为double类型,以保证此预处理后,表中字段均满足后续归一化处理的字段属性要求。

  3. 将表中字段的取值均归一化。

详细操作如下。

  1. 数据预处理:转换非数值类型字段。2701eea1a4d4a49c8892983094eceffa.png

    1. 在左侧组件列表的搜索框中,搜索SQL脚本,找到SQL脚本组件。

    2. SQL脚本组件拖入右侧画布中,画布中将自动生成一个名称为SQL脚本-1的工作流节点。

    3. 通过连线,将SQL脚本-1节点的t1输入源作为读数据表-1节点的下游节点。

    4. 在画布中选中SQL脚本-1节点(此时在画布右侧参数设置页面的输入源t1),在右侧节点配置页面中的SQL脚本输入框中输入以下SQL代码。

      select age,
      (case sex when 'male' then 1 else 0 end) as sex,
      (case cp when 'angina' then 0  when 'notang' then 1 else 2 end) as cp,
      trestbps,
      chol,
      (case fbs when 'true' then 1 else 0 end) as fbs,
      (case restecg when 'norm' then 0  when 'abn' then 1 else 2 end) as restecg,
      thalach,
      (case exang when 'true' then 1 else 0 end) as exang,
      oldpeak,
      (case slop when 'up' then 0  when 'flat' then 1 else 2 end) as slop,
      ca,
      (case thal when 'norm' then 0  when 'fix' then 1 else 2 end) as thal,
      (case status  when 'sick' then 1 else 0 end) as ifHealth
      from  ${t1};
      说明

      SQL脚本-1节点有t1、t2、t3t4四个输入源。在SQL代码示例中,${t1}表示输入源为t1。如果您从读数据表-1SQL脚本-1连线的节点是t2或其他(在SQL脚本-1参数设置页面的输入源会显示对应节点),需要修改SQL语句为对应节点。

    5. 单击画布上方的运行运行按钮,实验将根据工作流顺序依次运行读数据表-1SQL脚本-1节点。

  2. 数据预处理:将所有字段转换为double类型。

    b4e7bb3e15838f4bfd46dcdec8eb60d6.png
    1. 在左侧组件列表的搜索框中,搜索类型转换,找到类型转换组件。

    2. 类型转换组件拖入右侧画布中,画布中自动生成一个名称为类型转换-1的工作流节点。

    3. 通过连线,将类型转换-1节点作为SQL脚本-1节点的下游节点。

    4. 在画布中选中类型转换-1节点,在右侧节点配置页面中的字段设置页签,单击转换为double类型的列下的选择字段,将所有字段转换为double类型。

  3. 数据预处理:归一化。

    bbd133ada39f2d0da5853c21ee08e5b7.png
    1. 在左侧组件列表的搜索框中,搜索归一化,找到归一化组件。

    2. 归一化组件拖入右侧画布中,画布中自动生成一个名称为归一化-1的工作流节点。

    3. 通过连线,将归一化-1节点作为类型转换-1节点的下游节点。

    4. 在画布中选中归一化-1节点,在右侧节点配置页面中的字段设置页签,选择所有字段。

  4. 在左侧组件列表的搜索框中,搜索拆分,找到拆分组件后拖入画布,并将其通过拉线作为归一化-1节点的下游节点。

    拆分组件默认将原始数据按4:1拆分为模型训练集和模型预测集。您也可以单击拆分组件,在右侧参数设置页签,设置切分比例

  5. 单击画布上方的保存,保存工作流配置。

step4:调试运行工作流

右键单击画布中的类型转换-1组件,在快捷菜单中单击从此处开始执行,调试运行本工作流。582b14cc7ac747572e4f2f445ec374a5.png实验将根据工作流顺序依次运行各节点。当节点成功运行完成后,节点的右上角会出现成功提示运行成功。运行成功后,您可以右键各节点,选择查看数据,进一步查看当前节点的输出数据是否正确。

说明

当工作流比较复杂时,您可以每拖入一个组件配置完成一个节点后,就单击保存和运行,进行调试。如果运行失败,可右键节点查看日志,进行失败原因的排查处理。

后续步骤

完成数据预处理后,需要进行数据可视化,详情请参见数据可视化