Các phép biến đổi chung

Trong tài liệu này, chúng tôi mô tả cách thực hiện các phép biến đổi phổ biến với tf.transform.

Chúng tôi giả sử bạn đã xây dựng đường dẫn chùm tia dọc theo dòng của các ví dụ và chỉ mô tả những gì cần được thêm vào preprocessing_fn và có thể cả mô hình.

Sử dụng dữ liệu Chuỗi/Phân loại

Quá preprocessing_fn sau đây sẽ tính toán từ vựng dựa trên các giá trị của tính năng x bằng mã thông báo theo thứ tự tần số giảm dần, chuyển đổi các giá trị tính năng x thành chỉ mục của chúng trong từ vựng và cuối cùng thực hiện mã hóa một lần cho đầu ra.

Điều này thường xảy ra, chẳng hạn như trong các trường hợp sử dụng trong đó đặc điểm nhãn là một chuỗi phân loại. Mã hóa one-hot thu được đã sẵn sàng để huấn luyện.

def preprocessing_fn(inputs):
  integerized = tft.compute_and_apply_vocabulary(
      inputs['x'],
      num_oov_buckets=1,
      vocab_filename='x_vocab')
  one_hot_encoded = tf.one_hot(
      integerized,
      depth=tf.cast(tft.experimental.get_vocabulary_size_by_name('x_vocab') + 1,
                    tf.int32),
      on_value=1.0,
      off_value=0.0)
  return {
    'x_out': one_hot_encoded,
  }

Giá trị trung bình cho dữ liệu bị thiếu

Trong ví dụ này, tính năng x là một tính năng tùy chọn, được biểu thị dưới dạng tf.SparseTensor trong preprocessing_fn . Để chuyển đổi nó thành một tensor dày đặc, chúng tôi tính toán giá trị trung bình của nó và đặt giá trị trung bình thành giá trị mặc định khi nó bị thiếu trong một phiên bản.

Tensor dày đặc thu được sẽ có hình dạng [None, 1] , None đại diện cho thứ nguyên lô và đối với thứ nguyên thứ hai, nó sẽ là số giá trị mà x có thể có cho mỗi phiên bản. Trong trường hợp này là 1.

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