清除遺漏的資料元件

本文描述 Azure Machine Learning 設計工具中的一個元件。

您可以使用這個元件來移除、取代或推斷遺漏值。

資料科學家通常會檢查資料的遺漏值,然後執行各種作業來修正資料或插入新值。 這類清除作業的目標是要防止在定型模型時,資料遺失將會造成的問題。

此元件支援「清理」遺漏值的多種作業,包括:

  • 以預留位置、平均數或其他值取代遺漏值
  • 完全移除有遺漏值的資料列和資料行
  • 根據統計方法推斷值

使用此元件不會變更您的來源資料集。 相對地,此元件會在您的工作區中建立新的資料集,可用於後續的工作流程。 您也可以儲存已清除的新資料集以供重複使用。

此元件也會輸出用來清除遺漏值的轉換定義。 您可以使用套用轉換元件,在具有相同結構描述的其他資料集上重複使用此轉換。

如何使用清除遺漏的資料

此元件可讓您定義清除作業。 您也可以儲存清除作業,以便之後套用至新的資料。 請參閱下列章節,了解如何建立和儲存清理流程:

重要

處理遺漏值所使用的清除方法可能會大幅影響您的結果。 建議您實驗不同的方法。 請同時考慮使用特定方法的理由以及結果的品質。

取代遺漏值

每當您將清除遺漏的資料元件套用至一組資料時,系統就會對您選取的所有資料行套用相同的清除作業。 因此,如果您需要使用不同的方法來清除不同的資料行,請使用元件的個別執行個體。

  1. 清除遺漏的資料元件新增至您的管道,並連接有遺漏值的資料集。

  2. 針對要清除的資料行,選取包含要變更遺漏值的資料行。 您可以選擇多個資料行,但所有選取的資料行都必須使用相同的取代方法。 因此,字串資料行和數值資料行通常需要分開清除。

    例如,若要檢查所有數值資料行中的遺漏值:

    1. 選取 [清除遺漏的資料] 元件,並按一下元件右側面版中的 [編輯資料行]。

    2. 針對包含,從下拉式清單中選取 [資料行類型],接著選取 [數值]。

    您選擇的任何清除或取代方法必須適用於選取的所有資料行。 如果任何資料行中的資料與指定的作業不相容,元件就會傳回錯誤並停止管線。

  3. 針對最小遺漏值比率,指定要執行作業所需的遺漏值最小數目。

    您可以使用此選項搭配最大遺漏值比率,定義在資料集上執行清除作業的條件。 如果遺漏值的資料列太多或太少,便無法執行此作業。

    您輸入的數目為遺漏值在資料行所有值中所佔的比率。 依預設,最小遺漏值比率屬性會設為 0。 這表示即使只有一個遺漏值,系統也會清除遺漏值。

    警告

    每個資料行都必須符合此條件,才能套用指定的作業。 例如,假設您選取三個資料行,然後將遺漏值的最小比率設為 .2 (20%),但實際上只有一個資料行有 20% 的遺漏值。 在此情況下,清除作業只會套用至遺漏值超過 20% 的資料行。 因此,其他資料行將不會變更。

    如果您對遺漏值是否已變更有所疑慮,請選取 [產生遺漏值指標資料行] 選項。 資料集會附加資料行,以指出每個資料行是否符合最小和最大範圍的指定條件。

  4. 針對最大遺漏值比率,指定要執行作業所需的遺漏值最大數目。

    例如,您可能只希望資料列所包含的遺漏值在 30% 以下時,才執行遺漏值替代,但如果資料列的遺漏值超過 30%,則將這些值保留原狀。

    您可以定義數目為遺漏值,以資料行中的所有值的比例。 依預設,最大遺漏值比率會設為 1。 這表示即使資料行遺漏的值為 100%,系統也會清除遺漏值。

  5. 針對清除模式,請選取下列其中一個選項以替代或移除遺漏值:

    • 自訂的替代值:使用此選項來指定預留位置值 (例如 0 或 NA),以套用至所有遺漏值。 您指定的取代值必須與資料行的資料類型相容。

    • 以平均值取代:計算資料行的平均值,並使用平均值做為資料行中每個遺漏值的取代值。

      只適用於具有整數、 Double、 資料行或 Boolean 資料型別。

    • 以中位數取代:計算資料行的中位數,並使用中位數做為資料行中任何遺漏值的取代值。

      只適用於具有整數、 Double、 資料行或 Boolean 資料型別。

    • 以眾數取代:計算資料行的眾數,並將眾數做為資料行中每個遺漏值的取代值。

      適用於 Integer、 Double、 布林值或 Categorical 資料類型的資料行。

    • 移除整個資料列:完全移除資料集裡有一個或多個遺漏值的任何資料列。 如果遺漏值可視為隨機遺漏,此方法非常有用。

    • 移除整個資料列:完全移除資料集裡有一個或多個遺漏值的任何資料行。

  6. 若您已選取自訂的取代值選項,則可以使用取代值選項。 請輸入新的值,做為資料行中所有遺漏值的取代值。

    請注意,您只能在包含整數、雙精度浮點數、布林值或字串資料型別的資料行中使用此選項。

  7. 產生遺漏值指標資料行:如果您想要輸出資料行中的值是否符合遺漏值清除條件的一些指標,請選取此選項。 當您要設定新的清除作業,並想要確保其按照計劃順利運作時,此選項特別有用。

  8. 提交管線。

結果

元件會傳回兩個輸出:

  • 已清除的資料集:包含所選資料行的資料集,這些資料行包含已根據指定方式處理的遺漏值,以及指標資料行 (如果選取了該選項)。

    未選取要清除的資料行也會「傳遞」。

  • 清除轉換:用於清除的資料轉換,可儲存在您的工作區中,之後再套用至新資料。

將已儲存的清理作業套用至新的資料

如果您需要經常重複清除作業,建議您將資料清理的配方儲存為轉換,以重複使用相同的資料集。 如果您必須經常重新匯入,然後清除具有相同架構的資料,則儲存清除轉換非常實用。

  1. 套用轉換元件新增至您的管線。

  2. 新增您想要清除的資料集,並將資料集連接至右側的輸入連接埠。

  3. 在設計工具的左側窗格中,展開 [轉換] 群組。 找到已儲存的轉換,然後拖曳到管線中。

  4. 將已儲存的轉換連接至套用轉換的左側輸入連接埠。

    在套用儲存的轉換時,您無法選取要套用轉換的資料行。 這是因為轉換已經定義,並且會自動套用至原始作業中指定的資料行。

    不過,假如您在數值資料行的子集上建立了轉換。 您可以將此轉換套用至混合資料行類型的資料集,而不會引發錯誤,因為系統只會變更相符數值資料行中的遺漏值。

  5. 提交管線。

後續步驟

請參閱 Azure Machine Learning 可用的元件集