5 關於 Oracle Machine Learning Notebooks Classic

記事本可以包含許多段落。段落是記事本元件,您可以在其中撰寫和執行 SQL 敘述句、PL/SQL 命令檔、R 和 Python 程式碼以及 conda 指示。您可以個別執行段落,或是使用單一按鈕來執行記事本中的所有段落。

段落具有輸入區段和輸出區段。在輸入區段中,指定要執行的解譯器以及程式碼或文字。此資訊會傳送給要執行的解譯器。在輸出區段中,會提供解譯器的結果。

記事本 (經典) 頁面會列出與所選專案關聯的所有記事本。您可以在此處建立、編輯及執行您的記事本。

您可以在記事本 (經典) 頁面中執行下列作業:

圖 5-1 OML 筆記型電腦 (經典) 頁面

OML 筆記型電腦 (經典) 頁面
  • 移至 OML 筆記型電腦:按一下移至 OML 筆記型電腦即可移至 Oracle Machine Learning Notebooks 頁面。

  • 建立:按一下建立即可建立新的記事本。

  • 編輯:按一下記事本列以選取它,然後按一下編輯。您可以編輯記事本名稱,並在編輯記事本對話方塊中新增註解。

  • 刪除:按一下記事本列以選取它,然後按一下刪除

  • 複製:按一下記事本資料列來選取它,然後按一下複製。這會建立記事本的複本,而且「記事本」頁面會列出記事本名稱中字尾為 _1 的複本。

  • 移動:選取記事本並按一下移動,即可將記事本移至相同或不同工作區中的其他專案。您必須具備 AdministratorDeveloper 權限,才能在專案和工作區之間移動記事本。您可以移動從工作執行的記事本,因為當您從工作執行記事本時,它會執行記事本的複本。

    附註:

    如果記事本處於「執行中」狀態,或目標專案中已有相同名稱的記事本,則無法移動。
  • 複製:選取記事本,然後按一下複製,將記事本複製到相同或不同工作區的其他專案。您必須具備 AdministratorDeveloper 權限,才能在不同的專案和工作區中複製記事本。
  • 儲存為樣板:若要儲存記事本為樣板,請選取記事本,然後按一下儲存為樣板。在「另存為範本」對話方塊中,您可以定義範本的位置,將它儲存在「範本」下的個人共用中。

  • 匯入:若要將筆記型電腦匯入為 .json 檔案,請按一下匯入。選取要匯入記事本的專案和工作區。

  • 匯出:若要匯出筆記型電腦,請按一下匯出。您可以使用 Zeppelin 格式 (.json) 檔案和 Jupyter 格式 (.ipynb) 匯出記事本,之後再將它們匯入相同或不同的環境。
  • 版本:若要建立記事本的版本,請選取它,然後按一下版本。您可以建立記事本的版本來實驗您的記事本,然後按一下回復版本來回復至較舊的版本。

    附註:

    您也可以開啟記事本,然後按一下「啟動多版本功能」選項 啟動多版本功能 來啟動記事本的版本。您可以使用此選項來建立新版本、檢視版本歷史記錄、回復較舊的版本,以及刪除您開啟的舊版筆記型電腦。
  • 複製到 OML 筆記型電腦:使用字尾為 _new 的原始名稱,將選取的筆記型電腦複製到「記事本」介面。您現在可以按一下左側導覽功能表中的記事本,或按一下此頁面右上角的移至 OML 筆記型電腦來存取此記事本。
  • 若要開啟記事本並加以執行,請按一下記事本。以編輯模式開啟記事本。

5.1 建立記事本 (經典)

Notebook Classic 是用於資料分析、資料探索、資料視覺化和協作的 Web 介面。

每當您建立 Notebook Classic 時,都會有解譯器設定值設定。Notebook Classic 包含內部繫結清單,可決定解譯器繫結的順序。「記事本 (經典)」包含的段落是記事本元件,您可以在其中撰寫 SQL 敘述句、執行 PL/SQL 命令檔以及執行 Python 命令。段落具有輸入區段和輸出區段。在輸入區段中,指定要與文字一起執行的解譯器。此資訊會傳送給要執行的解譯器。在輸出區段中,會提供解譯器的結果。
若要建立記事本 (經典):
  1. 在 Oracle Machine Learning UI 首頁中,按一下 記事本 (經典)。記事本 (經典) 頁面會開啟。
  2. 記事本 (經典) 頁面中,按一下建立
    建立記事本視窗便會顯示。
  3. 名稱欄位中,提供記事本的名稱。
  4. 附註欄位中輸入附註 (如果有的話)。
  5. 按一下確定。
已建立您的記事本 (經典),便會在記事本編輯器中開啟。您現在可以使用此程式來執行 SQL 敘述句、執行 PL/SQL 命令檔、執行 Python、R 以及 Conda 命令。若要這樣做,請在段落的輸入區段中指定下列任一指令:
  • %sql - 連線至 SQL 解譯器並執行 SQL 敘述句
  • %script - 連線至 PL/SQL 解譯器並執行 PL/SQL 命令檔
  • %md - 連線至 Markdown 解譯器,並從 Markdown 純文字產生靜態 HTML
  • %python - 連線至 Python 解譯器並執行 Python 命令檔
  • %r - 連線至 R 解譯器並執行 R 命令檔。
  • %conda - 連線至 Conda 解譯器,並在記事本階段作業中安裝第三方 Python 和 R 程式庫。

5.2 編輯您的記事本 (經典)

建立 OML Notebook Classic 時,會自動開啟它,使用預設的 %sql 解譯器呈現單一段落。您可以明確指定 %script, %python, %sql%r%md%conda 其中之一來變更解譯器。

