tf.estimator.BoostedTreesRegressor
| Просмотреть исходный код на GitHub |
Регрессор для моделей Tensorflow Boosted Trees.
tf.estimator.BoostedTreesRegressor(
feature_columns, n_batches_per_layer, model_dir=None, label_dimension=1,
weight_column=None, n_trees=100, max_depth=6, learning_rate=0.1,
l1_regularization=0.0, l2_regularization=0.0, tree_complexity=0.0,
min_node_weight=0.0, config=None, center_bias=False, pruning_mode='none',
quantile_sketch_epsilon=0.01, train_in_memory=False
)
| Аргументы | |
|---|---|
feature_columns | Итерируемый объект, содержащий все используемые моделью столбцы признаков. Все элементы набора должны быть экземплярами классов, производных от FeatureColumn. |
n_batches_per_layer | количество партий для сбора статистики на каждом слое. Общее количество партий равно общему количеству данных, деленному на размер партии. |
model_dir | Каталог для сохранения параметров модели, графа и т. д. Также может использоваться для загрузки контрольных точек из каталога в оценщик для продолжения обучения ранее сохранённой модели. |
label_dimension | Количество регрессионных целей на пример. |
weight_column | Строка или объект NumericColumn, созданный tf.fc_old.numeric_column, определяющий столбец признаков, представляющий веса. Используется для уменьшения или увеличения веса примеров во время обучения. Будет умножаться на потерю примера. Если это строка, она используется в качестве ключа для извлечения тензора весов из features. Если это объект NumericColumn, сырой тензор извлекается по ключу weight_column.key, затем к нему применяется weight_column.normalizer_fn, чтобы получить тензор весов. |
n_trees | количество деревьев, которые должны быть созданы. |
max_depth | максимальная глубина растущего дерева. |
learning_rate | параметр сжатия, используемый при добавлении дерева в модель. |
l1_regularization | множитель регуляризации, применяемый к абсолютным весам листов дерева. |
l2_regularization | множитель регуляризации, применяемый к квадратным весам листов дерева. |
tree_complexity | множитель регуляризации, штрафующий деревья с большим количеством листьев. |
min_node_weight | min_node_weight: минимальное значение хессиана, которое узел должен иметь для того, чтобы разбиение считалось подходящим. Значение будет сравниваться с sum(leaf_hessian)/(batch_size * n_batches_per_layer). |
config | Объект RunConfig, настраивающий параметры выполнения. |
center_bias | Нужно ли выполнять центрирование смещения. Центрирование смещения относится к первому узлу в первом дереве, возвращающему предсказание, согласованное с исходным распределением меток. Например, для задач регрессии первый узел вернёт среднее значение меток. Для задач бинарной классификации он вернёт логарифмическое значение для априорной вероятности метки 1. |
pruning_mode | одно из none, pre, post для указания отсутствия обрезки, предварительной обрезки (не разделять узел, если не наблюдается достаточного прироста) и последующей обрезки (построить дерево до максимальной глубины, а затем обрезать ветви с отрицательным приростом). Для предварительной и последующей обрезки необходимо указать tree_complexity>0. |
quantile_sketch_epsilon | Вещественное число от 0 до 1. Граница ошибки для вычисления квантилей. Используется только для столбцов признаков с плавающей запятой, и количество созданных ведер на столбец с плавающей запятой равно 1/quantile_sketch_epsilon. |
train_in_memory | bool, если True, предполагается, что набор данных находится в памяти, т.е. input_fn должен возвращать весь набор данных как единую партию, n_batches_per_layer должно быть установлено как 1, num_worker_replicas должно быть 1, а num_ps_replicas должно быть 0 в tf.Estimator.RunConfig. |
| Возбуждает | |
|---|---|
ValueError | при ошибочном вводе аргументов или запросе неподдерживаемых функций. |
Совместимость с Eager
Оценщики могут использоваться при включённом режиме Eager. Обратите внимание, что input_fn и все хуки выполняются внутри контекста графа, поэтому они должны быть написаны так, чтобы быть совместимыми с режимом графа. Обратите внимание, что input_fn код, использующий tf.data, как правило, работает как в режиме графа, так и в режиме Eager.
| Атрибуты | |
|---|---|
config | |
model_dir | |
model_fn | Возвращает model_fn, связанный с self.params. |
params | |
Методы
eval_dir
eval_dir(
name=None
)
Показывает имя каталога, куда выводятся метрики оценки.
| Аргументы | |
|---|---|
name | Название оценки, если пользователю нужно выполнить несколько оценок на разных наборах данных, таких как данные обучения и данные тестирования. Метрики для разных оценок сохраняются в отдельных папках и отображаются отдельно в tensorboard. |
| Возвращает | |
|---|---|
| Строка, представляющая путь к каталогу, содержащему метрики оценки. |
evaluate
evaluate(
input_fn, steps=None, hooks=None, checkpoint_path=None, name=None
)
Оценивает модель, используя данные оценки input_fn.
На каждом шаге вызывается input_fn, который возвращает одну партию данных. Оценка выполняется до:
-
stepsпартий обработаны, или -
input_fnвозникает исключение конца ввода (tf.errors.OutOfRangeErrorилиStopIteration).
| Аргументы | |
|---|---|
input_fn | Функция, которая создаёт входные данные для оценки. См. Предопределённые оценщики для получения дополнительной информации. Функция должна создавать и возвращать один из следующих объектов:
|
steps | Количество шагов, на которых должна оцениваться модель. Если None, оценивается до тех пор, пока input_fn не выдаст исключение конца ввода. |
hooks | Список экземпляров подклассов tf.train.SessionRunHook. Используется для обратных вызовов внутри вызова оценки. |
checkpoint_path | Путь к конкретной контрольной точке для оценки. Если None, используется последняя контрольная точка в model_dir. Если в model_dir нет контрольных точек, оценка выполняется с вновь инициализированным Variables вместо восстановленных из контрольной точки. |
name | Название оценки, если пользователю нужно выполнить несколько оценок на разных наборах данных, таких как данные обучения и данные тестирования. Метрики для разных оценок сохраняются в отдельных папках и отображаются отдельно в tensorboard. |
| Возвращает | |
|---|---|
Словарь, содержащий метрики оценки, указанные в model_fn с ключами по имени, а также запись global_step, содержащую значение глобального шага, на котором была выполнена эта оценка. Для предопределённых оценщиков словарь содержит loss (средняя потеря на мини-пакет) и average_loss (средняя потеря на образец). Предопределённые классификаторы также возвращают accuracy. Предопределённые регрессоры также возвращают label/mean и prediction/mean. |
| Возбуждает | |
|---|---|
ValueError | Если steps <= 0. |
experimental_export_all_saved_models
experimental_export_all_saved_models(
export_dir_base, input_receiver_fn_map, assets_extra=None, as_text=False,
checkpoint_path=None
)
Экспортирует SavedModel с tf.MetaGraphDefs для каждого запрошенного режима.
Для каждого режима, переданного через input_receiver_fn_map, этот метод создаёт новую графу, вызывая input_receiver_fn, чтобы получить признаки и метки Tensor. Затем этот метод вызывает Estimator's model_fn в указанном режиме, чтобы сгенерировать графу модели на основе этих признаков и меток, и восстанавливает заданный контрольный пункт (или, в случае его отсутствия, последний контрольный пункт) в графе. Только один из режимов используется для сохранения переменных в SavedModel (порядок предпочтения: tf.estimator.ModeKeys.TRAIN, tf.estimator.ModeKeys.EVAL, затем tf.estimator.ModeKeys.PREDICT), так что до трёх tf.MetaGraphDefs сохраняются с одним набором переменных в одном каталоге SavedModel.
Для переменных и tf.MetaGraphDefs, создаётся каталог экспорта с отметкой времени ниже export_dir_base, и в нём записывается SavedModel, содержащий tf.MetaGraphDef для данного режима и его связанных подписей.
Для предсказания экспортированный MetaGraphDef предоставит по одному SignatureDef для каждого элемента словаря export_outputs, возвращаемого из model_fn, используя те же ключи. Один из этих ключей всегда tf.saved_model.signature_constants.DEFAULT_SERVING_SIGNATURE_DEF_KEY, указывающий, какая подпись будет использоваться при запросе обслуживания без указания подписи. Для каждой подписи выходы предоставляются соответствующими tf.estimator.export.ExportOutputs, а входные данные всегда — приемники входных данных, предоставленные serving_input_receiver_fn.
Для обучения и оценки train_op хранится в дополнительном наборе, а потери, метрики и предсказания включаются в SignatureDef для рассматриваемого режима.
Дополнительные ресурсы могут быть записаны в SavedModel через аргумент assets_extra. Это должен быть словарь, где каждый ключ задаёт путь назначения (включая имя файла) относительно каталога assets.extra. Соответствующее значение — полный путь исходного файла, который нужно скопировать. Например, простой случай копирования одного файла без переименования задаётся как {'my_asset_file.txt': '/path/to/my_asset_file.txt'}.
| Args | |
|---|---|
export_dir_base | Строка, содержащая каталог, в котором должны быть созданы подкаталоги с отметкой времени, содержащие экспортированные SavedModels. |
input_receiver_fn_map | Словарь соответствий tf.estimator.ModeKeys к input_receiver_fn, где input_receiver_fn — функция без аргументов, возвращающая соответствующий подкласс InputReceiver. |
assets_extra | Словарь, определяющий способ заполнения каталога assets.extra в экспортированном SavedModel, или None, если дополнительные ресурсы не нужны. |
as_text | Нужно ли записывать прото SavedModel в текстовом формате. |
checkpoint_path | Путь к контрольному пункту для экспорта. Если None (по умолчанию), выбирается последний найденный контрольный пункт в каталоге модели. |
| Returns | |
|---|---|
| Путь к каталогу экспорта в виде объекта bytes. |
| Raises | |
|---|---|
ValueError | если какой-либо input_receiver_fn имеет None, не предоставлены export_outputs или не найден контрольный пункт. |
experimental_feature_importances
experimental_feature_importances(
normalize=False
)
Вычисляет важности признаков на основе приростов.
Чем выше значение, тем важнее соответствующий признак.
| Args | |
|---|---|
normalize | Если True, нормализовать важности признаков. |
| Returns | |
|---|---|
feature_importances | упорядоченный словарь, где ключи — имена столбцов признаков, а значения — важности. Он отсортирован по важности. |
| Raises | |
|---|---|
ValueError | При попытке нормализации пустого ансамбля или ансамбля деревьев, у которых нет разбиений. Или при попытке нормализации и отрицательных значений важностей признаков. |
experimental_predict_with_explanations
experimental_predict_with_explanations(
input_fn, predict_keys=None, hooks=None, checkpoint_path=None
)
Вычисляет выходные данные объяснения модели на пример вместе с предсказаниями.
В настоящее время поддерживаются направленные вклады признаков (DFCs). Для каждого объекта DFC показывают совокупный вклад каждого признака. Подробнее см. https://arxiv.org/abs/1312.1121 и http://blog.datadive.net/interpreting-random-forests/.
| Args | |
|---|---|
input_fn | Функция, которая предоставляет входные данные для предсказания как мини-пакеты. См. Предопределённые оценщики для получения дополнительной информации. Функция должна строить и возвращать один из следующих объектов:
|
predict_keys | Список str, имя ключей для предсказания. Используется, если tf.estimator.EstimatorSpec.predictions — dict. Если используется predict_keys, все остальные предсказания из словаря будут отфильтрованы, за исключением 'bias' и 'dfc', которые всегда будут в словаре. Если None, возвращает все ключи в словаре предсказания, а также два новых ключа 'dfc' и 'bias'. |
hooks | Список экземпляров подкласса tf.train.SessionRunHook. Используется для обратных вызовов внутри вызова предсказания. |
checkpoint_path | Путь к конкретному контрольному пункту для предсказания. Если None, используется последний контрольный пункт в model_dir. Если в model_dir нет контрольных пунктов, предсказание выполняется с только что инициализированными Variables вместо восстановленных из контрольного пункта. |
Выходные данные:
Оценённые значения тензоров predictions. Тензоры predictions будут содержать как минимум два ключа 'dfc' и 'bias' для объяснений модели. Значение dfc соответствует вкладу каждого признака в общее предсказание для этого объекта (положительное значение указывает, что признак делает более вероятным выбор класса 1, а отрицательное — менее вероятным). Значение dfc — упорядоченный словарь, где ключи — имена столбцов признаков, а значения — вклады. Он отсортирован по абсолютному значению вклада (например, OrderedDict([('возраст', -0.54), ('пол', 0.4), ('тариф', 0.21)])). Значение 'bias' будет одинаковым для всех объектов, соответствуя вероятности (классификация) или предсказанию (регрессия) распределения обучающих данных.
| Raises | |
|---|---|
ValueError | при передаче неправильных аргументов или запросе неподдерживаемых функций. |
export_saved_model
export_saved_model(
export_dir_base, serving_input_receiver_fn, assets_extra=None, as_text=False,
checkpoint_path=None, experimental_mode=ModeKeys.PREDICT
)
Экспортирует графу инференции как SavedModel в данный каталог.
Для получения подробного руководства см. SavedModel от оценщиков.
Этот метод строит новую графу, сначала вызвав serving_input_receiver_fn для получения признаков Tensor, а затем вызвав Estimator's model_fn для генерации графа модели на основе этих признаков. Он восстанавливает заданный контрольный пункт (или, если он отсутствует, последний контрольный пункт) в эту графу в свежей сессии. Наконец, он создаёт каталог экспорта с отметкой времени ниже указанного export_dir_base, и записывает в него SavedModel, содержащий одну tf.MetaGraphDef из этой сессии.
Экспортированный MetaGraphDef предоставит по одному SignatureDef для каждого элемента словаря export_outputs, возвращаемого model_fn, используя те же ключи. Один из этих ключей всегда tf.saved_model.signature_constants.DEFAULT_SERVING_SIGNATURE_DEF_KEY, указывающий, какая подпись будет использоваться, если в запросе обслуживания не указана подпись. Для каждой подписи выходы предоставляются соответствующими tf.estimator.export.ExportOutputs, а входные данные всегда — приемники входных данных, предоставленные serving_input_receiver_fn.
Дополнительные ресурсы могут быть записаны в SavedModel через аргумент assets_extra. Это должен быть словарь, где каждый ключ задаёт путь назначения (включая имя файла) относительно каталога assets.extra. Соответствующее значение — полный путь исходного файла, который нужно скопировать. Например, простой случай копирования одного файла без переименования задаётся как {'my_asset_file.txt': '/path/to/my_asset_file.txt'}.
Параметр experimental_mode можно использовать для экспорта отдельной графика обучения/валидации/предсказания в виде SavedModel. См. experimental_export_all_saved_models для полной документации.
| Аргументы | |
|---|---|
export_dir_base | Строка, содержащая путь к каталогу, в котором будут создаваться подкаталоги с отметкой времени, содержащие экспортированные SavedModelы. |
serving_input_receiver_fn | Функция без аргументов, возвращающая tf.estimator.export.ServingInputReceiver или tf.estimator.export.TensorServingInputReceiver. |
assets_extra | Словарь, определяющий, как заполнить каталог assets.extra в экспортированном SavedModel, или None если дополнительные ресурсы не нужны. |
as_text | Флаг, указывающий, следует ли записывать прото SavedModel в текстовом формате. |
checkpoint_path | Путь к контрольной точке для экспорта. Если None (по умолчанию), выбирается самая последняя контрольная точка, найденная в каталоге модели. |
experimental_mode | Значение tf.estimator.ModeKeys, указывающее, какой режим будет экспортирован. Обратите внимание, что эта функция находится в стадии разработки. |
| Возвращаемые значения | |
|---|---|
| Путь к экспортированному каталогу в виде объекта типа bytes. |
| Исключения | |
|---|---|
ValueError | Если не предоставлен serving_input_receiver_fn, не предоставлены export_outputs, или контрольная точка не найдена. |
export_savedmodel
export_savedmodel(
export_dir_base, serving_input_receiver_fn, assets_extra=None, as_text=False,
checkpoint_path=None, strip_default_attrs=False
)
Экспортирует граф вывода как SavedModel в указанный каталог. (устаревшая функция)
Для подробного руководства см. SavedModel от Estimators.
Этот метод строит новую графу, сначала вызывая serving_input_receiver_fn для получения признаков Tensor, а затем вызывая Estimator's model_fn для генерации графика модели на основе этих признаков. Он восстанавливает заданную контрольную точку (или, если её нет, самую последнюю контрольную точку) в эту графу в новом сеансе. Наконец, он создает каталог экспорта с отметкой времени ниже указанного export_dir_base, и записывает в него SavedModel содержащий единственный tf.MetaGraphDef сохраненный из этого сеанса.
Экспортированный MetaGraphDef предоставит по одному SignatureDef для каждого элемента словаря export_outputs, возвращённого model_fn, используя те же ключи. Один из этих ключей всегда tf.saved_model.signature_constants.DEFAULT_SERVING_SIGNATURE_DEF_KEY, указывающий, какая сигнатура будет использоваться, если при запросе обслуживания не будет указана конкретная сигнатура. Для каждой сигнатуры выходные данные предоставляются соответствующими tf.estimator.export.ExportOutputs, а входные данные всегда являются входными приемниками, предоставленными serving_input_receiver_fn.
Дополнительные ресурсы можно записать в SavedModel через аргумент assets_extra. Это должен быть словарь, где каждый ключ задаёт путь назначения (включая имя файла) относительно каталога assets.extra. Соответствующее значение – это полный путь к исходному файлу, который нужно скопировать. Например, простой случай копирования одного файла без переименования задаётся как {'my_asset_file.txt': '/path/to/my_asset_file.txt'}.
| Аргументы | |
|---|---|
export_dir_base | Строка, содержащая путь к каталогу, в котором будут создаваться подкаталоги с отметкой времени, содержащие экспортированные SavedModelы. |
serving_input_receiver_fn | Функция без аргументов, возвращающая tf.estimator.export.ServingInputReceiver или tf.estimator.export.TensorServingInputReceiver. |
assets_extra | Словарь, определяющий, как заполнить каталог assets.extra в экспортированном SavedModel, или None если дополнительные ресурсы не нужны. |
as_text | Флаг, указывающий, следует ли записывать прото SavedModel в текстовом формате. |
checkpoint_path | Путь к контрольной точке для экспорта. Если None (по умолчанию), выбирается самая последняя контрольная точка, найденная в каталоге модели. |
strip_default_attrs | Булево значение. Если True, атрибуты с значениями по умолчанию будут удалены из NodeDefs. Для подробного руководства см. Удаление атрибутов со значениями по умолчанию. |
| Возвращаемые значения | |
|---|---|
| Путь к экспортированному каталогу в виде объекта типа bytes. |
| Исключения | |
|---|---|
ValueError | Если не предоставлен serving_input_receiver_fn, не предоставлены export_outputs, или контрольная точка не найдена. |
get_variable_names
get_variable_names()
Возвращает список всех имён переменных в этой модели.
| Возвращаемые значения | |
|---|---|
| Список имён. |
| Исключения | |
|---|---|
ValueError | Если у Estimator ещё нет контрольной точки. |
get_variable_value
get_variable_value(
name
)
Возвращает значение переменной, заданной по имени.
| Аргументы | |
|---|---|
name | Строка или список строк, имя тензора. |
| Возвращаемые значения | |
|---|---|
| Массив NumPy – значение тензора. |
| Исключения | |
|---|---|
ValueError | Если у Estimator ещё нет контрольной точки. |
latest_checkpoint
latest_checkpoint()
Находит имя файла последней сохранённой контрольной точки в model_dir.
| Возвращаемые значения | |
|---|---|
Полный путь к последней контрольной точке или None если контрольная точка не найдена. |
predict
predict(
input_fn, predict_keys=None, hooks=None, checkpoint_path=None,
yield_single_examples=True
)
Возвращает предсказания для заданных признаков.
Обратите внимание, что чередование двух результатов предсказания не работает. См.: issue/20506
| Аргументы | |
|---|---|
input_fn | Функция, которая строит признаки. Предсказание продолжается до тех пор, пока input_fn не сгенерирует исключение конца входных данных (tf.errors.OutOfRangeError или StopIteration). См. Предопределённые Estimators для получения дополнительной информации. Функция должна создавать и возвращать одно из следующего:
|
predict_keys | Список str, имена ключей для предсказания. Используется, если tf.estimator.EstimatorSpec.predictions является dict. Если используется predict_keys, то остальные предсказания будут отфильтрованы из словаря. Если None, возвращает все. |
hooks | Список экземпляров подкласса tf.train.SessionRunHook. Используется для обратных вызовов внутри вызова предсказания. |
checkpoint_path | Путь к конкретной контрольной точке для предсказания. Если None, используется последняя контрольная точка в model_dir. Если в model_dir нет контрольных точек, предсказание выполняется с только что инициализированными Variables вместо тех, которые восстановлены из контрольной точки. |
yield_single_examples | Если False, выводит всю партию, как возвращается model_fn вместо разбиения партии на отдельные элементы. Это полезно, если model_fn возвращает некоторые тензоры, размер первого измерения которых не равен размеру партии. |
Возвращаемые значения:
Вычисленные значения тензоров predictions.
| Исключения | |
|---|---|
ValueError | Если длина пакета предсказаний не совпадает, и yield_single_examples имеет значение True. |
ValueError | Если возникает конфликт между predict_keys и predictions. Например, если predict_keys не является None, но tf.estimator.EstimatorSpec.predictions не является dict. |
train
train(
input_fn, hooks=None, steps=None, max_steps=None, saving_listeners=None
)
Обучает модель с использованием обучающих данных input_fn.
| Аргументы | |
|---|---|
input_fn | Функция, которая предоставляет данные для обучения в виде мини-пакетов. См. Предопределённые оценщики для получения дополнительной информации. Функция должна строить и возвращать один из следующих объектов:
|
hooks | Список экземпляров подклассов tf.train.SessionRunHook. Используется для обратных вызовов внутри цикла обучения. |
steps | Количество шагов, на которых нужно обучать модель. Если None, обучаться бесконечно или до тех пор, пока input_fn не сгенерирует ошибку tf.errors.OutOfRange или исключение StopIteration. steps работает инкрементально. Если вызвать train(steps=10) дважды, обучение произойдёт в общей сложности за 20 шагов. Если OutOfRange или StopIteration произойдёт в середине, обучение прекратится до 20 шагов. Если вы не хотите инкрементального поведения, установите max_steps вместо этого. Если задано, max_steps должно быть None. |
max_steps | Общее количество шагов для обучения модели. Если None, обучаться бесконечно или до тех пор, пока input_fn не сгенерирует ошибку tf.errors.OutOfRange или исключение StopIteration. Если задано, steps должно быть None. Если OutOfRange или StopIteration произойдёт в середине, обучение прекратится до max_steps шагов. Два вызова train(steps=100) означают 200 итераций обучения. С другой стороны, два вызова train(max_steps=100) означают, что второй вызов не выполнит ни одной итерации, так как первый выполнил все 100 шагов. |
saving_listeners | список объектов CheckpointSaverListener. Используется для обратных вызовов, выполняемых непосредственно перед или после сохранения контрольных точек. |
| Возвращаемое значение | |
|---|---|
self, для цепочки вызовов. |
| Исключения | |
|---|---|
ValueError | Если и steps, и max_steps не являются None. |
ValueError | Если либо steps, либо max_steps <= 0. |
© 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.3/api_docs/python/tf/estimator/BoostedTreesRegressor