Класс Discretization
Класс Discretization относится к секции text и
преобразует непрерывные числовые признаки в дискретные
категориальные интервалы (бины). Первым параметром передается
список границ bin_boundaries, которые определяют
диапазоны разбиения. Вторым необязательным параметром
передается num_bins - количество бинов, если границы
не заданы явно. Также можно указать epsilon для
допуска при вычислении границ и dtype для типа
выходных данных.
Синтаксис
tf.keras.layers.Discretization(
bin_boundaries=None,
num_bins=None,
epsilon=0.01,
dtype='int64',
**kwargs
)
Пример
Давайте создадим слой Discretization с явно
заданными границами бинов и применим его к тензору чисел:
import tensorflow as tf
layer = tf.keras.layers.Discretization(
bin_boundaries=[0, 2, 4]
)
t = tf.constant([-1, 0, 1, 2, 3, 4, 5])
res = layer(t)
print(res)
Результат выполнения кода:
tf.Tensor([0 0 1 1 2 2 3], shape=(7,), dtype=int64)
Пример
Давайте создадим слой Discretization, указав только
количество бинов, и применим его к тензору чисел:
import tensorflow as tf
layer = tf.keras.layers.Discretization(num_bins=4)
layer.adapt([1, 2, 3, 4, 5, 6, 7, 8])
t = tf.constant([1, 3, 5, 7, 8])
res = layer(t)
print(res)
Результат выполнения кода:
tf.Tensor([0 1 2 3 3], shape=(5,), dtype=int64)
Пример
Давайте применим слой Discretization к двумерному
тензору и получим бины для каждого элемента:
Результат выполнения кода:
tf.Tensor(
[[0 1 1]
[2 2 3]], shape=(2, 3), dtype=int64)
Смотрите также
-
класс
CategoryEncoding,
который кодирует категориальные признаки -
класс
IntegerLookup,
который преобразует целые числа в индексы -
класс
Hashing,
который выполняет хеширование категорий -
функцию
to_number,
которая преобразует строки в числа