設定與您的記事本相關聯之專案的相關資訊環境。
您可以編輯專案中現有的記事本 (經典)。若要編輯現有的記事本 (經典):
  1. Oracle Machine Learning UI 首頁上,選取您筆記型電腦可用的專案。
  2. 前往 Oracle Machine Learning UI 導覽器,然後選取記事本 (經典) 。列出專案中可用的所有記事本。
  3. 按一下您要開啟和編輯的記事本。
    選取的記事本會以編輯模式開啟。
  4. 在編輯模式中,您可以使用 Oracle Machine Learning Notebooks Classic 工具列選項,在段落中執行程式碼,以進行組態設定和顯示選項。

    圖 5-2 記事本工具列

    筆記型電腦典型工具列
    您可以執行下列工作:
    • 撰寫程式碼以擷取資料
    • 按一下 run 以執行記事本中的一或多個段落。
    • 按一下 顯示隱藏碼 即可隱藏記事本中所有段落的所有程式碼。再按一下以顯示代碼。
    • 按一下 顯示隱藏輸出 即可隱藏記事本中所有段落的所有輸出。再按一下即可檢視輸出。
    • 按一下 清除輸出 可移除記事本中所有段落的所有輸出。若要檢視輸出,請再按一下執行圖示。
    • 按一下 清除記事本 以刪除記事本中的所有段落。
    • 按一下 匯出筆記型電腦 以匯出記事本。
    • 按一下 搜尋碼 即可搜尋記事本中代碼的任何資訊。
    • 按一下 鍵盤快速鍵 以檢視鍵盤快速鍵清單。
    • 按一下 解譯器結合 以設定記事本的解譯器連結順序。
    • 按一下 記事本顯示選項 以選取三個記事本顯示選項之一。
      • 按一下預設,即可檢視記事本中所有段落的程式碼、輸出和描述資料。
      • 按一下簡單,即可只檢視記事本中所有段落的程式碼和輸出。在此檢視中,記事本工具列和所有編輯選項都會隱藏起來。您必須將滑鼠游標暫留在上方,才能檢視編輯選項。
      • 按一下報表,即可只檢視記事本中所有段落的輸出。
    • 按一下 編輯選項 以存取段落特定的編輯選項,例如清除輸出、移除段落、調整寬度、字型大小、執行所選段落上方或下方的所有段落等等。
    • 新增動態表單,例如「文字輸入」表單、「選取表單」、「核取方塊」表單,以輕鬆選取輸入,以及輕鬆篩選筆記型電腦中的資料。Oracle Machine Learning 支援下列 Apache Zeppelin 動態表單:
      • 文字輸入表單 - 可讓您建立文字輸入的簡易表單。

      • 選取表單 - 可讓您建立包含使用者可選取之值範圍的表單。

      • 核取方塊表單 - 可讓您插入複選輸入的核取方塊。

    附註:

    只有 SQL 解譯器筆記本支援 Apache Zeppelin 動態表單。
  5. 完成編輯記事本之後,請按一下上一步
    這會將您帶回記事本 (經典) 頁面。

5.2.1 匯出記事本

您可以匯出 Zeppelin 格式 (.json) 檔案和 Jupyter 格式 (.ipynb) 的 Notebook Classic,之後再將它們匯入相同或不同的環境中。

若要匯出記事本 (經典):
  1. 記事本 (經典) 頁面上,選取要匯出的記事本。您可以選擇匯出一或多個或所有記事本。
  2. 在記事本編輯器的頂端面板上,按一下匯出,然後按一下下列任一選項:
    支援匯出的記事本格式
    • 要匯出的記事本 - 若要匯出記事本,請按一下:
      • 全部 - 匯出所有筆記型電腦。
      • 已選取 - 匯出選取的記事本。
    • 格式 - 選取您要匯出筆記型電腦的格式:
      • Zeppelin - 將記事本匯出為 .json (JavaScript Object Notation) 檔案。
      • Jupyter - 將記事本匯出為 .ipynb 檔案。
    匯出的記事本會儲存為壓縮資料夾中的 .json 檔案或 .ipynb 檔案。

5.2.2 匯入記事本

您可以將所有可插拔資料庫 (PDB) 的記事本匯入您的工作區。您也可以將 Jupyter 筆記型電腦匯入 Oracle Machine Learning UI。

Oracle Machine Learning UI 支援匯入 Zeppelin (.json) 和 Jupyter (.ipynb) 筆記型電腦。

附註:

從 Oracle Database 20c 開始,"database" 特別指的是多租用戶容器資料庫 (CDB)、可插式資料庫 (PDB) 或應用程式容器的資料檔。
匯入記事本:
  1. 在 Oracle Machine Learning UI 首頁中,按一下記事本 (經典)
  2. 在「記事本 (經典)」頁面上,按一下匯入 (Import)
    就會開啟檔案上傳對話方塊。瀏覽並選取您要匯入的記事本。

    附註:

    您必須將記事本另存為 .json 檔案才能匯入。您可以匯入從非 Oracle Apache Zeppelin 環境匯出的筆記型電腦,但只能執行支援的段落類型。
  3. 檔案上傳對話方塊中,瀏覽並選取 .json 檔案,然後按一下開啟
    這會將記事本檔案匯入您的工作區。
  4. 按一下匯入的記事本以開啟它。在「記事本 (經典)」頁面上,按一下齒輪圖示以檢視解譯器連結。

5.2.3 在記事本中建立核取方塊表單

「核取方塊表單」支援在段落中選擇多個輸入。輸入可作為記事本中的核取方塊選項。

建立「核取方塊表單」的步驟:
  1. 開啟您要新增「核取方塊表單」的記事本。
  2. 在 SQL 陳述式中,使用下列語法定義「核取方塊」表單:
    ${checkbox:formName=defaultValue1|defaultValue2...,option1|option2...}
    例如,執行 SQL 陳述式:
    SELECT ${checkbox:whichcolumn=OWNER|OBJECT_TYPE, OWNER|OBJECT_NAME|OBJECT_TYPE|CREATED|STATUS} FROM ALL_OBJECTS WHERE OBJECT_TYPE IN ('VIEW', 'TABLE', 'INDEX', 'SYNONYM');
    在以下範例中:
    • 「核取方塊」表單為 WhichColumn
    • 核取方塊中可用的複選選項有 OWNER、OBJECT_NAME、OBJECT_TYPE、CREATEDSTATUS
    • 欄位 OWNEROBJECT_TYPE 定義為預設值
    • 表格名稱為 ALL_OBJECTS
    • 設定顯示的資料欄為 OWNER、OBJECT_NAME、OBJECT_TYPE、CREATED 以及 STATUS
  3. 執行筆記型電腦。記事本中提供名為 WhichForm 的「核取方塊」表單,如螢幕擷取畫面所示。checkbox_form

5.2.4 在記事本中建立選取表單

「選取表單」可讓您從值清單中選取輸入值,並動態擷取段落中定義的值。

