轉換資料簡介

功能工程是判斷哪些特徵在訓練模型時相當實用,然後轉換記錄檔和其他來源中的原始資料來建立這些功能。在本節中,我們會著重於轉換數字和類別資料的時機和方式,以及不同方法的取捨。

資料轉換的原因

轉換功能的主要原因如下:

  1. 與資料相容性相關的強制轉換。例如:

    • 將非數字特徵轉換為數字。您無法對字串執行矩陣乘法,因此我們必須將字串轉換成部分數字表示。
    • 將輸入大小調整為固定大小。線性模型和向前傳播的類神經網路有固定數量的輸入節點,因此輸入資料的大小必須相同。舉例來說,圖片模型必須將資料集的圖片重新調整為固定大小。
  2. 選用品質轉換,有助於提升模型效能。例如:

    • 文字特徵的權杖化或較低大小寫。
    • 正規化數字功能 (大多數模型在執行後效能較佳)。
    • 允許線性模型將非線性廣告引入特徵空間。

嚴格來說,不必進行品質轉換,模型仍可能在沒有這些轉換的情況下執行。不過,使用這些技術可讓模型提供更佳的結果。

轉換地點

在磁碟或模型中產生資料時,可以套用轉換。

在訓練之前進行轉換

這個方法會在訓練之前執行轉換作業。 這個程式碼獨立於機器學習模型。

優點

  • 系統只會執行一次運算。
  • 運算作業可以查看整個資料集,藉此決定轉換。

缺點

  • 必須在預測時間重現轉換。請保持偏移!
  • 如進行任何轉換變更,就必須重新執行資料產生作業,導致疊代作業較慢。

Skew 較涉及線上提供的情況。在離線狀態下,您可以重複使用產生訓練資料的程式碼。在線上供應中,用於建立資料集的程式碼和用來處理即時流量的程式碼幾乎幾乎不同,因此很容易導入偏移。

在模型內轉換

在這個方法中,轉換是模型程式碼的一部分。模型會將未轉換的資料視為輸入內容,並在模型中轉換。

優點

  • 輕鬆疊代。如果您變更轉換,仍然可以使用相同的資料檔案。
  • 您可以在訓練和預測期間確保相同的轉換。

缺點

  • 昂貴的轉換可能會增加模型的延遲時間。
  • 轉換是以批次處理。

轉換批次時,需要考量許多因素。假設您想將地圖項目的「正規化」正規化,也就是說,您希望將特徵值變更為「0」和「標準差」1。在模型內轉換時,此正規化只能存取一批資料,而無法存取整個資料集。您可以根據批次中的平均值將值正規化 (如果批次作業的變化版本很高,或計算模型的平均值),然後在模型中將其修正為常數。我們會在下一節說明正規化。

探索、清理及視覺化資料

在執行任何轉換之前,先探索並清理資料。您在收集和建構資料集時,可能已經完成下列幾項工作:

  • 查看數個資料列。
  • 請查看基本統計資料。
  • 修正缺少數值的項目。

經常以視覺化方式呈現資料。圖表可協助您找出數值數值無法呈現的異常狀況或模式。因此,在分析過多的分析結果之前,請先以散佈圖或直方圖查看資料。您不僅須查看管道一開始的圖表,還能查看轉換期間的圖表。視覺化功能可協助您持續檢查假設,並查看任何重大變更的影響。