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])
}