建立「選取」表單:
  1. 開啟您要在其中新增文字輸入表單的記事本。
  2. 在 SQL 陳述式中,使用語法定義「選取」表單:
    ${formName=defaultValue,option1|option2...}.
    例如,執行 SQL 陳述式:
    SELECT * FROM ALL_OBJECTS WHERE OBJECT_TYPE = '${OBJ=INDEX,INDEX|TABLE|VIEW|SYNONYM}';
    select_form
    在以下範例中:
    • 表單名稱為 obj
    • 可用的值清單為 INDEX, TABLE, VIEW, SYNONYM.
    • 表格名稱為 ALL_OBJECTS
    • 資料欄名稱為 OBJECT_TYPE
    物件表單的下拉式清單中選取任何值。選取的值將會在 ALL_OBJECTS 表格的 OBJECT_TYPE 資料欄中擷取。

5.2.5 在記事本中建立文字輸入表單

「文字輸入」表單可讓您動態擷取記事本中定義的值。

若要建立文字輸入表單,請執行下列動作:
  1. 開啟您要在其中新增「文字輸入」表單的記事本。
  2. 在 SQL 陳述式中,使用下列語法定義「文字輸入」表單:
    ${formName}
    例如,執行 SQL 陳述式:
    SELECT * FROM ALL_OBJECTS WHERE OBJECT_TYPE = '${OBJ}';
    在以下範例中:
    • 表單名稱為 obj
    • 表格名稱為 ALL_OBJECTS
    • 資料欄名稱為 OBJECT_TYPE
    此處會為表格 ALL_OBJECTS 中的資料欄 OBJECT_TYPE 建立文字表單 obj 。您可以在 obj 表單欄位中輸入不同的值,然後執行記事本來擷取資料欄 OBJECT_TYPE 中的對應值。
  3. 執行段落。記事本現在會顯示文字輸入表單欄位 obj ,如螢幕擷取畫面所示。您可以在物件欄位中輸入值,然後執行記事本來擷取表格 ALL_OBJECTS 中資料欄 OBJECT_TYPE 的對應值。
    • 如果您在 obj 欄位中輸入 TABLE 並執行記事本,記事本便會擷取資料欄 OBJECT_TYPE 中的 TABLE ,如螢幕擷取畫面所示。具有物件類型表的文字輸入表單
    • 如果您在 obj 表單欄位中輸入 VIEW 並執行記事本,記事本會擷取資料欄 OBJECT_TYPE 中的值 VIEW,如螢幕擷取畫面所示。 具有物件類型檢視的文字輸入表單
  4. 您也可以使用語法,在表單中指定預設值:
    ${formName=defaultValue}
    若要將預設值指派給「文字輸入」表單,請將 SQL 陳述式修改為:
    SELECT * FROM ALL_OBJECTS WHERE OBJECT_TYPE = '${obj=TABLE}'
    在這裡,指派給表單的預設值是 TABLE.執行段落之後,會擷取資料欄 OBJECT_TYPE 中的預設值 TABLE,如螢幕擷取畫面所示。
    含預設值的文字輸入表單

5.3 啟動記事本 (經典) 的版本

您可以對記事本 (經典) 進行版本或建立備份、對其進行實驗,然後視需要回復至原始記事本。

若要啟動記事本 (經典) 的版本:
  1. 記事本 (經典) 頁面上,選取要啟動多版本功能的記事本,然後按一下版本
    版本頁面會開啟。
  2. 在所選筆記型電腦的版本頁面上,按一下 + 版本
    建立版本對話方塊將會開啟。
  3. 建立版本對話方塊中,輸入您筆記型電腦特定版本的註解,然後按一下確定
  4. 啟動多版本功能的記事本現在會列在版本頁面中。您可以執行下列工作:
    • 按一下 + 版本,即可建立已經存在之記事本的其他版本。
    • 按一下新建記事本,即可從選取的記事本版本建立新記事本。
    • 按一下刪除,可刪除所選的筆記型電腦版本。
    • 按一下回復版本即可回復舊版的筆記型電腦。
    • 按一下返回記事本,即可移至「記事本 (經典)」頁面。

5.4 將記事本 (經典) 儲存為樣板

您可以將現有的記事本 (經典) 儲存為個人共用中的範本。

若要將記事本 (經典) 儲存為樣板,請執行下列動作:
  1. 記事本 (經典) 頁面中,選取要儲存為樣板的記事本,然後按一下另存為樣板
    儲存為範本對話方塊將會開啟。
  2. 名稱欄位中,輸入記事本樣板的名稱。
  3. 附註欄位中輸入附註 (如果有的話)。
  4. 標記欄位中,輸入樣板的標記。
  5. 儲存至中,選取:
    • 個人:如果您要將此記事本樣板儲存為「個人」,只有您的帳戶可以檢視或使用此記事本。
    • 共用:若要儲存和共用此記事本樣板,讓其他使用者可以從此樣板檢視和建立他們可以執行和編輯的記事本。

5.5 在記事本段落中使用 SQL 解譯器

Oracle Machine Learning 筆記型電腦支援多種語言。每個段落都與特定的解譯器相關聯。例如,若要執行 SQL 陳述式,請使用 SQL 解譯器。若要執行 PL/SQL 敘述句,請使用 script 解譯器。

在 Oracle Machine Learning UI 筆記型電腦中,您可以新增多個段落,每個段落都可以連線至不同的解譯器,例如 SQL 或 Python。您可以指定 %,後面接著要使用的解譯器來識別要使用的解譯器:sqlscriptrpythoncondamarkdown

段落具有輸入區段和輸出區段。在輸入區段中,指定要與文字一起執行的解譯器。此資訊會傳送給要執行的解譯器。在輸出區段中,會提供解譯器的結果。
您可以在記事本段落中使用下列指令:
  • %sql - 支援標準 SQL 敘述句。在 %sql 中,SELECT 敘述句的結果會直接顯示在表格檢視器中,並可存取其他視覺化選項。使用圖表設定值中的選項來執行群組、總和和其他作業。
  • %script - 支援 SQL 敘述句和 PL/SQL。在 %script 中,提供 SELECT 敘述句的結果作為文字字串輸出。
  • %conda - 支援 Conda 環境。在段落開頭鍵入 %conda 以連線至 Conda 環境,以及使用 Python 的第三方程式庫。
  • %r - 支援 R 命令檔。在段落開頭輸入 %r 以連線至 R 解譯器。
  • %python - 支援 Python 程序檔。在段落開頭輸入 %python,以連線至 Python 解譯器。
  • %md - 支援 Markdown 標記語言。

