tf.compat.v1.feature_column.linear_model
Возвращает линейное предсказание Tensor на основе заданных feature_columns.
tf.compat.v1.feature_column.linear_model(
features, feature_columns, units=1, sparse_combiner='sum',
weight_collections=None, trainable=True, cols_to_vars=None
)
Эта функция генерирует взвешенную сумму на основе размерности выходного пространства units. Взвешенная сумма представляет собой логарифмы в задачах классификации. В задачах линейной регрессии она представляет собой само предсказание.
Примечание о поддерживаемых столбцах: linear_model обрабатывает категориальные столбцы как indicator_column. Более конкретно, предположим, что вход SparseTensor выглядит так:
shape = [2, 2]
{
[0, 0]: "a"
[1, 0]: "b"
[1, 1]: "c"
}
linear_model присваивает веса для наличия "a", "b", "c" неявно, так же как indicator_column, тогда как input_layer явно требует обертывания каждого категориального столбца в embedding_column или indicator_column.
Пример использования:
price = numeric_column('price')
price_buckets = bucketized_column(price, boundaries=[0., 10., 100., 1000.])
keywords = categorical_column_with_hash_bucket("keywords", 10K)
keywords_price = crossed_column('keywords', price_buckets, ...)
columns = [price_buckets, keywords, keywords_price ...]
features = tf.io.parse_example(..., features=make_parse_example_spec(columns))
prediction = linear_model(features, columns)
Аргумент sparse_combiner работает следующим образом. Например, для двух признаков, представленных как категориальные столбцы:
# Feature 1
shape = [2, 2]
{
[0, 0]: "a"
[0, 1]: "b"
[1, 0]: "c"
}
# Feature 2
shape = [2, 3]
{
[0, 0]: "d"
[1, 0]: "e"
[1, 1]: "f"
[1, 2]: "f"
}
с sparse_combiner как "mean", линейная модель выводит соответственно:
y_0 = 1.0 / 2.0 * ( w_a + w_b ) + w_d + b y_1 = w_c + 1.0 / 3.0 * ( w_e + 2.0 * w_f ) + b
где y_i — выход, b — смещение, а w_x — вес, присвоенный наличию x в входных признаках.
| Аргументы | |
|---|---|
features | Отображение ключа к тензорам. _FeatureColumn ищут по этим ключам. Например, numeric_column('price') обратится к ключу 'price' в этом словаре. Значения являются Tensor или SparseTensor в зависимости от соответствующего _FeatureColumn. |
feature_columns | Итерируемый объект, содержащий FeatureColumns, используемые в качестве входных данных для вашей модели. Все элементы должны быть экземплярами классов, производных от _FeatureColumn. |
units | Целое число, размерность выходного пространства. Значение по умолчанию — 1. |
sparse_combiner | Строка, определяющая способ уменьшения, если категориальный столбец многозначный. Кроме numeric_column, почти все столбцы, передаваемые в linear_model , рассматриваются как категориальные. Он независимо комбинирует каждый категориальный столбец. В настоящее время поддерживаются "mean", "sqrtn" и "sum", по умолчанию для линейной модели используется "sum". "sqrtn" часто обеспечивает хорошую точность, особенно с bag-of-words столбцами.
|
weight_collections | Список имен коллекций, к которым будет добавлен переменная. Обратите внимание, что переменные также будут добавлены в коллекции tf.GraphKeys.GLOBAL_VARIABLES и ops.GraphKeys.MODEL_VARIABLES. |
trainable | Если True также добавить переменную в коллекцию графа GraphKeys.TRAINABLE_VARIABLES (см. tf.Variable). |
cols_to_vars | Если не None, должен быть словарь, который будет заполнен отображением от _FeatureColumn к связанному списку Variable. Например, после вызова у нас может быть cols_to_vars = { _NumericColumn( key='numeric_feature1', shape=(1,): [ |
| Возвращает | |
|---|---|
A Tensor, представляющий предсказания/логарифмы линейной модели. Его форма — (размер_пакета, единицы), а тип данных — float32. |
| Возбуждает | |
|---|---|
ValueError | если элемент в feature_columns не является ни _DenseColumn, ни _CategoricalColumn . |
© 2020 The TensorFlow Authors. All rights reserved.
Licensed under the Creative Commons Attribution License 3.0.
Code samples licensed under the Apache 2.0 License.
https://www.tensorflow.org/versions/r2.4/api_docs/python/tf/compat/v1/feature_column/linear_model