清理叢集

執行參數清除以判斷群集模型的最佳設定

類別: 機器學習/定型

注意

適用于 : Machine Learning Studio (傳統)

此內容僅適用于 Studio (傳統) 。 Azure Machine Learning 設計工具中已新增類似的拖放模組。 若要深入瞭解 這兩個版本,請參閱這篇文章

模組概觀

本文說明如何使用 Azure Machine Learning Studio (傳統) 中的「 整理 叢集」模組,利用參數清除來定型模型。 參數掃描是一種在給定一組資料的情況下,尋找模型最佳超參數的方法。

整理 叢集」模組是專門針對群集模型所設計。 您會提供叢集模型做為輸入,以及資料集。 模組會逐一查看您指定的一組參數,並使用不同的參數來建立和測試模型,直到它找到具有最佳群集集的模型為止。 它會自動計算最佳設定,然後使用該設定來訓練模型。

它也會傳回一組描述已測試之模型的計量,以及一組根據最佳模型的叢集指派。

如何設定清理叢集

  1. 在 Studio (傳統) 中,將 清理 叢集模組新增至您的實驗。 您可以在 機器學習 服務的 [ 定型 ] 類別中找到此模組。

  2. K 意指 叢集模組和訓練資料集新增至實驗,並將它們連接到「 清理 叢集」模組。

  3. 設定 K 意指 叢集模組以使用參數清理,如下所示:

    1. 將 [ 建立定型模式] 設定為 [ 參數範圍]。

    2. 使用 範圍 產生器 (或手動為每個參數輸入多個值) ,以設定要反復查看的值範圍。

    3. 清理的初始化:指定 K 表示演算法應該如何尋找初始叢集距心。 提供多個演算法來隨機初始化和測試距心。

      如果您的訓練資料集包含標籤資料行,即使有部分值,您也可以使用這些值來進行距心。 使用 [ 指派標籤模式] 選項來指出如何使用標籤值。

      提示

      您的標籤資料行必須事先標示為如此。 如果您收到錯誤,請嘗試使用 編輯中繼資料 來識別包含標籤的資料行。

    4. 要清除的種子數目:指出執行參數清除時,要嘗試多少不同的隨機啟動種子。

    5. 選擇測量叢集相似性時要使用的度量。 如需詳細資訊,請參閱「 K 意指 叢集」主題。

    6. 反復專案:指定 K 表示演算法應該執行 的反覆運算總數。 這些反復專案是用來優化叢集距心的選取專案。

    7. 如果您使用標籤資料行來初始化清除,請使用 [ 指派標籤模式] 選項來指定如何處理 [標籤] 資料行中的值。

      • 填滿遺漏值:如果標籤資料行包含一些遺漏值,請使用此選項,根據資料點指派給的叢集來插補類別。

      • 從最接近中心覆寫:使用最接近叢集中心的點標籤,為指派給叢集的所有資料點產生標籤值。

      • 略過標籤資料行:如果您不想要執行上述任何一項作業,請選取此選項。

  4. 在 [ 清理 叢集] 模組中,使用 [ 測量群集結果的度量] 選項,指定評估定型的群集模型時所使用的數學方法:

    • 簡化的側面:此計量會在每個叢集中捕捉資料點的 tightness。 其計算方式是將每個資料列的相似性與其叢集的相似性結合,並將其與下一個最接近叢集的相似性結合在一起。 如果叢集只有1個數據列,則會改為計算與下一個最接近的距心比例的距離,以避免得到0作為結果。 「簡化」指的是將 [叢集距心] 的距離用作簡單相似性量值的事實。 一般來說,分數越高越好。 資料集的平均值表示資料已叢集化的程度。 如果叢集太多或太少,某些叢集的側面緣值會比其他叢集低。 如需詳細資訊,請參閱 這篇維琪百科文章

    • Davies-Bouldin:此計量的目標是要識別最小的一組最小散佈的群集。 由於度量定義為每個群集在叢集分隔上的散佈比例,因此較低的值表示叢集比較好。 最佳的群集模型可將此計量降至最低。 若要計算 Davies-Bouldin 計量,距心距離的平均資料列會針對每個群集計算。 針對每一組群集,這些平均值的總和會除以距心之間的距離。 針對每個叢集選取所有其他叢集的最大值,以及所有叢集的平均值。 如需詳細資訊,請參閱 這篇維琪百科文章

    • Dunn:此度量的目標是要識別最小的一組最精簡的叢集。 一般來說,此計量較高的值表示更好的群集。 若要計算 Dunn 計量,最短的距心到距心距離會除以每個資料點到其叢集中心的最大距離。 如需詳細資訊,請參閱 這篇維琪百科文章

    • 平均偏差:此計量的計算方式是將每個資料點的平均距離從其叢集中心取得。 此值會隨著距心數目的增加而減少;因此,當您進行掃描以找出距心的數目時,這並不有用。 當您選擇最適合的距心初始化種子時,建議使用此度量。

  5. 指定參數清除模式:選取一個選項來定義定型時所使用的值組合,以及選擇這些值的方式:

    • 整個方格:會嘗試並評估指定範圍內的所有值。 此選項的計算成本通常較高。

    • 隨機 清除:使用此選項可限制執行的數目。 您可以使用從允許的參數值範圍中隨機播放的值組合來建立和評估群集模型。

  6. 隨機清理的執行數目上限:如果您選擇 隨機 清除選項,請設定此選項。 輸入一個值,以在測試隨機播放的參數集時,限制反覆運算次數上限。

    警告

    K 表示叢集 模組的反復專案參數有 不同的用途,且不受此設定影響:它會將每個資料點的平均距離降至最低,藉此將每個資料點的平均距離降至其叢集距心,以限制對改善叢集所進行之資料的傳遞數目。 相反地,會執行「 整理 叢集模組」參數所定義的反復專案,以嘗試不同的隨機距心初始化。 這項最低化問題已知為 NP-hard;因此,嘗試數個隨機植入可能會產生更好的結果。

    如果您選取隨機清除,請使用 [ 隨機種子 ] 選項來指定要開始建立距心的初始隨機種子值。 使用參數清除來建立群集模型的其中一個優點是,您可以輕鬆地測試多個種子值,以降低對初始初始值值的叢集模型的已知敏感性。

  7. 按一下 [資料 行集],然後選擇要在建立叢集時使用的資料行。 根據預設,在建立和測試群集模型時,會使用所有特徵資料行。

    您可以包含標籤資料行(如果存在於資料集內)。 如果有標籤,您可以使用它來引導選取距心、使用標籤作為功能,或忽略標籤。 針對處理 Kmeans 叢集模組的標籤設定這些選項,如上述步驟3所述。

  8. 僅檢查 [附加] 或 [取消 核取結果]:使用此選項來控制要在結果中傳回的資料行。

    根據預設,此模組會連同結果一起傳回訓練資料集的原始資料行。 如果您取消選取此選項。 只會傳回叢集指派。

  9. 將 [ 將資料指派 給叢集] 模組新增至您的實驗。

  10. 將標示為「最佳定型模型」的輸出,連接至將 資料指派給群集定型模型 輸入。

  11. 加入用於評估的資料集,並將它連接到 [將資料指派給叢集] 模組的 資料集 埠。

  12. 新增「 評估模型 」模組,然後將其連接以 將資料指派給叢集。 (選擇性)您可以連接評估資料集。

  13. 執行實驗。