附註:

若要對所有資料執行群組方式,建議您使用 SQL 命令檔在資料庫中進行分組,並傳回記事本中圖表的摘要資訊。記事本層級的分組適用於小型資料集。如果您將太多資料提取至筆記型電腦,可能會因為記憶體不足而發生問題。您可以使用連線群組頁面上的轉換資料列限制選項來設定筆記型電腦的資料列限制。
擷取和視覺化記事本中的資料:
  1. 記事本頁面上,按一下要執行的記事本。
    記事本會以編輯模式開啟。
  2. 鍵入 %SQL 以呼叫 SQL 解譯器,然後按 Enter 鍵。您的筆記本已準備好執行 SQL 敘述句。
  3. 輸入 SQL 敘述句以從 Oracle Database 擷取資料。例如,輸入 SELECT * FROM TABLENAME,然後按一下 「執行」圖示。或者,按 Shift+Enter 鍵來執行記事本。

    附註:

    記事本必須以一般使用者身分開啟,亦即非管理員使用者。管理員無法使用執行記事本選項。
    這會擷取記事本中的資料。
  4. 資料會顯示在段落的輸出中。
    解譯器的結果會顯示在輸出區段中。段落的輸出區段包含圖表元件,以圖形輸出顯示結果。圖表介面可讓您與記事本段落中的輸出互動。您可以選擇在記事本中執行和編輯單一段落或所有段落。
    針對「表格選項」,按一下設定值,然後選取:
    • useFilter:啟用資料欄篩選。

    • showPagination:啟用增強型導覽的分頁。

    • showAggregationFooter:啟用頁尾以顯示聚總值。

    您也可以按一下資料欄名稱旁邊的向下箭號來排序資料欄。

    若要視覺化列表化資料,請按一下每個圖形表示的個別圖示,如下所示:
    • 按一下 長條圖 以代表「長條圖」中的資料。
    • 按一下 圓餅圖 以代表「圓餅圖」中的資料。
    • 按一下 區域圖 以代表「區域圖」中的資料。
    • 按一下 折線圖 以代表「折線圖」中的資料。
    • 按一下 散佈圖 以代表「散佈圖」中的資料。

5.5.1 關於 Oracle Machine Learning for SQL

Oracle Machine Learning for SQL (OML4SQL) 在 Oracle Database 中提供強大的、最先進的機器學習功能。您可以使用 Oracle Machine Learning for SQL 建立及部署預測性和描述性機器學習模型,為現有和新的應用程式新增智慧功能。

Oracle Machine Learning for SQL 提供一組廣泛的資料庫內演算法,可執行各種機器學習工作,例如分類、迴歸、異常偵測、功能擷取、叢集化以及市場籃分析等。OML4SQL 的程式設計介面是用於建置和維護模型的 PL/SQL,以及用於評分的 SQL 函數系列。

使用 Oracle Machine Learning Notebook 搭配 SQL 和 PL/SQL 解譯器,分別執行 SQL 敘述句 (%sql) 和 PL/SQL 命令檔 (%script)。使用 Oracle Machine Learning for SQL:
  • 執行資料探索和資料分析
  • 建立、評估及部署機器學習模型,以及
  • 使用這些模型評分資料

5.5.2 在記事本中設定輸出格式

Oracle Machine Learning Notebooks 可讓您預先格式化記事本中的查詢輸出。

若要預先格式化查詢輸出,您必須使用 SET SQLFORMAT 指令,如下所示:
  1. 在 Oracle Machine Learning 中開啟記事本。
  2. 輸入命令:
    %script
    SET SQLFORMAT format_option
    例如,如果您想要以 ansiconsole 格式輸出,請鍵入命令後接 SQL 查詢,如下所示:
    SET SQLFORMAT ansiconsole;
    SELECT * FROM HR.EMPLOYEES;
    此處的輸出格式為 ansiconsole,表格名稱為 HR.EMPLOYEES

    附註:

    此格式可供 Script 解譯器使用。因此,您必須如本範例所示新增字首 %script

5.5.3 SET SQLFORMAT 命令支援的輸出格式

您可以使用 SET SQLFORMAT 命令,以各種格式產生查詢輸出。

附註:

這些輸出格式可用於 Script 解譯器。因此,您必須包括前置碼 %script
可用的輸出格式如下:
  • CSV - CSV 格式會產生標準逗號分隔變數輸出,字串值會以雙引號括住。語法如下:

    %script

    SET SQLFORMAT CSV

  • HTML - HTML 格式會產生回應表格的 HTML。表格的內容會動態變更,以符合在文字欄位中輸入的搜尋字串。語法如下:

    %script

    SET SQLFORMAT HTML

  • XML - XML 格式會產生以標記為基礎的 XML 文件。所有資料會以 CDATA 標記呈現。語法如下:

    %script

    SET SQLFORMAT XML

  • JSON - JSON 格式會產生一個 JSON 文件,其中包含資料欄的定義及其包含的資料。語法如下:

    %script

    SET SQLFORMAT JSON

  • ANSICONSOLE - ANSICONSOLE 格式會將資料欄調整為資料的寬度,以節省空間。它也會將資料欄加上底線,而非個別的輸出行。語法如下:

    %script

    SET SQLFORMAT ANSICONSOLE

  • INSERT - INSERT 格式會產生 INSERT 敘述句,可用來重新建立表格中的資料列。語法如下:

    %script

    SET SQLFORMAT INSERT

  • LOADER - LOADER 格式會產生以雙引號括住之字串值的管分隔輸出。資料欄名稱不會包含在輸出中。語法如下:

    %script

    SET SQLFORMAT LOADER

  • FIXED - FIXED 格式會產生固定寬度資料欄,所有資料均以雙引號括住。語法如下:

    %script

    SET SQLFORMAT FIXED

  • 預設 - DEFAULT 選項會清除所有先前的 SQLFORMAT 設定值,並返回預設輸出。語法如下:

    %script

    SET SQLFORMAT DEFAULT

    附註:

    只要輸入 SET SQLFORMAT,即可在沒有格式名稱 DEFAULT 的情況下執行此指令。
  • DELIMITED - DELIMITED 格式可讓您手動定義分界字元字串,以及以字串值括住的字元。語法如下:

    %script

    SQLFORMAT DELIMITED delimiter left_enclosure right_enclosure

    例如,

    %script

    SET SQLFORMAT DELIMITED ~del~ " "

    SELECT * FROM emp WHERE deptno = 20;

    輸出:

    "EMPNO"~del~"ENAME"~del~"JOB"~del~"MGR"~del~"HIREDATE"~del~"SAL"~del~"COMM"~del~"DEPTNO"

    在此範例中,分隔符號字串為 ~del~,而字串值 (如 EMPNO, ENAME, JOB 等) 則以雙引號括住。

