4 Oracle Machine Learning Notebooks 数据分析和数据可视化入门

Oracle Machine Learning Notebooks 是面向数据分析师和数据科学家的增强型基于 Web 的笔记本平台。您可以编写代码、文本、创建可视化以及执行数据分析(包括机器学习)。记事本适用于后端的解释器。在 Oracle Machine Learning 用户界面中,记事本在项目中可用,您可以在其中创建、编辑、删除、复制、移动甚至将记事本另存为模板。

4.1 关于 Oracle Machine Learning Notebooks

Oracle Machine Learning Notebooks 是面向数据工程师、数据分析师、R 和 Python 用户以及数据科学家的增强型基于 Web 的笔记本平台。您可以编写代码、文本、创建可视化以及执行数据分析(包括机器学习)。记事本适用于后端的解释器。

在 Oracle Machine Learning 中,记事本在工作区内的项目中可用,您可以在其中创建、编辑、删除、复制、移动甚至将记事本另存为模板。一个笔记本可以包含许多段落。段落是一个笔记本组件,您可以在其中编写和运行 SQL 语句、PL/SQL 脚本、R 和 Python 代码以及 conda 指令。您可以单独运行段落,也可以使用单个按钮运行笔记本中的所有段落。段落具有输入部分和输出部分。在输入部分中,指定要与代码或文本一起运行的解释器。此信息将发送到要运行的解释器。在输出部分中,提供了解释器的结果。

注意:

原始笔记本和新笔记本都有一个名称空间。两个记事本列表中不能具有相同名称的记事本。从原始接口复制到新接口的笔记本将附加 _new

图 4-1 OML 笔记本

OML 笔记本的屏幕截图
Oracle Machine Learning Notebook 提供:
  • 更快的笔记本加载时间。
  • Oracle 的外观基于 Oracle Redwood 主题。
  • 丰富的可视化在其折线图,面积图,条形图,金字塔图,饼图,甜甜圈图,漏斗图,标记云,树状图,旭日图,散点图,框图。
  • 用于在记事本段落中输入备注的选项。
  • 用于创建段落相关项的选项。“段落相关性”功能允许您在段落之间添加相关性。段落的被抚养人在原始段落运行后自动运行。
  • 通过下拉菜单简化了“高”、“中”、“低”的服务级别选择。
  • Zeppelin 和 Jupyter 笔记本的布局。
  • 页上版本控制、查看版本历史记录和版本比较。

4.2 访问 Oracle Machine Learning Notebooks 页面

您可以从 Oracle Machine Learning Notebooks 的左侧导航窗格或从“Notebooks(记事本)”页访问“OML Notebooks(OML 记事本)”页。

  1. 要访问“记事本”页面:
    • 转到 Oracle Machine Learning 左侧导航窗格,展开“项目”,然后单击记事本

      图 4-2 左侧导航窗格

      左导航窗格
    • 或者,也可以单击主页上的“快速链接”下的记事本以打开“记事本”页。
  2. 这将打开“OML 记事本”页。
    • 图 4-3 OML 记事本页

      OML 记事本页
      在这里,您可以选择:
    • 创建:单击创建以创建新笔记本。
    • 编辑:单击某个记事本行以将其选中,然后单击编辑。您可以编辑记事本名称,并在“编辑记事本”对话框中添加注释。
    • 删除:单击某个记事本行以将其选中,然后单击删除
    • 复制:单击记事本行以选择它,然后单击复制。这将创建记事本的副本,并在记事本名称中包含后缀 _1 的“记事本”页上列出该副本。
    • 保存为模板:要将记事本保存为模板,请选择记事本,然后单击保存为模板。在“另存为模板”对话框中,您可以定义模板的位置,以将其保存在“模板”下的“个人”或“共享”中。
    • 导入:要将笔记本导入为 .json 文件,请单击导入。选择要导入记事本的项目和工作区。
    • 导出:要导出工作簿,请单击导出。您可以以 .dsnb format、Zeppelin 格式 (.json ) 文件和 Jupyter 格式 (.ipynb)) 导出记事本,然后将其导入到相同或不同的环境中。
    • 版本:要创建记事本的版本,请选择它,然后单击版本。此时将打开该特定记事本的“版本”页。在此处,您可以单击 +Version 来创建新版本的记事本。此时将打开“创建版本”对话框。输入记事本版本的名称和说明,然后单击确定。新版本的笔记本以相同的名称创建,第二个版本的后缀为 _2。对于后续版本,后缀(编号)以 1 递增。要通过单击还原版本还原到旧版本。您还可以选择删除笔记本的任何版本。单击返回记事本以转至“OML 记事本”页。

      注意:

      您还可以通过打开笔记本,然后单击 版本控制图标 选项来对其进行版本控制。使用此选项,您可以创建新版本、查看版本历史记录、恢复旧版本以及删除已打开的笔记本的任何旧版本。

