Обучает линейную модель для классификации экземпляров в один из нескольких возможных классов. При количестве возможных классов 2, это бинарная классификация.
Пример:
sparse_column_a = sparse_column_with_hash_bucket(...)
sparse_column_b = sparse_column_with_hash_bucket(...)
sparse_feature_a_x_sparse_feature_b = crossed_column(...)
# Estimator using the default optimizer.
estimator = LinearClassifier(
feature_columns=[sparse_column_a, sparse_feature_a_x_sparse_feature_b])
# Or estimator using the FTRL optimizer with regularization.
estimator = LinearClassifier(
feature_columns=[sparse_column_a, sparse_feature_a_x_sparse_feature_b],
optimizer=tf.compat.v1.train.FtrlOptimizer(
learning_rate=0.1,
l1_regularization_strength=0.001
))
# Or estimator using the SDCAOptimizer.
estimator = LinearClassifier(
feature_columns=[sparse_column_a, sparse_feature_a_x_sparse_feature_b],
optimizer=tf.contrib.linear_optimizer.SDCAOptimizer(
example_id_column='example_id',
num_loss_partitions=...,
symmetric_l2_regularization=2.0
))
# Input builders
def input_fn_train: # returns x, y (where y represents label's class index).
...
def input_fn_eval: # returns x, y (where y represents label's class index).
...
def input_fn_predict: # returns x, None.
...
estimator.fit(input_fn=input_fn_train)
estimator.evaluate(input_fn=input_fn_eval)
# predict_classes returns class indices.
estimator.predict_classes(input_fn=input_fn_predict)
Если пользователь указывает label_keys в конструкторе, метки должны быть строками из label_keys словаря. Пример:
label_keys = ['label0', 'label1', 'label2']
estimator = LinearClassifier(
n_classes=n_classes,
feature_columns=[sparse_column_a, sparse_feature_a_x_sparse_feature_b],
label_keys=label_keys)
def input_fn_train: # returns x, y (where y is one of label_keys).
pass
estimator.fit(input_fn=input_fn_train)
def input_fn_eval: # returns x, y (where y is one of label_keys).
pass
estimator.evaluate(input_fn=input_fn_eval)
def input_fn_predict: # returns x, None
# predict_classes returns one of label_keys.
estimator.predict_classes(input_fn=input_fn_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 именем столбца «id», второй с 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 или SDCAOptimizer. Если не указан, будет использован оптимизатор Ftrl.
gradient_clip_norm
Вещественное число > 0. Если указано, градиенты обрезаются до их глобальной нормы с этим коэффициентом обрезки. См. tf.clip_by_global_norm для получения дополнительных сведений.
enable_centered_bias
Булево значение. Если True, оценщик обучит смещенную переменную для каждого класса. Остальная часть структуры модели обучит остаток после смещенной переменной.
_joint_weight
Если True, веса всех столбцов будут храниться в одной (возможно, разнесенной) переменной. Это более эффективно, но несовместимо с SDCAOptimizer и требует, чтобы все столбцы признаков были разреженными и использовали объединитель 'sum'.
config
Объект RunConfig для конфигурации параметров выполнения.
feature_engineering_fn
Функция обработки признаков. Принимает признаки и метки, которые являются результатом input_fn и возвращает признаки и метки, которые будут поданы в модель.
label_keys
Необязательный список строк размером [n_classes] , определяющий словарь меток. Поддерживается только для n_classes > 2.
Возбуждает
ValueError
если n_classes < 2.
ValueError
если enable_centered_bias=True и optimizer — SDCAOptimizer.
Атрибуты
config
model_dir
Возвращает путь, по которому процесс оценки будет искать контрольные точки.
Экспортирует график вывода как 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 предоставлен.
Возвращает прогнозы для заданных признаков. (устаревшие значения аргументов) (устаревшие значения аргументов)
По умолчанию возвращает предсказанные классы. Но это значение по умолчанию скоро будет удалено. Пользователи должны либо передать outputs, либо вызвать метод predict_classes.
Аргументы
x
признаки.
input_fn
Функция ввода. Если установлено, x должен быть None.
batch_size
Переопределить размер пакета по умолчанию.
outputs
список str, имя выходного значения для прогнозирования. Если None, возвращаются классы.
as_iterable
Если True, возвращает итерируемый объект, который продолжает выдавать прогнозы для каждого примера до тех пор, пока ввод не иссякнет. Примечание: Ввод должен завершиться, если вы хотите, чтобы итерируемый объект завершился (например, обязательно передайте num_epochs=1, если вы используете что-то вроде read_batch_features).
Возвращает
Массив NumPy предсказанных классов с формой размер_пакета. Каждый предсказанный класс представлен своим индексом класса (т.е. целым числом от 0 до n_classes-1). Если outputs установлено, возвращает словарь прогнозов.
Возвращает предсказанные классы для заданных признаков. (устаревшие значения аргументов)
Аргументы
x
признаки.
input_fn
Функция ввода. Если установлено, x должен быть None.
batch_size
Переопределить размер пакета по умолчанию.
as_iterable
Если True, возвращает итерируемый объект, который продолжает выдавать прогнозы для каждого примера до тех пор, пока ввод не иссякнет. Примечание: Ввод должен завершиться, если вы хотите, чтобы итерируемый объект завершился (например, обязательно передайте num_epochs=1, если вы используете что-то вроде read_batch_features).
Возвращает
Массив NumPy предсказанных классов с формой размер_пакета. Каждый предсказанный класс представлен своим индексом класса (т.е. целым числом от 0 до n_classes-1).
Возвращает предсказанные вероятности для заданных признаков. (устаревшие значения аргументов)
Аргументы
x
признаки.
input_fn
Функция ввода. Если установлено, x и y должны быть None.
batch_size
Переопределить размер пакета по умолчанию.
as_iterable
Если True, возвращает итерируемый объект, который продолжает выдавать прогнозы для каждого примера до тех пор, пока ввод не иссякнет. Примечание: Ввод должен завершиться, если вы хотите, чтобы итерируемый объект завершился (например, обязательно передайте num_epochs=1, если вы используете что-то вроде read_batch_features).
Метод работает как с простыми оценщиками, так и с вложенными объектами (такими как конвейеры). Первые имеют параметры вида <component>__<parameter>, что позволяет обновлять каждый компонент вложенного объекта.