簡體   English   中英

處理 tensorflow 中的缺失值

[英]Dealing with missing values in tensorflow

我需要一些關於張量流/深度學習中歸因方法的指導。 我熟悉 scikit-learn 如何處理插補,當我將 map 應用於 tensorflow 生態系統時,我希望使用 keras 中的預處理層或 tensorflow 轉換中的函數來進行插補。 但是,至少據我所知,這些功能並不存在。 所以我有幾個問題:

  1. 是否存在與深度學習的工作方式相關的原因導致這些函數不存在(例如,密集采樣需要盡可能准確,並且您擁有大量數據,因此永遠不需要插補)
  2. 如果它不是#1,應該如何處理 tensorflow 中的插補? 例如,在服務期間,您的輸入可能缺少數據,對此您無能為力。 我認為將它集成到preprocessing_fn中是應該做的事情。
  3. 是否可以讓圖表在訓練和服務期間做不同的事情? 例如,在沒有缺失值的數據上進行訓練,如果在服務期間遇到這種情況,請忽略該值或將其設置為指定的默認值。

謝謝!

請參閱缺失數據的均值插補以使用均值對數據中的缺失值進行插補。

在下面的示例中,x 是一個特征,在preprocessing_fn中表示為tf.SparseTensor 為了將其轉換為密集張量,我們計算其均值,並在實例中缺少均值時將均值設置為默認值。

回答您的第三個問題,TensorFlow Transform 將轉換構建到 model 的 TensorFlow 圖中,因此在訓練和推理時執行相同的轉換。 對於您提到的用例,下面的插補示例將起作用,因為 default_value 參數在未指定的情況下為索引設置值。 如果未設置 default_value 參數,則默認為零。

示例代碼:

def preprocessing_fn(inputs):
  return {
      'x_out': tft.sparse_tensor_to_dense_with_shape(
          inputs['x'], default_value=tft.mean(x), shape=[None, 1])
  }

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM