PassiveAggressiveRegressor#

класс sklearn.linear_model.PassiveAggressiveRegressor(*, C=1.0, fit_intercept=True, max_iter=1000, tol=0.001, early_stopping=False, validation_fraction=0.1, n_iter_no_change=5, перемешивание=True, verbose=0, потеря='epsilon_insensitive', эпсилон=0.1, random_state=None, warm_start=False, среднее=False)[источник]#

Пассивно-агрессивный регрессор.

Устарело с версии 1.8: Весь класс PassiveAggressiveRegressor был устаревшим в версии 1.8 и будет удален в 1.10. Вместо этого используйте:

reg = SGDRegressor(
    loss="epsilon_insensitive",
    penalty=None,
    learning_rate="pa1",  # or "pa2"
    eta0=1.0,  # for parameter C
)

Подробнее в Руководство пользователя.

Параметры:
Cfloat, по умолчанию=1.0

Параметр агрессивности для пассивно-агрессивного алгоритма, см. [1]. Для PA-I это максимальный размер шага. Для PA-II он регулирует размер шага (чем меньше C тем больше он регуляризует). Как общее правило, C должно быть малым, когда данные зашумлены.

fit_interceptbool, по умолчанию=True

Следует ли оценивать свободный член. Если False, предполагается, что данные уже центрированы. По умолчанию True.

max_iterint, по умолчанию=1000

Максимальное количество проходов по обучающим данным (также называемых эпохами). Это влияет только на поведение в fit метод, а не partial_fit метод.

Добавлено в версии 0.19.

tolfloat или None, по умолчанию=1e-3

Критерий остановки. Если он не None, итерации остановятся, когда (потеря > предыдущая_потеря - tol).

Добавлено в версии 0.19.

early_stoppingbool, по умолчанию=False

Использовать ли раннюю остановку для завершения обучения, когда оценка валидации не улучшается. Если установлено в True, автоматически выделяется часть обучающих данных для валидации и обучение завершается, когда оценка валидации не улучшается как минимум на tol в течение n_iter_no_change последовательных эпох.

Добавлено в версии 0.20.

validation_fractionfloat, по умолчанию=0.1

Доля обучающих данных, которую следует отложить в качестве проверочного набора для ранней остановки. Должна быть между 0 и 1. Используется только если early_stopping равно True.

Добавлено в версии 0.20.

n_iter_no_changeint, по умолчанию=5

Количество итераций без улучшения, которое нужно подождать перед ранней остановкой.

Добавлено в версии 0.20.

перемешиваниеbool, по умолчанию=True

Следует ли перемешивать обучающие данные после каждой эпохи.

verboseint, по умолчанию=0

Уровень подробности вывода.

потеряstr, по умолчанию="epsilon_insensitive"

Используемая функция потерь: epsilon_insensitive: эквивалентно PA-I в справочной статье. squared_epsilon_insensitive: эквивалентно PA-II в справочной статье.

эпсилонfloat, по умолчанию=0.1

Если разница между текущим предсказанием и правильной меткой ниже этого порога, модель не обновляется.

random_stateint, экземпляр RandomState, по умолчанию=None

Используется для перемешивания обучающих данных, когда shuffle установлено в True. Передайте целое число для воспроизводимого вывода при множественных вызовах функции. См. Глоссарий.

warm_startbool, по умолчанию=False

При установке в True повторно использует решение предыдущего вызова fit в качестве инициализации, в противном случае просто стирает предыдущее решение. См. Глоссарий.

Повторные вызовы fit или partial_fit при warm_start=True могут привести к другому решению, чем при однократном вызове fit, из-за способа перемешивания данных.

среднееbool или int, по умолчанию=False

При установке в True вычисляет усредненные веса SGD и сохраняет результат в coef_ атрибут. Если установлено целое число больше 1, усреднение начнется, когда общее количество просмотренных выборок достигнет average. Например, average=10 начнет усреднение после просмотра 10 выборок.

Добавлено в версии 0.19: параметр среднее использовать усреднение весов в SGD.

Атрибуты:
coef_массив, форма = [1, n_features] если n_classes == 2 иначе [n_classes, n_features]

Веса, назначенные признакам.

intercept_массив, форма = [1], если n_classes == 2, иначе [n_classes]

Константы в функции принятия решений.

n_features_in_int

Количество признаков, замеченных во время fit.

Добавлено в версии 0.24.

feature_names_in_ndarray формы (n_features_in_,)

Имена признаков, наблюдаемых во время fit. Определено только когда X имеет имена признаков, которые все являются строками.

Добавлено в версии 1.0.

n_iter_int

Фактическое количество итераций для достижения критерия остановки.

t_int

Количество обновлений весов, выполненных во время обучения. То же, что и (n_iter_ * n_samples + 1).

Смотрите также

SGDRegressor

Линейная модель, обученная путем минимизации регуляризованной эмпирической потери с SGD.

Ссылки

Online Passive-Aggressive Algorithms <http://jmlr.csail.mit.edu/papers/volume7/crammer06a/crammer06a.pdf> К. Краммер, О. Декель, Дж. Кешат, С. Шалев-Шварц, Й. Сингер - JMLR (2006).