結果

清理叢集模組會輸出三個不同的結果:

  • 最佳的定型模型。 您可以用於計分和評估的定型模型。 以滑鼠右鍵按一下並選取 [ 另存為定型的模型 ],以抓取優化的群集模型並將其用於計分。

  • 結果資料集。 一組叢集指派,以優化的模型為基礎。

    資料行名稱 描述
    指派 這個值表示已指派每個資料點的叢集。 定型模型中的叢集會標示為以0為基礎的索引。
    DistancesToClusterCenter 否1

    DistancesToClusterCenter 否。 n
    這個值表示資料點在每個叢集中央的距離。

    針對在優化模型中建立的每個叢集建立資料行。

    您可以使用 距心數目 選項來限制群集數目。

    根據預設,您可以從訓練資料集傳回資料行以及結果,讓您更輕鬆地查看和解讀叢集指派。

  • 清理結果。 包含下列群集評估計量的資料集:

    資料行名稱 描述
    群集度量 值,表示該執行的平均群集品質。 執行會依最佳分數排序。
    距心數目 在此特定的清除反復專案中建立的群集數目
    執行的索引 每個反復專案的識別碼

    提示

    針對叢集度量傳回的值應該以不同的方式解釋,視您在設定清除時所選擇的計量而定。 針對預設計量( 簡化的側面 程式),較高的分數較高。 針對 Davies-Bouldin,分數愈低越好。

範例

