移除重複的資料列

重要

Machine Learning 工作室 (傳統) 的支援將於 2024 年 8 月 31 日結束。 建議您在該日期之前轉換成 Azure Machine Learning

自 2021 年 12 月 1 日起,您將無法建立新的 Machine Learning 工作室 (傳統) 資源。 在 2024 年 8 月 31 日之前,您可以繼續使用現有的 Machine Learning 工作室 (傳統) 資源。

ML 工作室 (傳統) 文件即將淘汰,未來將不再更新。

從資料集移除重複的資料列

類別: 資料轉換/操作

注意

適用于僅限機器學習 Studio (傳統)

Azure Machine Learning 設計工具中提供類似的拖放模組。

模組概觀

本文描述如何使用機器學習 Studio (傳統) 中的 [移除重復資料列] 模組,從資料集移除可能的重複專案。

例如,假設您的資料如下所示,代表多筆的患者記錄。

PatientID 縮寫 性別 年齡 已入院
1 F.M. M 53 一月
2 F.A.M. M 53 一月
3 F.A.M. M 24 一月
3 F.M. M 24 二月
4 F.M. M 23 二月
F.M. M 23
5 F.A.M. M 53

顯然,此範例中有多個資料行可能有重複的資料。 而實際上是否為重複項,取決於您對資料的瞭解。

  • 例如,您可能知道有許多患者的姓名相同。 您不會刪除使用任何姓名資料行的重複項,而只刪除識別碼 資料行的重複項。 如此一來,就只會篩選出識別碼值重複的資料列,不論患者的姓名是否相同。

  • 或者,您可能會決定允許識別碼欄位中有重複專案,並使用 fileds 的其他組合來尋找唯一的記錄,例如名字、姓氏、年齡和性別。

若要設定準則判定資料列是否重複,您必須指定單一資料行或一組資料行,作為索引鍵使用。 只有當所有索引鍵資料行中的值相等時,才會將兩個資料列視為重複項。

當您執行模組時,它會建立候選資料集,並傳回在您指定的一組資料行之間沒有重複專案的一組資料列。

重要

源資料集未改變;此模組會根據您指定的準則,建立篩選以排除重複專案的新資料集。

如何使用移除重複資料列

  1. 將模組新增至您的實驗。 您可以在 [資料轉換]、[操作] 下找到 [移除重復資料列] 模組。

  2. 連接您想要檢查是否有重複資料列的資料集。

  3. 在 [屬性] 窗格中,[索引鍵資料行選取項目篩選運算式] 下方,按一下 [啟動資料行選取器],選擇用於找出重複項的資料行。

    在此內容中,索引鍵 不代表唯一的識別碼。 系統會將您使用 [資料行選取器] 選取的所有資料行,皆指定為索引鍵資料行。 所有未選取的資料行都會被視為非索引鍵資料行。 您選取作為索引鍵的資料行組合,會決定記錄的唯一性。 (將它視為使用多個相等聯結的 SQL 語句。 )

    範例:

    • 「我想要確保識別碼是唯一的」:僅選擇 [識別碼] 資料行。
    • 「我想要確保名字、姓氏和識別碼的組合是唯一的」:選取這三個資料行。
  4. 使用 [保留第一個重複資料列] 核取方塊以指出找到重複項時要傳回的資料列:

    • 若選取此選項,則會傳回第一個資料列,並捨棄其他資料列。
    • 若未選取此選項,則會在結果中保留最後一個重複的資料列,並捨棄其他資料列。

    如需如何處理 missinng 值的相關資訊,請參閱 技術 提示一節。

  5. 執行實驗,或按一下模組並選取 [ 執行選取]。

  6. 若要檢查結果,請以滑鼠右鍵按一下模組,選取 [ 結果資料集],然後按一下 [ 視覺化]。

提示

如果結果很難理解,或是您想要排除一些考慮的資料行,則可以使用 [資料集] 模組中的 [ 選取資料行 ] 來移除資料行。

範例

若要查看如何使用此模組的範例,請參閱 Azure AI 資源庫

  • Breast 癌症偵測移除重複 的資料列會在加入特徵資料行之後用來合併定型和測試資料集。

  • 電影建議:使用 移除重複 的資料列,以確保每一部影片只有一個使用者 等。

  • Twitter 情感分析移除重複 的資料列只會套用至識別碼和熱門程度資料行,以確保每部影片只有一個 序數排名 值。 換句話說,電影不能同時為第1和第三個,所以即使使用者以不同方式排列電影的順序,也會使用單一值。

技術說明

本節包含實作詳細資料、提示和常見問題集的解答。

實作詳細資料

此模組的運作方式是在輸入資料集的所有資料列中執行迴圈。 它會將第一次出現索引鍵資料行值唯一組合的所有資料列,收集到候選的輸出資料集。

不論資料列篩選的結果如何,都會保留資料行陣列類型。 您無法濾除無效值來強制陣列為特定的資料類型,資料行陣列類型是根據資料行中的所有值。 篩選遺漏值時,這項限制也適用。

用於比較資料值的演算法是強制雜湊。

遺漏值

輸入資料集的非索引鍵資料行和索引鍵資料行中可能會有遺漏值。 這些規則適用于遺漏值:

  • 遺漏值在索引鍵資料行中視為有效的值。 這兩個索引鍵中可能會有遺漏值。

  • 在疏鬆資料集中,遺漏值只有等於疏鬆值的預設表示時,才會被視為相等。

  • 在索引鍵資料行中,一個遺漏值等同於其他遺漏值,但不等於非遺漏值。

預期的輸入

名稱 類型 說明
資料集 資料表 輸入資料集

模組參數

名稱 範圍 類型 預設 描述
索引鍵資料行選取項目篩選運算式 任意 ColumnSelection 選擇搜尋重複項目時要使用的索引鍵資料行。
保留第一個重複的資料列 任意 Boolean true 指出是否要保留一組重複項目的第一個資料列,而捨棄其他資料列。 如果為 False,則會保留遇到的最後一個重複資料列。

輸出

名稱 類型 說明
結果資料集 資料表 篩選的資料集

例外狀況

例外狀況 描述
錯誤 0003 如果一個或多個輸入資料集為 Null 或空白,則會發生例外狀況。
錯誤 0020 如果傳遞給模組的某些資料集的資料行數目太少,就會發生例外狀況。
錯誤 0017 如果一或多個指定的資料行具有目前的模組不支援的型別,就會發生例外狀況。

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

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

另請參閱

操作
A-Z 模組清單