Примеры

>>> from sklearn.linear_model import PassiveAggressiveRegressor
>>> from sklearn.datasets import make_regression
>>> X, y = make_regression(n_features=4, random_state=0)
>>> regr = PassiveAggressiveRegressor(max_iter=100, random_state=0,
... tol=1e-3)
>>> regr.fit(X, y)
PassiveAggressiveRegressor(max_iter=100, random_state=0)
>>> print(regr.coef_)
[20.48736655 34.18818427 67.59122734 87.94731329]
>>> print(regr.intercept_)
[-0.02306214]
>>> print(regr.predict([[0, 0, 0, 0]]))
[-0.02306214]
densify()[источник]#

Преобразовать матрицу коэффициентов в плотный формат массива.

Преобразует coef_ преобразование (обратное) в numpy.ndarray. Это формат по умолчанию coef_ и требуется для обучения, поэтому вызов этого метода необходим только для моделей, которые ранее были разрежены; в противном случае это пустая операция.

Возвращает:
self

Обученный оценщик.

fit(X, y, coef_init=None, intercept_init=None)[источник]#

Обучить линейную модель с помощью алгоритма Passive Aggressive.

Параметры:
X{array-like, sparse matrix} формы (n_samples, n_features)

Обучающие данные.

yмассив numpy формы [n_samples]

Целевые значения.

coef_initarray, shape = [n_features]

Начальные коэффициенты для теплого старта оптимизации.

intercept_initмассив, форма = [1]

Начальный intercept для теплого старта оптимизации.

Возвращает:
selfobject

Обученный оценщик.

6332()[источник]#

Получить маршрутизацию метаданных этого объекта.

Пожалуйста, проверьте Руководство пользователя о том, как работает механизм маршрутизации.

Возвращает:
маршрутизацияMetadataRequest

A MetadataRequest Инкапсуляция информации о маршрутизации.

get_params(глубокий=True)[источник]#

Получить параметры для этого оценщика.

Параметры:
глубокийbool, по умолчанию=True

Если True, вернет параметры для этого оценщика и вложенных подобъектов, которые являются оценщиками.

Возвращает:
paramsdict

Имена параметров, сопоставленные с их значениями.

partial_fit(X, y)[источник]#

Обучить линейную модель с помощью алгоритма Passive Aggressive.

Параметры:
X{array-like, sparse matrix} формы (n_samples, n_features)

Подмножество обучающих данных.

yмассив numpy формы [n_samples]

Подмножество целевых значений.

Возвращает:
selfobject

Обученный оценщик.

predict(X)[источник]#

Прогнозирование с использованием линейной модели.

Параметры:
X{array-like, sparse matrix}, форма (n_samples, n_features)

Входные данные.

Возвращает:
ndarray формы (n_samples,)

Предсказанные значения целевой переменной для каждого элемента в X.

score(X, y, sample_weight=None)[источник]#

Возвращает коэффициент детерминации на тестовых данных.

Коэффициент детерминации, \(R^2\), определяется как \((1 - \frac{u}{v})\), где \(u\) является остаточной суммой квадратов ((y_true - y_pred)** 2).sum() и \(v\) является общей суммой квадратов ((y_true - y_true.mean()) ** 2).sum()Лучший возможный результат - 1.0, и он может быть отрицательным (потому что модель может быть сколь угодно хуже). Постоянная модель, которая всегда предсказывает ожидаемое значение y, игнорируя входные признаки, получит \(R^2\) оценка 0.0.

Параметры:
Xarray-like формы (n_samples, n_features)

Тестовые выборки. Для некоторых оценщиков это может быть предварительно вычисленная матрица ядра или список общих объектов вместо этого с формой (n_samples, n_samples_fitted), где n_samples_fitted — это количество образцов, использованных при обучении оценщика.

yarray-like формы (n_samples,) или (n_samples, n_outputs)

Истинные значения для X.

sample_weightarray-like формы (n_samples,), по умолчанию=None

Веса выборок.

Возвращает:
scorefloat

\(R^2\) of self.predict(X) относительно y.

Примечания

The \(R^2\) оценка, используемая при вызове score на регрессоре использует multioutput='uniform_average' с версии 0.23 для сохранения согласованности со значением по умолчанию r2_score. Это влияет на score метод всех многомерных регрессоров (кроме MultiOutputRegressor).

set_fit_request(*, coef_init: bool | None | str = '$UNCHANGED$', intercept_init: bool | None | str = '$UNCHANGED$') PassiveAggressiveRegressor[источник]#

Настроить, следует ли запрашивать передачу метаданных в fit метод.

Обратите внимание, что этот метод актуален только тогда, когда этот оценщик используется как под-оценщик внутри мета-оценщик и маршрутизация метаданных включена с помощью enable_metadata_routing=True (см. sklearn.set_config). Пожалуйста, проверьте Руководство пользователя о том, как работает механизм маршрутизации.