5.6 在記事本段落中使用 Python 解譯器

Oracle Machine Learning 筆記型電腦支援多種語言。每個段落都與特定的解譯器相關聯。若要在記事本中執行 Python 指令,您必須先連線到 Python 解譯器。若要使用 OML4Py,您必須匯入 oml 模組。

在 Oracle Machine Learning UI 筆記型電腦中,您可以新增多個段落,每個段落都可以連線至不同的解譯器,例如 SQL 或 Python。您可以指定 %,後面接著要使用的解譯器來識別要使用的解譯器:sqlscriptrpythoncondamarkdown

此範例顯示如何:
  • 連線到 Python 解譯器以在筆記型電腦中執行 Python 指令
  • 匯入 Python 模組 - omlmatplotlibnumpy
  • 檢查 oml 模組是否已連線至 Oracle Database

附註:

z 是保留關鍵字,不得用作 Oracle Machine Learning UI 筆記型電腦中 %python 段落的變數。
假設:此範例假設您已建立一個名為 Py Note 的新筆記型電腦。
  1. 開啟 Py Note 筆記型電腦,然後按一下解譯器連結圖示。檢視可用的解譯器連結。
  2. 若要連線至 Python 解譯器,請輸入 %python
    您現在已準備好在筆記型電腦中執行 Python 指令碼。
  3. 若要使用 OML4Py 模組,您必須匯入 oml 模組。輸入下列 Python 命令以匯入 oml 模組,然後按一下執行圖示。或者,您可以按 Shift+Enter 鍵來執行記事本。
    import oml
  4. 若要驗證 oml 模組是否已連線至資料庫,請輸入:
    oml.isconnected()
    您的記事本連線之後,命令會傳回 TRUE.筆記本現在已連線至 Python 解譯器,並已準備好在您的筆記型電腦中執行 python 指令。

示範使用 Python 模組的範例 - matplotlibnumpy,並使用隨機資料繪製兩個長條圖。

  1. 輸入下列命令以匯入模組:
    %python
    import matplotlib.pyplot as plt
    import numpy as np
    • Matplotlib - 呈現圖表的 Python 模組
    • Numpy - 用於運算的 Python 模組
  2. 鍵入下列指令,以兩個長條圖來計算和轉譯資料。
    
    list1 = np.random.rand(10)*2.1
    list2 = np.random.rand(10)*3.0
    
    plt.subplot(1,2,1) # 1 line, 2 rows, index nr 1 (first position in the subplot)
    plt.hist(list1)
    plt.subplot(1, 2, 2) # 1 line, 2 rows, index nr 2 (second position in the subplot)
    plt.hist(list2)
    plt.show()
    在此範例中,指令匯入兩個 Python 模組,以計算和轉譯兩個長條圖 list1 和 list2 中的資料。
  3. 按一下執行
    包含圖表元件之段落的輸出區段會以兩個長條圖 - list1 和 list2 顯示結果,如螢幕擷取畫面所示。

5.6.1 關於 Oracle Machine Learning for Python

Oracle Machine Learning for Python (OML4Py) is a component of Oracle Autonomous Database, which includes Oracle Autonomous Data Warehouse (ADW), Oracle Autonomous Transaction Processing (ATP), and Oracle Autonomous JSON Database (AJD).透過使用 Oracle Machine Learning UI 筆記型電腦,您可以運用 Oracle Database 作為高效能運算環境,在資料上執行 Python 功能進行資料探索和準備。您可以透過 Autonomous Data Warehouse (ADW)、Autonomous Transaction Processing (ATP) 和 Autonomous JSON Database (AJD) 服務取得 Oracle Machine Learning 使用者介面 (UI)。

Oracle Machine Learning for Python (OML4Py) 讓開放原始碼的 Python 命令檔語言和環境符合企業和大數據的需求。Oracle Machine Learning for Python 是專為涉及大量資料的問題所設計,它將 Python 與 Oracle Autonomous Database 整合,包括其強大的資料庫內機器學習演算法,並啟用 Python 程式碼部署。

使用 Oracle Machine Learning for Python:
  • 使用 Python 運用 Oracle Database 作為高效能運算引擎,執行資料探索、資料分析及機器學習
  • 使用整合式 Python API 的模型使用資料庫內演算法建置及評估機器學習模型及評分資料
  • 透過具備資料平行與任務平行處理的 REST 介面部署使用者定義的 Python 函數

Python 解譯器使用 Python 3。8.5 處理 Oracle Machine Learning UI 筆記型電腦中的 Python 命令檔。若要使用解譯器,請在段落開頭指定 %python 指令。Python 解譯器支援下列 Python 模組:

  • cx_Oracle 7.3.0
  • cycler 0.10.0
  • joblib 0.14.0
  • kiwisolver 1.1.0
  • matplotlib 3.1.2
  • numpy 1.18.1
  • pandas 0.25.3
  • pyparsing 2.4.0
  • python-dateutil 2.8.1
  • pytz 2019.3
  • scikit_learn 0.22.1
  • scipy 1.4.1
  • six 1.13.0

5.7 在記事本段落中使用 R 解譯器

Oracle Machine Learning 筆記型電腦支援多種語言。每個段落都與特定的解譯器相關聯。若要在 Oracle Machine Learning 筆記型電腦中執行 R 函數,您必須先連線 R 解譯器。

在 Oracle Machine Learning UI 筆記型電腦中,您可以新增多個段落,每個段落都可以連線至不同的解譯器,例如 R、SQL 或 Python。您可以指定 %,後面接著要使用的解譯器來識別要使用的解譯器:sqlscriptrpythoncondamarkdown