4.2.1 在“记事本”页上使用记事本版本

通过创建笔记本的版本,您可以将工作归档到笔记本中。

您可以在“记事本”页以及“记事本”编辑器中创建记事本版本。在此示例中,创建 Notebook Versioning Demo 笔记本并将其版本化为版本 1

注意:

版本化的笔记本不可编辑。如果要对笔记本的特定版本进行任何更改,则必须恢复该版本以对其进行编辑。
先决条件:记事本版本化演示记事本。此笔记本是作为示例的一部分创建的。
要创建新的记事本版本并查看版本历史记录,请执行以下操作:
  1. 在“记事本”页上,单击创建记事本
  2. 在“创建记事本”对话框中,在名称字段中输入名称 Notebook Versioning Demo,然后单击确定。将创建该笔记本并在该笔记本编辑器中打开。
  3. 在笔记本上,将光标悬停在段落的下边框上,然后单击 + 图标以添加段落。在此笔记本上再添加两个段落,并将以下 PL/SQL 脚本粘贴到段落中:
    添加段落
    1. 在第一段中,复制并粘贴以下 PL/SQL 脚本。此脚本根据 SH 方案中存在的 SALES 表创建视图 ESM_SH_DATA
      %script
      
      CREATE OR REPLACE VIEW ESM_SH_DATA AS 
        SELECT TIME_ID, AMOUNT_SOLD FROM SH.SALES;
    2. 在第二段中,复制并粘贴以下 SQL 脚本。此脚本提供视图 ESM_SH_DATA 中存在的记录计数。
      %script
      SELECT count(*) from ESM_SH_DATA;
    3. 在第三段中,复制并粘贴以下 SQL 脚本以表格格式查看数据。
      SELECT * FROM ESM_SH_DATA
      FETCH FIRST 10 ROWS ONLY;
  4. 运行所有段落,并在所有段落成功运行后返回“记事本”页。
  5. 在“记事本”页上,选择记事本版本化演示记事本以启用所有编辑选项,然后单击版本以转到此记事本的版本页。
    版本选项
    此时将打开 Versions - Notebook Versioning Demo(版本 - 笔记本版本化演示)页面。
  6. 版本 - 记事本版本化演示页面上,单击版本以创建新版本的记事本。这将打开“创建版本”对话框。
    “版本”页
  7. 在 "Create Versions" 对话框中,执行以下操作:
    1. 名称:为此笔记本的新版本输入 Version 1
    2. 备注:输入备注(如果有)。
    3. 单击确定。创建记事本版本后,它将在版本 - 记事本版本化演示页面上列出。
    版本页 2
  8. 版本 - 记事本版本化演示页上,选择刚刚创建的笔记本版本的版本 1 以启用所有可用选项。
    选择版本 1
    • 单击删除将删除所选版本的记事本。
    • 单击还原以还原所选版本的记事本。

      注意:

      恢复所选版本的记事本将放弃所有未版本化的更改(如果有)。
    • 单击返回到记事本以返回到“记事本”页。

4.3 编辑 Oracle Machine Learning 记事本

创建笔记本后,它将自动打开,使用默认的 %sql 解释器向您呈现单个段落。可以通过显式指定 %script%python%sql%r%md%conda 之一来更改解释器。