若要查看使用 K 表示叢集的參數清除範例,請參閱 AZURE AI 資源庫

技術說明

本節包含秘訣和實行詳細資料。

優化群集模型

群集模型的品質和精確度可能會受到對初始參數的選擇(例如距心數目和用來初始化叢集的種子值)造成強烈的影響。 為了降低對初始參數的這項敏感度, 分析 叢集模組可協助您找出最佳的參數組合。 您可以指定要測試的參數範圍,而此模組會自動建立及測試多個模型,最後選取最佳的群集數目。

若要建立參數清除,您也必須設定 K 表示 叢集模組以使用參數清理。 您可以指定清除會反覆運算所有可能的參數組合,或使用隨機的參數組合。 您也可以在反復模型建立和測試程式期間,選擇數個標準計量中的其中一個來測量距心的精確度。 在指定的反復專案數目完成之後,模組會根據選取的計量選取最佳的群集數目,並輸出您可用來評估結果的報表。

使用提示

  • 在某些情況下,您可能已經知道預期要尋找的叢集數目。 例如,您的資料可能會有可用來引導選取距心的類別標籤。 在此情況下,您可以設定 K 表示 叢集模組,以使用標籤資料行來引導選取初始距心。

  • 如果您知道某些預期的叢集,但不確定有多少個叢集是最佳的,請將距心數目設定為大於已知標籤值數目的數位。 「 整理 叢集」模組會建立已知資料點的叢集,然後判斷剩餘資料點的最佳額外叢集數目。

處理標籤資料行中的遺漏值

有數種方式可處理標籤資料行中的遺漏值。 例如,假設您有影像分類工作,而且只有部分影像已標記。

您可以使用 [標籤] 資料行引導選取距心,但指定使用叢集指派來填入任何遺漏的標籤。 換句話說,現有的標籤值不會變更,但會填入遺漏的標籤。

或者,針對指派給叢集的所有資料點,您可以使用最能代表叢集的單一標籤來覆寫現有的標籤。 若要瞭解此選項的實用程度,請想像您使用的影像資料具有非常詳細的標籤,例如不同的狗品種。 使用這個選項,您可以使用單一類別標籤 "dog" 來取代所有詳細標籤。

記錄檔中的種子值

[定型群集模型] 模組所產生的記錄檔會出現,指出所有的 [K-------------------- ----------------表示]

事實上,執行會使用使用者提供的種子來產生每次執行時都不同的亂數字序列。 因此,只需要一個種子來建立所有隨機產生的數位。

記錄檔的意圖指出當使用者未在 [ 屬性 ] 窗格中指定種子時,模組所使用的種子。

預期的輸入

名稱 類型 Description
未定型的模型 ICluster 介面 未定型的群集模型
資料集 資料表 輸入資料來源

模組參數

名稱 類型 選擇性 預設 描述
測量群集結果的度量 群集度量 簡化的側面 Davies-Bouldin、Dunn、平均偏差 必要 簡化的側面 選取用來評估迴歸模型的度量
指定參數掃掠模式 清理方法 整個方格或隨機清理 必要 隨機掃掠 在參數空間上掃掠整個方格,或使用有限的取樣次數來掃掠
資料行集 ColumnSelection 必要 資料行選取模式
隨機掃掠執行次數上限 整數 [1; 10000] 只有在 SweepingMode 設定為隨機清除時才能使用 5 設定使用隨機清理時要執行的執行數目上限
隨機種子 整數 只有在 SweepingMode 設定為隨機清除時才能使用 0 提供值以植入亂數產生器,以進行隨機清理
只檢查附加或取消檢查結果 Boolean 必要 選取即可指出輸出資料集必須包含附加指派資料行的輸入資料集。 取消選取表示只輸出指派資料行。

輸出

名稱 類型 Description
最佳的定型模型 ICluster 介面 定型的群集模型
結果資料集 資料表 指派資料行或僅指派資料行所附加的輸入資料集
掃掠結果 資料表 針對叢集清理執行產生的計量記錄

例外狀況

例外狀況 描述
錯誤 0003 如果一或多個輸入為 Null 或空白,就會發生例外狀況。

如需 Studio (傳統) 模組特定的錯誤清單,請參閱 機器學習錯誤碼

如需 API 例外狀況的清單,請參閱 機器學習 REST API 錯誤碼

另請參閱

K 表示群集
將資料指派給群集
機器學習/訓練
機器學習 / 初始化模型 / 群集