Он обучает линейную модель после, возможно, отображения начальных входных признаков в отображение пространства с использованием явных отображений ядра. Благодаря отображениям ядра, обучение линейного классификатора в отображённом (выходном) пространстве может обнаруживать нелинейности во входном пространстве.
Пользователь может предоставить список отображателей ядер, которые будут применяться ко всем или подмножеству существующих столбцов признаков. Таким образом, пользователь может эффективно предоставить 2 типа столбцов признаков:
те, которые передаются как элементы feature_columns в конструкторе классификатора
те, которые появляются как ключ словаря kernel_mappers.
Если столбец появляется только в feature_columns, к нему не применяется отображение. Если он появляется в качестве ключа в kernel_mappers, к нему применяются соответствующие отображатели ядер. Обратите внимание, что столбец может появиться в обоих местах. В настоящее время kernel_mappers поддерживаются только для _RealValuedColumns.
Пример использования:
real_column_a = real_valued_column(name='real_column_a',...)
sparse_column_b = sparse_column_with_hash_bucket(...)
kernel_mappers = {real_column_a : [RandomFourierFeatureMapper(...)]}
optimizer = ...
# real_column_a is used as a feature in both its initial and its transformed
# (mapped) form. sparse_column_b is not affected by kernel mappers.
kernel_classifier = KernelLinearClassifier(
feature_columns=[real_column_a, sparse_column_b],
model_dir=...,
optimizer=optimizer,
kernel_mappers=kernel_mappers)
# real_column_a is used as a feature in its transformed (mapped) form only.
# sparse_column_b is not affected by kernel mappers.
kernel_classifier = KernelLinearClassifier(
feature_columns=[sparse_column_b],
model_dir=...,
optimizer=optimizer,
kernel_mappers=kernel_mappers)
# Input builders
def train_input_fn: # returns x, y
...
def eval_input_fn: # returns x, y
...
kernel_classifier.fit(input_fn=train_input_fn)
kernel_classifier.evaluate(input_fn=eval_input_fn)
kernel_classifier.predict(...)
Ввод fit и evaluate должен содержать следующие признаки, в противном случае возникнет KeyError.
если weight_column_name не None, признак с key=weight_column_name, значение которого является Tensor.
для каждого column в feature_columns:
если column является SparseColumn, признак с key=column.name, значение которого является SparseTensor.
если column является WeightedSparseColumn, два признака: первый с именем столбца key, второй с именем столбца key. Значение обоих признаков должно быть SparseTensor.
если column является RealValuedColumn, признак с key=column.name, значение которого является Tensor.
Аргументы
feature_columns
Итерируемый объект, содержащий все столбцы признаков, используемые моделью. Все элементы множества должны быть экземплярами классов, производных от FeatureColumn.
model_dir
Директория для сохранения параметров модели, графа и т.д. Это также может быть использовано для загрузки контрольных точек из директории в оценщик для продолжения обучения ранее сохранённой модели.
n_classes
количество классов метки. По умолчанию — бинарная классификация. Обратите внимание, что метки классов — это целые числа, представляющие индекс класса (т.е. значения от 0 до n_classes-1). Для произвольных значений меток (например, строковых меток) сначала преобразуйте их в индексы классов.
weight_column_name
Строка, определяющая имя столбца признаков, представляющих веса. Используется для уменьшения или увеличения веса примеров во время обучения. Он будет умножаться на потерю примера.
optimizer
Оптимизатор, используемый для обучения модели. Если указано, это должен быть экземпляр tf.Optimizer. Если None, по умолчанию используется оптимизатор Ftrl.
kernel_mappers
Словарь отображателей ядер, которые будут применяться к входным признакам перед обучением (линейной) модели. Ключи — столбцы признаков, значения — списки отображателей, которые будут применяться к соответствующему столбцу признаков. В настоящее время поддерживаются только _RealValuedColumns, и поэтому все отображатели должны соответствовать интерфейсу DenseKernelMapper (см. ./mappers/dense_kernel_mapper.py).
config
Объект RunConfig для настройки параметров выполнения.
Исключения
ValueError
если n_classes < 2.
ValueError
если не указаны ни feature_columns, ни kernel_mappers.
ValueError
если отображатели, предоставленные в качестве значений kernel_mappers, недействительны.
Атрибуты
config
model_dir
Возвращает путь, в котором процесс оценки будет искать контрольные точки.
Экспортирует граф вывода в указанную директорию. (устарело)
Аргументы
export_dir
Строка, содержащая директорию для записи экспортированного графа и контрольных точек.
input_fn
Если use_deprecated_input_fn имеет значение true, то функция, которая, принимая Tensor строк Example, парсит их в признаки, которые затем передаются в модель. В противном случае, функция, которая не принимает аргументов и возвращает кортеж (признаки, метки), где признаки — словарь из строковых ключей к Tensor, а метки — Tensor, который в настоящее время не используется (и поэтому может быть None).
input_feature_key
Используется только если use_deprecated_input_fn имеет значение false. Строковый ключ в словаре признаков, возвращаемом input_fn, который соответствует необработанным строкам ExampleTensor, которые будет принимать на вход экспортированная модель. Может быть только None если вы используете пользовательскую функцию signature_fn которая не использует первый аргумент (примеры).
use_deprecated_input_fn
Определяет формат подписи input_fn.
signature_fn
Функция, которая возвращает стандартную подпись и словарь подписей с именами, заданные Tensor строк Example, dictTensor для признаков и Tensor или dictTensor для предсказаний.
prediction_key
Ключ для тензора в словаре predictions (вывод от model_fn ) для использования в качестве входного predictions для signature_fn . Дополнительно. Если None, предсказания будут переданы в signature_fn без фильтрации.
default_batch_size
Размер пакета по умолчанию для заполнителя Example .
exports_to_keep
Количество экспортов для хранения.
checkpoint_path
путь к контрольной точке модели, подлежащей экспорту. Если он None (что является по умолчанию), будет использоваться последняя контрольная точка в export_dir.
Возвращает
Путь к директории экспорта. Примечание: эта функциональность была добавлена ок. 2016/09/25; клиентам, зависящим от возвращаемого значения, может потребоваться обработать случай, когда эта функция возвращает None, потому что подклассы не возвращают значение.
Экспортирует граф вывода как SavedModel в указанную директорию.
Аргументы
export_dir_base
Строка, содержащая путь к каталогу для записи экспортированной графы и контрольных точек.
serving_input_fn
Функция без аргументов, возвращающая InputFnOps.
default_output_alternative_key
Имя заголовка для обработки, если он не указан. Не нужно для моделей с одним заголовком.
assets_extra
Словарь, определяющий, как заполнить каталог assets.extra внутри экспортированной SavedModel. Каждый ключ должен указать путь назначения (включая имя файла) относительно каталога assets.extra. Соответствующее значение — полный путь исходного файла, который будет скопирован. Например, в простом случае копирования одного файла без переименования это задается как {'my_asset_file.txt': '/path/to/my_asset_file.txt'}.
as_text
Флаг записи протокола SavedModel в текстовом формате.
checkpoint_path
Путь к контрольной точке для экспорта. Если None (по умолчанию), выбирается самая последняя контрольная точка, найденная в каталоге модели.
graph_rewrite_specs
Итерируемый объект GraphRewriteSpec. Каждый элемент создаст отдельную MetaGraphDef внутри экспортированной SavedModel, помеченную и переписанную в соответствии с указаниями. По умолчанию — один элемент с использованием тега обслуживания по умолчанию ("serve") и без переписывания.
Инкрементальное обучение на наборе образцов. (устаревшие аргументы)
Ожидается, что этот метод будет вызываться несколько раз подряд на разных или одних и тех же фрагментах набора данных. Это может реализовать итеративное обучение или обучение вне памяти/онлайн.
Это особенно полезно, когда весь набор данных слишком большой, чтобы поместиться в памяти одновременно. Или когда модели требуется много времени для сходимости, и вы хотите разбить обучение на подчасти.
Аргументы
x
Матрица формы [n_samples, n_features...]. Может быть итератором, возвращающим массивы признаков. Примеры обучающих входных данных для обучения модели. Если задано, input_fn должно быть None.
y
Вектор или матрица [n_samples] или [n_samples, n_outputs]. Может быть итератором, возвращающим массив меток. Значения меток обучения (метки классов в классификации, вещественные числа в регрессии). Если задано, input_fn должно быть None.
input_fn
Функция ввода. Если задано, x, y, и batch_size должны быть None.
steps
Количество шагов обучения модели. Если None, обучение продолжается бесконечно.
batch_size
Размер мини-пакета для использования на входе, по умолчанию соответствует первому измерению x. Должно быть None, если input_fn предоставлен.
monitors
Список экземпляров подклассов BaseMonitor. Используется для обратных вызовов внутри цикла обучения.
Возвращаемое значение
self, для цепочки вызовов.
Исключения
ValueError
Если хотя бы один из x и y предоставлен, а также input_fn предоставлен.
Возвращает предсказания для заданных признаков. (устаревшие аргументы)
Аргументы
x
Матрица формы [n_samples, n_features...]. Может быть итератором, возвращающим массивы признаков. Примеры обучающих входных данных для обучения модели. Если задано, input_fn должно быть None.
input_fn
Функция ввода. Если задано, x и 'batch_size' должны быть None.
batch_size
Переопределение размера пакета по умолчанию. Если задано, 'input_fn' должно быть 'None'.
outputs
список str, имя выходного значения для предсказания. Если None, возвращает все.
as_iterable
Если True, возвращает итерируемый объект, который продолжает генерировать предсказания для каждого примера до тех пор, пока входные данные не будут исчерпаны. Примечание: входные данные должны завершаться, если вы хотите, чтобы итерируемый объект завершился (например, убедитесь, что вы передали num_epochs=1, если используете что-то вроде read_batch_features).
iterate_batches
Если True, возвращает всю партию сразу, вместо разбиения партии на отдельные образцы. Актуально только при as_iterable = True.
Возвращаемое значение
Массив NumPy с предсказанными классами или значениями регрессии, если конструктор model_fn возвращает Tensor для predictions или массив NumPy, если model_fn возвращает dict. Возвращает итерируемый объект предсказаний, если as_iterable равно True.
Выполняет вывод, чтобы определить предсказанный класс для каждой записи.
Аргументы
input_fn
Функция ввода, предоставляющая признаки.
Возвращаемое значение
Генератор предсказанных классов для признаков, предоставленных функцией input_fn. Каждый предсказанный класс представлен его индексом класса (т. е. целым числом от 0 до n_classes-1).
Метод работает как с простыми оценивателями, так и с вложенными объектами (такими как конвейеры). У первых параметры имеют вид <component>__<parameter>, чтобы было возможно обновлять каждый компонент вложенного объекта.