使用与记事本关联的项目设置上下文。您可以编辑项目中的现有记事本。编辑现有笔记本:
  1. 在 Oracle Machine Learning 主页中,选择可用记事本的项目。

    注意:

    项目是工作区中的记事本和实验的逻辑分组。虽然您可能拥有许多项目,但其他工作区和项目可能会与您共享。
  2. 单击要打开和编辑的记事本。
    所选记事本将以编辑模式打开。
  3. 在编辑模式下,您可以使用以下 Oracle Machine Learning Notebook 工具栏选项:
    OML 记事本工具栏
    记事本级别编辑选项:
    • 单击 运行所有段落 以运行记事本中的所有段落
    • 单击 使会话失效 可使记事本会话失效并重置。
    • 单击 versioning - 版本化 创建此记事本的新版本,或查看早期版本的记事本。
      • 创建版本:单击此选项可创建此记事本的新版本。您可以选择为版本提供新名称以及有关该版本的说明。创建新笔记本版本时,每个运行会话的段落结果将存储在版本化的笔记本中。恢复记事本时,还将恢复每个运行会话的段落结果。您还可以从编辑器创建记事本版本。有关详细信息,请参阅在记事本编辑器中使用记事本版本
      • 查看版本历史记录:单击此选项可查看早期版本的记事本。您可以选择还原任何早期版本、比较版本以及删除您创建的任何早期版本。

      注意:

      您还可以从“记事本”页面上的 记事本页上的版本选项 选项创建记事本版本、查看版本历史记录以及删除旧版本。
    • 单击 清除结果 清除段落结果。
    • 单击 清除段落相关性 可清除段落相关性。
    • 单击 导出笔记本早期采用者 以导出记事本。可以将记事本导出为 .dsnb 文件、.zpln 文件(Zeppelin 记事本)和 .ipynb 文件(Jupyter 记事本)。导出记事本时有以下设置:
      • 全部导出
      • 不包括代码
      • 不包括结果
      • 不包括时间戳
    • 单击 打印记事本 以打印记事本
    • 单击 隐藏代码 可隐藏笔记本中所有段落的代码
    • 单击 隐藏结果 可隐藏笔记本中所有段落的结果
    • 单击 启用只读 可为此记事本启用只读模式。

      注意:

      只读模式仅适用于 Oracle Machine Learning Notebook。
    • 单击 显示面板 可显示编辑面板。面板中的编辑选项是可用于段落的相同编辑选项。单击面板图标将打开右侧的编辑窗格,段落中的编辑工具栏将隐藏。
    • 单击 更新解释器 将解释器绑定更改为低、中或高
    • 单击 Zeppelin 将 OML 笔记本切换到 Zeppelin 或 Jupyter 笔记本
    段落级别编辑选项:
    • 单击 运行 以运行所选段落
    • 单击 进入相关性模式 进入相关性模式。在“相关性模式”中,必须选择和取消选择段落,以将其添加或删除为被抚养人。

      注意:

      “段落相关性”功能允许您在段落之间添加相关性。段落的被抚养人在原始段落运行后自动运行。
    • 单击 注释 打开“评论”对话框。在此处键入注释,然后按 Enter 键添加注释。还可以单击相应的删除图标以删除任何备注。单击注释图标可关闭对话框。您可以为记事本中的每个段落提供备注。带注释的段落在注释图标上用绿色点表示。 备注指示符
    • 单击 展开 以全屏模式查看记事本段落。要在正常模式下查看段落,请单击折叠图标。
    • 单击 显示隐藏行号 可在记事本段落中显示行号。
    • 单击 可见性 可查看段落标题、代码、结果和段落设置。
    • 单击 设置 以 :
      • 上移:单击以在记事本中上移段落。
      • 下移:单击此项可下移记事本中的段落。
      • 清除结果:单击此项可清除在该段落中运行的命令的结果。
      • 以嵌入式窗口的形式打开:单击此项可在浏览器中单独查看当前段落。
      • 克隆段落:单击以克隆段落。该段落在同一笔记本中克隆。
      • 禁用运行:单击此项可禁用段落的运行。要启用运行,请转至设置,然后单击启用运行
      • 删除段落:单击以删除段落。
    • 单击 HTML 以 HTML 格式查看段落
    • 单击 Text 以文本格式查看段落
    • 单击 设置 可调整记事本段落输出的设置。此设置特别适用于图形、图表等中的可视化。
    • 单击 下载为 可将段落下载为文本文件,或下载为 .png 或 .svg 文件(如果适用),用于将图形或图表作为输出的段落。

4.3.1 在记事本编辑器中使用记事本版本

通过创建笔记本的版本,您可以将工作归档到笔记本中。

您可以在记事本编辑器以及“记事本”页上创建记事本版本。在本例中:
  • 原始记事本 Notebook Versioning Demo 被编辑为添加脚本以构建机器学习模型。
  • 然后,记事本版本化演示记事本将版本化为版本 2 ,以归档代码来构建机器学习模型。
  • 使用比较版本功能比较记事本版本化演示记事本的版本 2版本 1

注意:

