Ortak Dönüşümler

Bu belgede tf.transform ile ortak dönüşümlerin nasıl yapılacağını açıklıyoruz.

Örneklere göre ışın hattını zaten oluşturduğunuzu ve yalnızca preprocessing_fn ve muhtemelen modele nelerin eklenmesi gerektiğini tanımladığınızı varsayıyoruz.

Dize/Kategorik verileri kullanma

Aşağıdaki preprocessing_fn azalan frekans sırasına göre jetonlarla x özelliğinin değerleri üzerinden bir kelime dağarcığı hesaplayacak, özellik x değerlerini sözlükteki indekslerine dönüştürecek ve son olarak çıktı için bir sıcak kodlama gerçekleştirecektir.

Bu, örneğin etiket özelliğinin kategorik bir dize olduğu kullanım durumlarında yaygındır. Ortaya çıkan tek sıcak kodlama eğitim için hazırdır.

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

Eksik veriler için ortalama yükleme

Bu örnekte x özelliği, preprocessing_fn dosyasında tf.SparseTensor olarak temsil edilen isteğe bağlı bir özelliktir. Bunu yoğun bir tensöre dönüştürmek için ortalamasını hesaplıyoruz ve bir örnekte eksik olduğunda ortalamayı varsayılan değer olarak ayarlıyoruz.

Ortaya çıkan yoğun tensör [None, 1] şeklinde olacaktır; None parti boyutunu temsil eder ve ikinci boyut için, x örnek başına sahip olabileceği değerlerin sayısı olacaktır. Bu durumda 1'dir.

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