此範例顯示如何:
  • 連線至 R 解譯器,在記事本中執行 R 命令。
  • 驗證 Oracle Autonomous Database 連線,以及
  • 載入 ORE 程式庫
  1. 若要連線至 R 解譯器,請在記事本段落開頭鍵入下列指令,然後按 Enter 鍵:
    %r
  2. 若要驗證資料庫連線,請輸入下列命令,然後按 Enter 鍵:
    ore.is.connected()
    連線記事本之後,命令會傳回 TRUE,如以下螢幕擷取畫面所示。筆記本現在已連線至 R 解譯器,您已準備好在筆記型電腦中執行 R 指令。

    圖 5-3 測試資料庫連線

    測試 Oracle Database 連線
  3. 若要匯入 R 程式庫,請執行下列指令:
    library(ORE)
    library(OREdplyr)
    順利載入套裝程式之後,便會顯示 ORE 套裝程式清單,如下圖所示。向下捲動以檢視整個清單。

    圖 5-4 載入 R 套裝軟體的指令

    載入 R 套件

5.7.1 關於 Oracle Machine Learning for R

Oracle Machine Learning for R (OML4R) 是 Oracle Machine Learning 產品系列的元件,整合了 R 與 Oracle Autonomous Database。

Oracle Machine Learning for R 讓開源 R 命令檔語言和環境可供企業和大數據使用。此服務專為處理大型和小型資料量的問題所設計。OML4R 可讓使用者針對統計、機器學習執行 R 命令和命令檔,並使用 R 語法對資料庫表格和視觀表執行視覺化分析。

Oracle Machine Learning for R is available in Oracle Machine Learning UI, currently available through Oracle Autonomous Database, including Autonomous Data Warehouse, Autonomous Transaction Processing, and Autonomous JSON Database.Oracle Machine Learning for R 內嵌 R 執行功能可透過 Autonomous Database 上的 SQL 和 REST API 部署。

使用 Oracle Machine Learning for R

  • 運用 Oracle Database 作為高效能運算環境,同時執行資料探索和資料準備。
  • 在衍生並受控制的 R 引擎資料庫上執行使用者定義的 R 函數,其具有系統支援的資料平行與任務平行功能。
  • 從 R 語言存取及使用強大的資料庫內機器學習演算法。

若要使用 R 解譯器,請在段落開頭指定 %r 指令。已安裝下列 R 套件以支援 Oracle Machine Learning for R

支援的 Oracle Machine Learning for R 專屬 R 套件

支援的 Oracle Machine Learning for R 專屬 R 套件為:

  • ORE_1.5.1
  • OREbase_1.5.1
  • OREcommon_1.5.1
  • OREdm_1.5.1
  • OREdplyr_1.5.1
  • OREeda_1.5.1
  • OREembed_1.5.1
  • OREgraphics_1.5.1
  • OREmodels_1.5.1
  • OREpredict_1.5.1
  • OREstats_1.5.1
  • ORExml_1.5.1

支援的開源 R 模組

Oracle Machine Learning for R 支援下列開源 R 套件:

  • R-4.0.5
  • Cairo_1.5-15
  • ROracle_1.4-1: DBI_1.1-2
  • arules_1.7-3
  • png_0.1-7
  • randomForest_4.6-14
  • statmod_1.4-36
  • dplyr_1.0-9:
  • R6_2.5.1
  • assertthat_0.2.1
  • cli_3.3.0
  • crayon_1.5.1
  • ellipsis_0.3.2
  • fansi_1.0.3
  • generics_0.1.2
  • glue_1.6.2
  • lazyeval_0.2.2
  • lifecycle_1.0.1
  • magrittr_2.0.3
  • pillar_1.7.0
  • pkgconfig_2.0.3
  • purrr_0.3.4
  • rlang_1.0.2
  • tibble_3.1.7
  • tidyselect_1.1.2
  • utf8_1.2.2
  • vctrs_0.4.1

Oracle Machine Learning for R 解譯器需求

R 解譯器需要以下開放原始碼的 R 套件:
  • Rkernel 1.3:
    • base64enc 0.1-3
    • cli 3.3.0
    • crayon 1.5.1
    • digest 0.6.29
    • ellipsis 0.3.2
    • evaluate 0.15
    • fansi 1.0.3
    • fastmap 1.1.0
    • glue 1.6.2
    • htmltools 0.5.2
    • IRdisplay 1.1
    • jsonlite 1.8.0
    • lifecycle 1.0.1
    • pbdZMQ 0.3-7
    • pillar 1.7.0
    • repr 1.1.4
    • rlang 1.0.2
    • utf8 1.2.2
    • uuid 1.1-0
    • vctrs 0.4.1
  • knitr 1.39:
    • evaluate_0.15
    • glue_1.6.2
    • highr_0.9
    • magrittr_2.0.3
    • stringi_1.7.6
    • stringr_1.4.0
    • xfun_0.31
    • yaml_2.3.5

5.8 在記事本段落中使用 Conda 解譯器

Oracle Machine Learning Notebooks 提供 Conda 解譯器,可讓管理員使用自訂的第三方 Python 和 R 程式庫建立 conda 環境。建立之後,您也可以使用 Conda 解譯器,在記事本階段作業內下載及啟用 Conda 環境。

Oracle Machine Learning 筆記型電腦支援多種語言。因此,您必須建立一個包含部分段落的記事本,才能執行 SQL 查詢和其他段落來執行 PL/SQL 命令檔。若要以不同的命令檔語言執行記事本,您必須先將記事本段落與個別的解譯器 (例如 SQL、PL/SQL、R、Python 或 Conda) 連線。

本主題說明如何開始在 Conda 環境中作業:
  • 連線至 Conda 解譯器
  • 下載並啟用 Conda 環境
  • 檢視 Conda 環境中的套裝程式清單
  • 執行 Python 函數以匯入 Iris 資料集,然後使用 seaborn 套裝程式進行視覺化
  1. 在段落開頭輸入 %conda 以連線至 Conda 解譯器,然後按 Enter 鍵。
    %conda
  2. 下一步,下載並啟用 Conda 環境。類型:
    download sbenv
    activate sbenv
    在此範例中,Conda 環境已下載並啟用。此範例中的 Conda 環境名稱為 sbenv下載並啟用 Conda 環境
  3. 您可以檢視 Conda 環境中的所有套裝程式。若要檢視套裝程式清單,請輸入 list
    seaborn 程式庫中的套裝程式清單
  4. 以下範例示範如何使用 seaborn 程式庫套裝程式進行視覺化。Seaborn 是以 matplotlib 為基礎的 Python 視覺化程式庫。它提供一個高階介面來繪製具吸引力的統計圖形。本範例
    • 匯入 Pandas 和 seaborn
    • 載入 Iris 資料集
    • 繪製資料點,亦即根據其尺寸的三種不同種類的伊里斯花 - Setosa、Virginica 和 Versicolor。它會建立散布圖
    類型:
    %python
    
    def sb_plot():
        import pandas as pd
        import seaborn as sb
        from matplotlib import pyplot as plt
        df = sb.load_dataset('iris')
        sb.set_style("ticks")
        sb.pairplot(df,hue = 'species',diag_kind = "kde",kind = "scatter",palette = "husl")
        plt.show()
    命令
  5. 在 Python 段落中執行該函數。
    類型:
    %python 
    sb_plot()
    使用 Seaborn Python 程式庫進行視覺化