版本化的笔记本不可编辑。如果要对笔记本的特定版本进行任何更改,则必须恢复该版本以对其进行编辑。
要创建新的记事本版本并查看版本历史记录,请执行以下操作:
  1. 在“记事本 EA”页面上,单击记事本版本化演示记事本以在记事本编辑器中打开它。

    注意:

    此记事本的版本 1 已作为使用记事本页上的记事本版本示例的一部分创建。它包含用于创建视图 ESM_SH_DATA、计算记录和查看数据的归档代码。单击笔记本可打开可编辑的原始版本。
  2. 现在,编辑记事本以添加脚本来构建机器学习模型。在笔记本上,将光标悬停在第三段的下边框上,然后单击 + 图标以添加新段落。
    添加段落
  3. 复制以下脚本并将其粘贴到新段落。此脚本使用 ESM 算法构建机器学习模型。
    %script
    
    BEGIN DBMS_DATA_MINING.DROP_MODEL('ESM_SALES_FORECAST_1');
    EXCEPTION WHEN OTHERS THEN NULL; END;
    /
    DECLARE
        v_setlst DBMS_DATA_MINING.SETTING_LIST;
    BEGIN
        
        v_setlst('ALGO_NAME')            := 'ALGO_EXPONENTIAL_SMOOTHING';
        v_setlst('EXSM_INTERVAL')        := 'EXSM_INTERVAL_QTR'; -- accumulation int'l = quarter
        v_setlst('EXSM_PREDICTION_STEP') := '4';                 -- prediction step = 4 quarters
        v_setlst('EXSM_MODEL')           := 'EXSM_WINTERS';      -- ESM model = Holt-Winters
        v_setlst('EXSM_SEASONALITY')     := '4';                 -- seasonal cycle = 4 quarters    
    
        DBMS_DATA_MINING.CREATE_MODEL2(
            MODEL_NAME          => 'ESM_SALES_FORECAST_1',
            MINING_FUNCTION     => 'TIME_SERIES',
            DATA_QUERY          => 'select * from ESM_SH_DATA',
            SET_LIST            => v_setlst,
            CASE_ID_COLUMN_NAME => 'TIME_ID',
            TARGET_COLUMN_NAME  =>'AMOUNT_SOLD');
    END;
  4. 现在,请将此笔记本与代码一起归档,以便通过版本化来构建机器学习模型。在记事本编辑器的左上角,单击版本化 版本控制图标
  5. 将打开创建版本查看版本历史记录的选项。
    创建版本
  6. 单击创建版本。将打开“新版本”对话框。
  7. 新建版本对话框中:
    1. 名称:在此处,默认采用名称 Version 2。让我们保留此名称。
    2. 备注:输入备注(如果有)。
    3. 单击创建。此时将显示一条消息,确认创建新版本。
    "New Version" 对话框
    此笔记本的版本 2 现在包含用于创建机器学习模型的归档代码。
  8. 要查看刚刚创建的版本,请单击版本化 versioning - 版本化,然后单击查看版本历史记录
  9. 在笔记本编辑器的右窗格上,将打开版本历史记录面板。将光标悬停在任何记事本版本上,然后单击它以启用可用选项。
  10. 您可以在“版本历史记录”面板中执行以下任务:
    查看版本历史记录
    • 单击 开放版本 以打开选定的版本。

      注意:

      单击任何版本化的记事本将以只读模式打开记事本,因为版本化的记事本不可编辑。要查看当前可编辑版本,请单击查看笔记本的当前版本"View Current Version" 选项
    • 单击删除将删除所选版本。
    • 单击比较版本以比较笔记本的选定版本和当前版本。您可以从下拉列表中选择其他可用版本。在此示例中,将笔记本的版本 2(在“当前状态”下)与版本 1 进行比较。新增内容以绿色突出显示,如此处的屏幕截图所示,删除内容以红色突出显示。 比较记事本版本
    • 单击还原以还原所选版本。

      注意:

      恢复所选版本的记事本将放弃所有未版本化的更改(如果有)。

4.3.2 创建段落相关性

段落相关性允许您在段落之间添加相关性。从属段落在原始段落运行后,根据从属关系的顺序自动运行。

要创建段落相关性,请执行以下操作:
  1. 在“记事本”页上,单击创建记事本
  2. 在“创建记事本”对话框中,在名称字段中输入名称 Paragraph Dependencies Demo,然后单击确定
    笔记本已创建,并在笔记本编辑器中打开。
  3. 在笔记本上,将光标悬停在段落的下边框上,然后单击 + 图标以添加段落。在此笔记本上再添加两个段落,并在段落中粘贴以下 PL/SQL 脚本:
    添加段落
    1. 在第一段中,复制并粘贴以下 PL/SQL 脚本。此脚本根据 SH 方案中存在的 SALES 表创建视图 ESM_SH_DATA
      %script
      
      CREATE OR REPLACE VIEW ESM_SH_DATA AS 
        SELECT TIME_ID, AMOUNT_SOLD FROM SH.SALES;
    2. 在第二段中,复制并粘贴以下 SQL 脚本。此脚本提供视图 ESM_SH_DATA 中存在的记录计数。
      %script
      SELECT COUNT(*) FROM ESM_SH_DATA;
    3. 在第三段中,复制并粘贴以下 SQL 脚本以表格格式查看数据。
      %sql
      SELECT * FROM ESM_SH_DATA
      FETCH FIRST 10 ROWS ONLY;
  4. 转到第一段并单击输入相关性模式图标。
    进入相关性模式
    此时将显示消息:您正在选择该段落的相关项
  5. 单击第二和第三段,将其添加为第一段的受抚养人。

    注意:

    段落相关性的顺序基于单击的顺序。
    选择相关段落
  6. 单击 保存。定义并保存从属段落后,将用数字表示,如下面的屏幕截图所示:
    相关段落
  7. 现在,转到第一段并单击运行。第一个段落成功启动后,后续的相关段落将根据相关性的顺序开始运行。
    相关段落运行