tf.estimator.BoostedTreesClassifier
| Просмотреть исходный код на GitHub |
Классификатор для моделей Tensorflow Boosted Trees.
tf.estimator.BoostedTreesClassifier(
feature_columns, n_batches_per_layer, model_dir=None,
n_classes=_HOLD_FOR_MULTI_CLASS_SUPPORT, weight_column=None,
label_vocabulary=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 | Каталог для сохранения параметров модели, графа и т.д. Это также можно использовать для загрузки контрольных точек из каталога в оценщик для продолжения обучения ранее сохранённой модели. |
n_classes | количество классов меток. По умолчанию используется бинарная классификация. Поддержка многоклассовой классификации ещё не реализована. |
weight_column | Строка или NumericColumn созданный tf.fc_old.numeric_column, определяющий столбец признака, представляющий веса. Используется для уменьшения или повышения важности примеров во время обучения. Он будет умножаться на потерю примера. Если это строка, она используется в качестве ключа для извлечения тензора весов из features. Если это NumericColumn, необработанный тензор извлекается по ключу weight_column.key, а затем weight_column.normalizer_fn применяется к нему для получения тензора весов. |
label_vocabulary | Список строк, представляющих возможные значения меток. Если задано, метки должны быть строкового типа и иметь любое значение в label_vocabulary. Если оно не задано, это означает, что метки уже закодированы как целые или вещественные числа в диапазоне [0, 1] для n_classes=2 и закодированы как целые значения в {0, 1,..., n_classes-1} для n_classes>2. Также будут возникать ошибки, если словарь не указан, а метки являются строками. |
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 Execution
Оценка может использоваться при включенном режиме 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 | Функция, которая строит входные данные для оценки. См. Premade Estimators для получения дополнительной информации. Функция должна создать и вернуть одну из следующих структур: * Объект 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([('возраст', -0.54), ('пол', 0.4), ('тариф', 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 для получения признаков 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, указывающее, в каком режиме будет осуществлен экспорт. Обратите внимание, что эта функция экспериментальна. |
| Возвращаемое значение | |
|---|---|
| Строка, содержащая путь к экспортированной директории. |
| Исключения | |
|---|---|
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 данного Estimator для генерации графика модели на основе этих признаков. Он восстанавливает заданную контрольную точку (или, если её нет, последнюю контрольную точку) в этом графике в новой сессии. Наконец, он создает временную директорию экспорта под заданной директорией 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, или контрольная точка не найдена. |
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
)
Возвращает предсказания для заданных признаков.
Обратите внимание, что чередование двух выходов predict не работает. См.: 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/BoostedTreesClassifier