5.8.1 關於 Conda 環境和 Conda 解譯器

Conda 是一個開放原始碼的套件和環境管理系統,可以運用包含第三方 Python 和 R 程式庫的環境。Oracle Machine Learning 使用者介面 (UI) 提供在記事本階段作業內安裝第三方 Python 和 R 程式庫的 conda 解譯器。

安裝在 Oracle Machine Learning Notebooks 中的第三方程式庫可用於:
  • 標準 Python
  • 標準 R
  • 從 Python、SQL 和 REST API 執行內嵌的 Oracle Machine Learning for Python Python
  • 從 R、SQL 和 REST API 內嵌的 R 執行 Oracle Machine Learning for R

開始在 Conda 環境中作業:

  1. 請確定 Conda 環境已儲存至物件儲存,或者安裝新版本以更新現有的套裝程式。

    附註:

    Conda 環境是由具備 OML_SYS_ADMIN 角色的 ADMIN 使用者所建立。管理員可管理環境的生命週期,包括新增或刪除環境中的套裝軟體以及移除環境。Conda 環境儲存在與 Autonomous Database 關聯的物件儲存的儲存桶中。
  2. 登入 Oracle Machine Learning UI 並下載 Conda 環境。若要下載 Conda 環境,請輸入:
    %conda 
    download myenv
  3. 啟用 Conda 環境。若要啟用 Conda 環境,請輸入:
    activate myenv

    附註:

    在指定的時間點只有一個作用中的 Conda 環境。
  4. 建立記事本,使用 Conda 解譯器在物件儲存中使用第三方程式庫。若要使用 Conda 解譯器,請在段落開頭輸入 %conda 以連線至 Conda 環境,以及使用 Python 的第三方程式庫。您可以在預先安裝的 Conda 環境之間切換。例如,您可以有一個使用圖表分析的環境,另一個用於 Oracle Machine Learning 分析的環境。
  5. 停用 Conda 環境。最佳做法是,完成機器學習分析之後,即可停用 Conda 環境。若要停用環境,請輸入:
    deactivate

5.8.2 Conda 解譯器命令

此表格列出 Conda 解譯器的命令。

Conda 解譯器命令

表格 5-1 Conda 解譯器命令

作業 命令 角色
建立 Conda 環境。 create -n <env_name> <python_version>
  • 管理
從指定的 conda 環境移除套裝軟體清單。它也是 conda uninstall 的別名。 remove -n <env_name> --all

附註:

Conda 環境會從使用者階段作業中刪除。
  • 管理
  • OML 使用者
列出使用者建立的本機環境。 env list
  • 管理
  • OML 使用者
移除使用者建立的本機環境。 env remove -n <env_name>
  • 管理
  • OML 使用者
列出所有安裝在作用中環境的套裝軟體和版本。 list
  • 管理
  • OML 使用者
啟動使用者建立的本機環境。 activate -n <env_name>
  • 管理
  • OML 使用者
停用目前的環境。 deactivate
  • 管理
  • OML 使用者
從公用 Conda 通道安裝外部套裝程式。 install -n <env_name> <package_name>
  • 管理
從 Conda 環境解除安裝特定套裝軟體。它也是 remove 的別名。 uninstall -n <env_name> <package_name>
  • 管理
顯示目前 conda 安裝的資訊 。 info
  • 管理
  • OML 使用者
檢視命令行說明。 COMMANDNAME --help
  • 管理
  • OML 使用者
將 Conda 環境上傳至物件儲存。

附註:

這是 Autonomous Database 特定命令。
upload --overwrite <env_name> --description 'some description' -t <name> <value>

附註:

您可以提供許多標籤。例如:-t <name1> <value1> -t <name2> <value2> ..
  • 管理
從物件儲存下載並解壓縮特定的 Conda 環境。

附註:

這是 Autonomous Database 特定命令。
download --overwrite <env_name>
  • 管理
  • OML 使用者
列出使用者可用的本機環境。 list-local-envs
  • 管理
  • OML 使用者
列出物件儲存中的所有 Conda 環境。

附註:

這是 Autonomous Database 特定命令。
list-saved-envs --installed-packages -e <env_name>
  • 管理
  • OML 使用者
刪除 Conda 環境。

附註:

這是 Autonomous Database 特定命令。
delete <env_name>

附註:

Conda 環境會從物件儲存中刪除。
  • 管理
將 conda 套裝軟體更新為最新的相容版本。 update
  • 管理
升級目前的 conda 套裝軟體。它也是 conda update 的別名。 upgrade
  • 管理
搜尋套裝軟體並顯示相關資訊。輸入為 MatchSpec,這是 conda 套裝軟體的查詢語言。 search
  • 管理
  • OML 使用者

5.9 呼叫 Markdown 解譯器並從 Markdown 純文字產生靜態 HTML

使用 Markdown 解譯器,並從 Markdown 純文字產生靜態 HTML。

若要呼叫 Markdown 解譯器,並從 Markdown 純文字產生靜態 html:
  1. 在筆記型電腦中,鍵入 %md 並按 Enter 鍵。
  2. 輸入 "Hello World!",然後按一下「執行」。就會產生靜態 html 文字,如下面的螢幕擷取畫面所示。
    靜態 HTML 文字
  3. 您可以用粗體格式化文字。如果要以粗體顯示文字,請在兩個星號組中寫入相同的文字,然後按一下「執行 (Run)」。
    文字以粗體顯示
  4. 若要以斜體顯示文字,請在星號組或底線組中寫入相同的文字 (如螢幕擷取畫面所示),然後按一下「執行 (Run)」。
    斜體文字
  5. 若要在項目符號清單中顯示文字,請在文字前面加上 * (星號),如下面的螢幕擷取畫面所示:
    項目符號點中的文字
  6. 若要在 heading1、標題 2 和標題 2 中顯示文字,請在文字前面加上 # (雜湊),然後按一下「執行」。對於 H1、H2 和 H3,您必須分別在 1、2 和 3 個雜湊前面。
    標題

