일반적인 변환

이 문서에서는 tf.transform을 사용하여 일반적인 변환을 수행하는 방법을 설명합니다.

예제에 따라 빔 파이프라인을 이미 구성했다고 가정하고 preprocessing_fn 및 가능한 모델에 추가해야 할 사항만 설명합니다.

문자열/범주형 데이터 사용

다음 preprocessing_fn 내림차순으로 토큰을 사용하여 특성 x 값에 대한 어휘를 계산하고 특성 x 값을 어휘의 인덱스로 변환한 후 마지막으로 출력에 대한 원-핫 인코딩을 수행합니다.

이는 예를 들어 레이블 기능이 범주형 문자열인 사용 사례에서 일반적입니다. 결과적인 원-핫 인코딩은 훈련 준비가 되었습니다.

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,
  }

누락된 데이터에 대한 평균 대체

이 예에서 기능 x preprocessing_fn 에서 tf.SparseTensor 로 표시되는 선택적 기능입니다. 이를 조밀한 텐서로 변환하기 위해 평균을 계산하고 인스턴스에서 누락된 경우 평균을 기본값으로 설정합니다.

결과로 생성되는 밀집 텐서는 [None, 1] 모양을 가지며 None 배치 차원을 나타내고 두 번째 차원의 경우 x 인스턴스당 가질 수 있는 값의 개수가 됩니다. 이 경우에는 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])
  }