準備資料

資料是機器學習系統的重要一環。您必須先準備好資料,才能將資料用於訓練機器學習模型,並從訓練過的模型取得預測。本頁提供準備資料所需步驟的總覽。

用於模型訓練的資料

您需要大量的現有資料樣本才能訓練模型。這個資料:

  • 代表您問題空間中的資料。
  • 包括模型進行預測所需的所有特徵,以及您要在新樣本中推論的指定值。
  • TensorFlow 可以接受的格式序列化,通常為 CSV 或 TFRecord。
  • 必須儲存於 GCP 專案可以存取的位置,通常在 Cloud Storage 位置或 BigQuery 中。
  • 分為三個資料集:一個用來訓練模型、一個用來評估已訓練模型的準確率和可推論性,還有一個用來測試訓練過的模型。

準備資料的階段

資料準備通常涉及疊代步驟。在本說明文件中,針對監督式機器學習準備資料的步驟為:

  1. 收集資料。
  2. 清理資料。
  3. 將資料分組。
  4. 設計資料特徵。
  5. 預先處理特徵。

收集資料

尋找資料,尤其是要找到有您所需標籤的資料並不容易。不同機器學習專案的資料來源可能有很大的不同。 如果您要合併來自不同來源的資料,或從多個位置取得資料項目,在下一步中必須特別小心。

清理資料

清理資料這個程序是用來檢查完整性和一致性。在這個階段,您不應從整體資料找出模式,而是應依資料欄 (屬性) 清理資料,找出異常情況,例如:

  • 缺少特徵的樣本。

  • 表示特徵的多種方法。例如,有些樣本可能會以英寸為單位列出長度測量值,有些則可能以公分為單位。給定特徵的所有樣本都必須採用相同的度量衡單位和格式。

  • 含有特徵遠超出一般範圍的值 (離群值),這可能是資料項目異常或其他的無效資料。

  • 資料隨著時間、地理位置或其他可辨識的特性有顯著的變化。

  • 標籤不正確或標籤條件定義不明確。

將資料分組

在監督式學習情境中,您需要至少三個資料子集:訓練資料、評估資料和測試資料。

「訓練資料」是用於訓練模型的資料。在開發模型之前,您必須先分析並瞭解資料。

「評估資料」是在一般訓練週期中用於檢查模型效能的資料。它是確保模型可推論訓練資料集以外的資料的主要工具。

「測試資料」可用於在多次反覆訓練之後,測試接近完成的模型。您不應分析或細查測試資料,而是在測試模型之前,將測試資料保持在最新狀態。如此一來,才能確保您的假設不是基於對資料的熟悉程度而來,導致訓練結果受到影響。

將資料分組時,請記住以下幾個重點:

  • 最好從一個大的資料集中的子集隨機取樣,而不要使用一些預先分割的資料,例如來自兩個不同日期範圍或資料收集系統的樣本。使用預先分割的資料會增加不一致的風險,而導致過度配適。

  • 在理想情況下,您應將樣本指派給資料集,並在整個過程中保持關聯。

  • 針對不同資料集的正確比例,專家們各執一詞。但是,無論具體比率為何,訓練資料都應該比評估資料多,評估資料也應該比測試資料多。

設計資料特徵

在開發模型之前,您應先熟悉訓練資料。找出資料中的模式,並思考哪些值可能會影響目標屬性。決定哪些資料對於模型很重要的程序稱為「特徵工程」

特徵工程不僅決定要使用原始資料中的哪些屬性,更困難且通常更重要的工作是,從特定資料中擷取具有可推論性和指示性的特徵,也就是結合您擁有的資料和您對於問題空間的瞭解,來取得您真正需要的資料。這可能是一個複雜的程序,是否能正確執行則取決於對主題和問題目標的瞭解。以下是一些範例:

資料範例:居住地址

關於人的資料通常包含居住地址。地址是一個複雜的字串,通常難以整理成一致的格式,本身對許多應用程式而言也不是特別有用。您應從中擷取更有意義的特徵。以下是一些可從地址中擷取的項目的範例:

  • 經度和緯度
  • 社區
  • 最近的小學
  • 選區
  • 相對於某個地標的位置

資料範例:時間戳記

另一個常見的資料項目是時間戳記,它通常是一個大的數值,表示自一個共同的參考點以來經過的時間。以下是一些可以從精確的時間戳記中擷取的項目的範例:

  • 時間
  • 另一個事件發生以後經過的時間
  • 時段 (早上、下午、傍晚、晚上)
  • 某個設施在指定時間的開放狀態
  • 某個事件的頻率 (與其他樣本搭配使用)
  • 太陽的位置 (與緯度和經度搭配使用)

以下是上述範例的一些重要注意事項:

  • 您可以將多個屬性合併成為一個具有可推論性的特徵。例如,地址和時間戳記可以讓您知道太陽的位置。

  • 您可以使用特徵工程來簡化資料。例如,從時間戳記到時段可將有無數個值的屬性縮減為四個類別。

  • 您可以跨樣本進行設計,來取得有用的特徵,並減少資料集中的樣本數。例如,使用多個樣本來計算某個事物的頻率。

完成後,您將取得特徵清單,可在訓練模型時加入。

這個程序最困難的部分之一,是決定您何時會擁有正確的特徵集,因為您有時很難知道哪些特徵可能會影響預測的準確率。機器學習專家經常強調,機器學習是一個需要靈活性和實驗的領域。第一次嘗試時永遠不可能得到完美的結果,因此請大膽假設,並將結果用於下一次嘗試。

預先處理資料

目前為止,本頁說明了如何準備資料以訓練模型的一般適用步驟。現在才需要重視資料的表示法和格式。下一步是預先處理:將準備好的資料轉換為您用來訓練模型的工具和技術可使用的格式。

資料格式與 AI Platform

AI Platform 不指定資料格式,您可以使用任何適合您訓練應用程式的輸入格式,但您的輸入資料必須採用 TensorFlow 可以讀取的格式,也必須位於 AI Platform 專案可以存取的位置。最簡單的解決方案通常是在 GCP 專案可以存取的 Cloud Storage 值區中使用 CSV 檔案。某些資料類型 (例如稀疏向量和二進位資料) 若使用 TensorFlow 在 TFRecord 檔案中序列化的 tf.train.Example 格式,能更好的表示。

轉換資料

許多在原始特徵資料上執行的轉換作業可能很有用。一些比較常見的是:

  • 將數值標準化,以一致的尺度來表示 (通常介於 -1 和 1 之間,或介於 0 和 1 之間)。
  • 以數字表示非數字資料,例如將類別特徵變更為索引值或獨熱向量。
  • 將原始文字字串變更為更精簡的表示法,例如詞袋

後續步驟

本頁內容對您是否有任何幫助?請提供意見:

傳送您對下列選項的寶貴意見...

這個網頁
TensorFlow 適用的 AI Platform