Spec-Zone.ru › TensorFlow

tf.feature_column.crossed_column

Возвращает столбец для создания перекрестных признаков из категориальных признаков. (устарело)

Предупреждение: tf.feature_column не рекомендуется использовать в новом коде. Вместо этого предварительную обработку признаков можно выполнять напрямую с помощью слоев предварительной обработки Keras или универсальной утилиты tf.keras.utils.FeatureSpace, построенной на их основе. Подробности см. в руководстве по миграции.

Просмотреть псевдонимы

Псевдонимы совместимости для миграции

Подробнее см. в руководстве по миграции.

tf.compat.v1.feature_column.crossed_column

tf.feature_column.crossed_column(
    keys, hash_bucket_size, hash_key=None
)

Используется в блокнотах

Используется в руководствах
  • Классификация структурированных данных с помощью столбцов признаков
  • Создание линейной модели с помощью Estimators
Устарело: ЭТА ФУНКЦИЯ УСТАРЕЛА. Она будет удалена в будущей версии. Инструкции по обновлению: при предварительной обработке данных для обучения модели Keras используйте вместо этого tf.keras.layers.experimental.preprocessing.HashedCrossing для создания перекрестных признаков.

Для хеширования перекрестных признаков используется hash_bucket_size. Концептуально преобразование можно представить так: Хеш(декартово произведение признаков) % hash_bucket_size

Например, если входные признаки имеют вид:

  • SparseTensor, на который ссылается первый ключ:

    shape = [2, 2]
    {
        [0, 0]: "a"
        [1, 0]: "b"
        [1, 1]: "c"
    }
    
  • SparseTensor, на который ссылается второй ключ:

    shape = [2, 1]
    {
        [0, 0]: "d"
        [1, 0]: "e"
    }
    

то перекрестный признак будет выглядеть так:

 shape = [2, 2]
{
    [0, 0]: Hash64("d", Hash64("a")) % hash_bucket_size
    [1, 0]: Hash64("e", Hash64("b")) % hash_bucket_size
    [1, 1]: Hash64("e", Hash64("c")) % hash_bucket_size
}

Ниже приведен пример создания линейной модели с перекрестными строковыми признаками:

keywords_x_doc_terms = crossed_column(['keywords', 'doc_terms'], 50K)
columns = [keywords_x_doc_terms, ...]
features = tf.io.parse_example(..., features=make_parse_example_spec(columns))
linear_prediction = linear_model(features, columns)

Перед созданием перекрестных признаков также можно выполнить поиск в словаре:

keywords = categorical_column_with_vocabulary_file(
    'keywords', '/path/to/vocabulary/file', vocabulary_size=1K)
keywords_x_doc_terms = crossed_column([keywords, 'doc_terms'], 50K)
columns = [keywords_x_doc_terms, ...]
features = tf.io.parse_example(..., features=make_parse_example_spec(columns))
linear_prediction = linear_model(features, columns)

Если входной признак имеет числовой тип, можно использовать categorical_column_with_identity или bucketized_column, как показано в примере:

# vertical_id is an integer categorical feature.
vertical_id = categorical_column_with_identity('vertical_id', 10K)
price = numeric_column('price')
# bucketized_column converts numerical feature to a categorical one.
bucketized_price = bucketized_column(price, boundaries=[...])
vertical_id_x_price = crossed_column([vertical_id, bucketized_price], 50K)
columns = [vertical_id_x_price, ...]
features = tf.io.parse_example(..., features=make_parse_example_spec(columns))
linear_prediction = linear_model(features, columns)

Чтобы использовать столбец перекрестных признаков в модели DNN, его нужно добавить в столбец встраивания, как в этом примере:

vertical_id_x_price = crossed_column([vertical_id, bucketized_price], 50K)
vertical_id_x_price_embedded = embedding_column(vertical_id_x_price, 10)
dense_tensor = input_layer(features, [vertical_id_x_price_embedded, ...])
Аргументы
keys Итерируемый объект, определяющий признаки для создания перекрестных признаков. Каждый элемент может быть одним из следующих:
  • строка: будет использоваться соответствующий признак, тип которого должен быть строковым.
  • CategoricalColumn: будет использоваться преобразованный тензор, созданный этим столбцом. Не поддерживает хешированный категориальный столбец.
hash_bucket_size Целое число > 1. Количество корзин.
hash_key Указывает hash_key, который будет использоваться функцией FingerprintCat64 для объединения отпечатков перекрестных признаков в SparseCrossOp (необязательно).
Возвращает
Объект CrossedColumn.
Вызывает исключения
ValueError Если len(keys) < 2.
ValueError Если какой-либо ключ не является строкой или CategoricalColumn.
ValueError Если какой-либо ключ — HashedCategoricalColumn.
ValueError Если hash_bucket_size < 1.

© 2022 The TensorFlow Authors. All rights reserved.
Licensed under the Creative Commons Attribution License 4.0.
Code samples licensed under the Apache 2.0 License.
https://www.tensorflow.org/api_docs/python/tf/feature_column/crossed_column

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API