5.10 使用速記本

Scratchpad 可讓您輕鬆按一下即可存取筆記型電腦,以執行可重新命名的 SQL 敘述句、PL/SQL、R 以及 Python 命令檔。您可以從 Oracle Machine Learning 使用者介面 (UI) 首頁取得 Scratchpad。

附註:

Scratchpad 是一般筆記型電腦,預先填入四個段落 - %sql, %script,%python%r.

執行命令檔之後,Scratchpad 會自動以記事本頁面上的預設名稱 Scratchpad 儲存為記事本。您稍後可以在「記事本」頁面存取它。您可以同時執行所有段落或一次執行一個段落。
  1. 若要開啟和使用速記本,請按一下快速動作下 Oracle Machine Learning UI 首頁中的速記本。即會開啟速記本。程式碼速記本包含三個段落,每個段落各有下列指令:
    • %sql - 可讓您執行 SQL 敘述句。
    • %script - 可讓您執行 PL/SQL 命令檔。
    • %python - 可讓您執行 Python 程序檔。
    • %r - 可讓您執行 R 命令檔。

    圖 5-5 程式碼速記本

    暫存器
  2. 要執行 SQL Script:
    1. 使用 %sql 指令移至段落。
    2. 輸入下列命令,然後按一下「執行 (Run)」圖示。或者,您可以按 Shift+Enter 鍵來執行段落。
      SELECT * FROM SH.SALES;
    在此範例中,SQL 敘述句會從表格 SALES 擷取產品銷售的所有相關資料。在這裡,SH 是綱要名稱,而 SALES 是表格名稱。Oracle Machine Learning UI 會從資料庫擷取相關資料,並以列表化格式顯示。

    圖 5-6 程式碼速記本中的 SQL 敘述句

    Scratchpad 中的 SQL 敘述句
  3. 若要執行 PL/SQL 命令檔,請執行下列操作:
    1. 使用 %script 指令移至段落。
    2. 輸入下列 PL/SQL 命令檔,然後按一下「執行 (Run)」圖示。或者,您可以按 Shift+Enter 鍵來執行段落。
      CREATE TABLE small_table
      	(
      	 NAME VARCHAR(200),
      	 ID1 INTEGER,
      	 ID2 VARCHAR(200),
      	 ID3 VARCHAR(200),
      	 ID4 VARCHAR(200),
      	 TEXT VARCHAR(200)
      	);
      
      	BEGIN 
      		FOR i IN 1..100 LOOP
      				INSERT INTO small_table VALUES ('Name_'||i, i,'ID2_'||i,'ID3_'||i,'ID4_'||i,'TEXT_'||i);
      		END LOOP;
      		COMMIT;
      	END;
      PL/SQL 命令檔已順利建立表格 SMALL_TABLE。此範例中的 PL/SQL 命令檔包含兩個部分:
      • 命令檔的第一個部分包含要建立名為 small_table. 之表格的 SQL 敘述句 CREATE TABLE它會定義表格名稱、表格資料欄、資料類型以及大小。在此範例中,資料欄名稱為 NAME, ID1, ID2, ID3, ID4,TEXT.
      • 程序檔的第二部分以關鍵字 BEGIN. 開頭它會將 100 個資料列插入表格 small_table.

      附註:

      以主索引鍵使用 CREATE 敘述句時,會失敗並顯示錯誤訊息「權限不足」。資料庫中的鎖定設定檔造成此錯誤。如果發生此錯誤,請聯絡資料庫管理員或指定的安全性管理員,以授予必要的權限。

      圖 5-7 程式碼速記本中的 PL/SQL 命令檔

      程式碼速記本中的 PL/SQL 程序
  4. 執行 python 命令檔:
    1. 若要使用 OML4Py,您必須先匯入 oml 模組。oml 是 OML4Py 模組,可讓您操控 Oracle Database 物件 (例如表格與檢視)、使用內嵌的執行呼叫使用者定義的 Python 函數,以及使用資料庫機器學習演算法。使用 %python 指令移至段落。若要匯入 oml 模組,請輸入下列命令,然後按一下「執行」圖示。或者,您可以按 Shift+Enter 鍵來執行段落。
      import oml
    2. 若要檢查 oml 模組是否已連線至 Oracle Database,請輸入 oml.isconnected(),然後按一下「執行」圖示。或者,您可以按 Shift+Enter 鍵來執行段落。
      oml.isconnected()
    3. 您現在可以執行 Python 命令檔。輸入下列 Python 程式碼,然後按一下執行圖示。或者,您可以按 Shift+Enter 鍵來執行段落。
      import matplotlib.pyplot as plt
      import numpy as np
      
      list1 = np.random.rand(10)*2.1
      list2 = np.random.rand(10)*3.0
      
      plt.subplot(1,2,1) # 1 line, 2 rows, index nr 1 (first position in subplot)
      plt.hist(list1)
      plt.subplot(1, 2, 2) # 1 line, 2 rows, index nr 2 (second position in subplot)
      plt.hist(list2)
      plt.show()
      在此範例中,命令會匯入兩個 python 套裝程式,以 list1list2. 的兩個長條圖來計算和轉譯資料。Python 套裝軟體包括:
      • Matplotlib - 呈現圖表的 Python 套裝軟體。
      • Numpy - 用於計算的 Python 套裝軟體。

      圖 5-8 Scratchpad 中的 Python 程序檔

      Scratchpad 中的 Python 命令檔

      python 引擎會產生 list1list 2 的兩個圖表,如下螢幕擷取畫面所示。

  5. 在 Scratchpad 中建立並執行命令檔之後,Scratchpad 會自動以記事本頁面上的名稱預設名稱為 Scratchpad 儲存為記事本。您可以編輯記事本的名稱,然後按一下編輯以新名稱儲存記事本。

5.11 在 Oracle Machine Learning 中協作

有兩位以上的使用者可以與其他使用者協作並共用 Oracle Machine Learning 使用者介面 (UI) 筆記型電腦。

您可以透過下列方式協作:

  • 授予其他使用者的工作區存取權
  • 使用匯出選項
  • 使用 Oracle Machine Learning UI 筆記型電腦範本

教學課程圖示 Oracle Machine Learning 中協作