tf.estimator.BoostedTreesRegressor
| Просмотреть исходный код на GitHub |
Регрессор для моделей Tensorflow Boosted Trees.
tf.estimator.BoostedTreesRegressor(
feature_columns, n_batches_per_layer, model_dir=None,
label_dimension=_HOLD_FOR_MULTI_DIM_SUPPORT, 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: минимальный хессиан, необходимый для узла, чтобы разбиение считалось приемлемым. Значение сравнивается с суммой(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 execution. Обратите внимание, что 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 | Функция, которая строит входные данные для оценки. См. Предопределённые оценщики для получения дополнительной информации. Функция должна создавать и возвращать один из следующих объектов: * Объект tf.data.Dataset: Выходы объекта Dataset должны быть кортежем (features, labels) с теми же ограничениями, что и ниже. * Кортеж (features, labels): Где features — объект tf.Tensor или словарь с именем признака в виде строки к Tensor, а labels — объект Tensor или словарь с именем метки в виде строки к Tensor. И features и labels потребляются model_fn. Они должны удовлетворять ожиданиям model_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'}.
| Аргументы | |
|---|---|
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 (по умолчанию), выбирается самый последний контрольный пункт, найденный в каталоге модели. |
| Возвращает | |
|---|---|
| Строковый путь к экспортированному каталогу. |
| Возбуждает | |
|---|---|
ValueError | если какой-либо input_receiver_fn None, нет export_outputs, или нет контрольного пункта. |
experimental_feature_importances
experimental_feature_importances(
normalize=False
)
Вычисляет важность признаков на основе прироста.
Чем выше значение, тем важнее соответствующий признак.
| Аргументы | |
|---|---|
normalize | Если True, нормализует важность признаков. |
| Возвращает | |
|---|---|
feature_importances | OrderedDict, где ключи — имена признаков, а значения — важности. Он отсортирован по важности. |
| Возбуждает | |
|---|---|
ValueError | При попытке нормализации на пустом ансамбле или ансамбле деревьев, у которых нет разбиений. Или при попытке нормализации, если важности признаков имеют отрицательные значения. |
experimental_predict_with_explanations
experimental_predict_with_explanations(
input_fn, predict_keys=None, hooks=None, checkpoint_path=None
)
Вычисляет выходы, объясняющие модель для каждого примера вместе с прогнозами.
В настоящее время поддерживаются направленные вклады признаков (DFC). Для каждого экземпляра DFC показывают совокупный вклад каждого признака. См. https://arxiv.org/abs/1312.1121 и http://blog.datadive.net/interpreting-random-forests/ для получения дополнительной информации.
| Аргументы | |
|---|---|
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, где ключи — имена признаков, а значения — вклады. Он отсортирован по абсолютному значению вклада (например, OrderedDict([('age', -0.54), ('gender', 0.4), ('fare', 0.21)])). Значение 'bias' будет одинаковым для всех экземпляров и соответствует вероятности (классификация) или прогнозу (регрессия) распределения обучающих данных.
| Возбуждает | |
|---|---|
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 для получения функций Tensors, а затем вызывая 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, указывающее, какой режим будет экспортирован. Обратите внимание, что эта функция находится в стадии эксперимента. |
| Возвращает | |
|---|---|
| Строковый путь к экспортированному каталогу. |
| Возможные исключения | |
|---|---|
ValueError | если не предоставлен serving_input_receiver_fn, не предоставлены export_outputs, или не найден контрольный пункт. |
data-text="export_savedmodel" id="export_savedmodel" tabindex="0">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 данного 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.ExportOutput, а входные данные всегда являются получателями входных данных, предоставленными 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, атрибуты с значениями по умолчанию будут удалены из NodeDef. Для подробного руководства см. Удаление атрибутов со значениями по умолчанию. |
| Возвращает | |
|---|---|
| Строковый путь к экспортированному каталогу. |
| Возможные исключения | |
|---|---|
ValueError | если не предоставлен serving_input_receiver_fn, не предоставлены export_outputs, или не найден контрольный пункт. |
data-text="get_variable_names" id="get_variable_names" tabindex="0">get_variable_names
get_variable_names()
Возвращает список всех имён переменных в этой модели.
| Возвращает | |
|---|---|
| Список имён. |
| Возможные исключения | |
|---|---|
ValueError | Если модель ещё не создала контрольный пункт. |
data-text="get_variable_value" id="get_variable_value" tabindex="0">get_variable_value
get_variable_value(
name
)
Возвращает значение переменной по имени.
| Аргументы | |
|---|---|
name | строка или список строк, имя тензора. |
| Возвращает | |
|---|---|
| Массив NumPy - значение тензора. |
| Возможные исключения | |
|---|---|
ValueError | Если модель ещё не создала контрольный пункт. |
data-text="latest_checkpoint" id="latest_checkpoint" tabindex="0">latest_checkpoint
latest_checkpoint()
Находит имя файла последнего сохранённого контрольного пункта в model_dir.
| Возвращает | |
|---|---|
Полный путь к последнему контрольному пункту или None если контрольный пункт не был найден. |
data-text="predict" id="predict" tabindex="0">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). Дополнительную информацию см. в разделе Предопределённые оценщики. Функция должна сконструировать и вернуть одно из следующего:
|
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/r1.15/api_docs/python/tf/estimator/BoostedTreesRegressor