資料集:資料特性

資料集是一系列示例

許多資料集會將資料儲存在表格 (格線) 中,例如以逗號分隔值 (CSV) 格式儲存,或直接從試算表或資料庫表格中儲存。資料表是機器學習模型的直覺輸入格式。您可以將表格的每一列視為一個示例,每一欄則視為潛在特徵或標籤。不過,資料集也可以從其他格式 (包括記錄檔和通訊協定緩衝區) 衍生而來。

無論格式為何,機器學習模型的品質取決於訓練資料的品質。本節將探討主要資料特性。

資料類型

資料集可能包含多種資料類型,包括但不限於:

  • 數值資料,請參閱單獨單位
  • 類別型資料,請參閱單獨單元
  • 人類語言,包括個別字詞和句子,甚至整份文字文件
  • 多媒體 (例如圖片、影片和音訊檔案)
  • 其他機器學習系統的輸出內容
  • 嵌入向量,我們會在後續單元介紹

資料量

根據大致的經驗法則,模型訓練時,樣本數量至少應比可訓練參數多一個數量級 (或兩個數量級)。不過,優質模型通常會以大量的例子進行訓練。

特徵較少的大型資料集訓練的模型,通常會比以特徵較多的迷你資料集訓練的模型表現優異。Google 過去曾成功在大量資料集上訓練簡單的模型。

不同的機器學習程式需要不同的資料集,因此所需的範例數量可能差異極大,對於一些相對簡單的問題,幾十個範例可能就足夠了。對於其他問題,一兆個示例可能不足以解決。

如果您要調整已針對相同結構定義的大量資料訓練的現有模型,就能從小型資料集中取得良好結果。

資料的品質和可靠性

大家都喜歡高品質的內容,但品質這個概念相當模糊,可以用許多不同的方式定義。本課程會以實用的方式定義品質

高品質的資料集有助於模型達成目標。資料集品質不佳會導致模型無法達成目標。

高品質的資料集通常也相當可靠。可靠性是指您對資料的信任程度。相較於以不可靠資料訓練的模型,以可靠資料訓練的模型更有可能產生實用的預測結果。

評估可靠性時,您必須決定下列項目:

  • 標籤錯誤的發生頻率為何?舉例來說,如果您的資料是由人類標註,人類評分人員出錯的頻率為何?
  • 您的功能是否過於吵雜?也就是說,您的功能是否含有錯誤值?請務必務實,您無法將所有雜訊從資料集中清除。有些雜訊屬於正常現象,例如任何地點的 GPS 測量值每週都會略有波動。
  • 資料是否已針對您的問題進行適當篩選?舉例來說,您的資料集是否應納入機器人搜尋查詢?如果您正在建構垃圾郵件偵測系統,答案很可能是肯定的。不過,如果您想改善搜尋結果,則不建議使用這項功能。

以下是資料集資料不準確的常見原因:

  • 省略的值。舉例來說,某人忘記輸入房屋的年齡值。
  • 重複的範例。舉例來說,伺服器誤將相同的記錄項目上傳兩次。
  • 錯誤的特徵值。例如有人輸入多一個數字,或是溫度計在陽光下曝曬。
  • 標籤無效。例如,有人誤將橡樹標示為楓樹。
  • 資料的錯誤部分。舉例來說,某項功能非常可靠,但在網路不斷當機的那一天,就會出現問題。

建議您使用自動化功能標示不準確的資料。舉例來說,定義或仰賴外部正式資料結構的單元測試,可以標示超出定義範圍的值。

完整和不完整的範例

在理想情況下,每個示例都應為「完整」,也就是每個示例都包含每個特徵的值。

圖 1. 範例包含所有五個特徵的值。
圖 1:完整範例。

 

不過,實際的例子通常都不完整,也就是說至少缺少一個特徵值。

圖 2:範例包含五個特徵中的四個特徵值。標示缺少一項功能。
圖 2 不完整的範例。

 

請勿使用不完整的範例訓練模型。請改用下列任一方法修正或移除不完整的範例:

  • 刪除不完整的範例。
  • Impute缺少的值,也就是為缺少的值提供合理的推測,將不完整的範例轉換為完整的範例。
圖 3. 資料集包含三個範例,其中兩個範例不完整。有人已從資料集中刪除這兩個不完整的範例。
圖 3. 從資料集中刪除不完整的範例。

 

圖 4. 資料集包含三個範例,其中兩個範例不完整,且缺少資料。某些實體 (人類或推斷軟體) 已推斷值取代缺少的資料。
圖 4. 為不完整的示例填入缺少的值。

 

如果資料集包含足夠的完整範例,可用於訓練實用的模型,請考慮刪除不完整的範例。同樣地,如果只有一個特徵缺少大量資料,且該特徵可能無法對模型提供太多幫助,建議您考慮從模型輸入中刪除該特徵,並查看刪除後的品質損失程度。如果模型在沒有這項功能的情況下,也能正常運作或幾乎能正常運作,那就太棒了。反之,如果您沒有足夠的完整範例來訓練實用的模型,則可以考慮輸入缺少的值。

刪除無用或多餘的範例是可以的,但刪除重要的範例則不妥。很遺憾,我們很難區分有用和無用的範例。如果您不確定要刪除還是補全資料,建議您建立兩個資料集:一個是刪除不完整的示例,另一個則是補全資料。接著,判斷哪個資料集可訓練出品質較佳的模型。


其中一個常見的演算法是使用平均值或中位數做為推測值。因此,當您使用Z 分數來表示數值特徵時,補上值通常為 0 (因為 0 通常是平均 Z 分數)。

練習:檢查您的理解程度

以下是兩個以 Timestamp 排序的資料集欄。

時間戳記 溫度
2023 年 6 月 8 日 09:00 12
2023 年 6 月 8 日 10:00 18
2023 年 6 月 8 日 11:00 遺漏
2023 年 6 月 8 日 12:00 24
2023 年 6 月 8 日 13:00 38

下列哪個值是溫度遺漏值的合理推論值?

23
應該是。23 是相鄰值 (12、18、24 和 38) 的平均值。不過,我們無法查看資料集的其他部分,因此 23 可能會是其他日期 11:00 的異常值。
31
不太可能。我們可以看到的資料集有限,但這顯示 31 對 11:00 溫度來說太高。不過,如果沒有以大量範例為依據進行推論,我們無法確定結果。
51
幾乎不可能。51 遠高於任何顯示值 (因此遠高於平均值)。