Варианты для каждого параметра:

  • True: запрашиваются метаданные и передаются fit если предоставлено. Запрос игнорируется, если метаданные не предоставлены.

  • False: метаданные не запрашиваются, и мета-оценщик не передаст их в fit.

  • None: метаданные не запрашиваются, и мета-оценщик выдаст ошибку, если пользователь предоставит их.

  • str: метаданные должны передаваться мета-оценщику с этим заданным псевдонимом вместо исходного имени.

По умолчанию (sklearn.utils.metadata_routing.UNCHANGED) сохраняет существующий запрос. Это позволяет изменять запрос для некоторых параметров, но не для других.

Добавлено в версии 1.3.

Параметры:
coef_initstr, True, False или None, по умолчанию=sklearn.utils.metadata_routing.UNCHANGED

Маршрутизация метаданных для coef_init параметр в fit.

intercept_initstr, True, False или None, по умолчанию=sklearn.utils.metadata_routing.UNCHANGED

Маршрутизация метаданных для intercept_init параметр в fit.

Возвращает:
selfobject

Обновленный объект.

set_params(**params)[источник]#

Установить параметры этого оценщика.

Метод работает как на простых оценщиках, так и на вложенных объектах (таких как Pipeline). Последние имеют параметры вида __ чтобы можно было обновить каждый компонент вложенного объекта.

Параметры:
**paramsdict

Параметры оценщика.

Возвращает:
selfэкземпляр estimator

Экземпляр оценщика.

set_partial_fit_request(*, sample_weight: bool | None | str = '$UNCHANGED$') PassiveAggressiveRegressor[источник]#

Настроить, следует ли запрашивать передачу метаданных в partial_fit метод.

Обратите внимание, что этот метод актуален только тогда, когда этот оценщик используется как под-оценщик внутри мета-оценщик и маршрутизация метаданных включена с помощью enable_metadata_routing=True (см. sklearn.set_config). Пожалуйста, проверьте Руководство пользователя о том, как работает механизм маршрутизации.

Варианты для каждого параметра:

  • True: запрашиваются метаданные и передаются partial_fit если предоставлено. Запрос игнорируется, если метаданные не предоставлены.

  • False: метаданные не запрашиваются, и мета-оценщик не передаст их в partial_fit.

  • None: метаданные не запрашиваются, и мета-оценщик выдаст ошибку, если пользователь предоставит их.

  • str: метаданные должны передаваться мета-оценщику с этим заданным псевдонимом вместо исходного имени.

По умолчанию (sklearn.utils.metadata_routing.UNCHANGED) сохраняет существующий запрос. Это позволяет изменять запрос для некоторых параметров, но не для других.

Добавлено в версии 1.3.

Параметры:
sample_weightstr, True, False или None, по умолчанию=sklearn.utils.metadata_routing.UNCHANGED

Маршрутизация метаданных для sample_weight параметр в partial_fit.

Возвращает:
selfobject

Обновленный объект.

set_score_request(*, sample_weight: bool | None | str = '$UNCHANGED$') PassiveAggressiveRegressor[источник]#

Настроить, следует ли запрашивать передачу метаданных в score метод.

Обратите внимание, что этот метод актуален только тогда, когда этот оценщик используется как под-оценщик внутри мета-оценщик и маршрутизация метаданных включена с помощью enable_metadata_routing=True (см. sklearn.set_config). Пожалуйста, проверьте Руководство пользователя о том, как работает механизм маршрутизации.

Варианты для каждого параметра:

  • True: запрашиваются метаданные и передаются score если предоставлено. Запрос игнорируется, если метаданные не предоставлены.

  • False: метаданные не запрашиваются, и мета-оценщик не передаст их в score.

  • None: метаданные не запрашиваются, и мета-оценщик выдаст ошибку, если пользователь предоставит их.

  • str: метаданные должны передаваться мета-оценщику с этим заданным псевдонимом вместо исходного имени.

По умолчанию (sklearn.utils.metadata_routing.UNCHANGED) сохраняет существующий запрос. Это позволяет изменять запрос для некоторых параметров, но не для других.

Добавлено в версии 1.3.

Параметры:
sample_weightstr, True, False или None, по умолчанию=sklearn.utils.metadata_routing.UNCHANGED

Маршрутизация метаданных для sample_weight параметр в score.

Возвращает:
selfobject

Обновленный объект.

разрежать()[источник]#

Преобразовать матрицу коэффициентов в разреженный формат.

Преобразует coef_ члену разреженной матрицы scipy.sparse, что для моделей с L1-регуляризацией может быть значительно более эффективным по памяти и хранению, чем обычное представление numpy.ndarray.

The intercept_ Член не преобразован.

Возвращает:
self

Обученный оценщик.

Примечания

Для неразреженных моделей, т.е. когда в coef_, это может фактически увеличить использование памяти, поэтому используйте этот метод с осторожностью. Эмпирическое правило: количество нулевых элементов, которое можно вычислить с помощью (coef_ == 0).sum(), должно быть больше 50%, чтобы это обеспечивало значительные преимущества.

После вызова этого метода дальнейшее обучение с помощью метода partial_fit (если он есть) не будет работать, пока вы не вызовете densify.