Spec-Zone.ru › scikit-learn

Perceptron

classsklearn.linear_model.Perceptron(*, penalty=None, alpha=0.0001, l1_ratio=0.15, fit_intercept=True, max_iter=1000, tol=0.001, shuffle=True, verbose=0, eta0=1.0, n_jobs=None, random_state=0, early_stopping=False, validation_fraction=0.1, n_iter_no_change=5, class_weight=None, warm_start=False)[исходный код]

Линейный классификатор-персептрон.

Реализация представляет собой оболочку над SGDClassifier, в которой параметры loss и learning_rate заданы следующим образом:

SGDClassifier(loss="perceptron", learning_rate="constant")

Другие доступные параметры описаны ниже и передаются в SGDClassifier.

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

Параметры:
penalty{‘l2’,’l1’,’elasticnet’}, default=None

Используемый штраф (также называемый членом регуляризации).

alphafloat, default=0.0001

Константа, на которую умножается член регуляризации, если используется регуляризация.

l1_ratiofloat, default=0.15

Параметр смешивания Elastic Net, где 0 <= l1_ratio <= 1. l1_ratio=0 соответствует штрафу L2, l1_ratio=1 — штрафу L1. Используется только при penalty='elasticnet'.

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

fit_interceptbool, default=True

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

max_iterint, default=1000

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

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

tolfloat or None, default=1e-3

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

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

shufflebool, default=True

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

verboseint, default=0

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

eta0float, default=1

Константа, на которую умножаются обновления.

n_jobsint, default=None

Количество процессоров, используемых для вычислений OVA (One Versus All, «один против всех» для задач с несколькими классами). None означает 1, кроме случаев использования контекста joblib.parallel_backend. -1 означает использование всех процессоров. Подробнее см. в глоссарии.

random_stateint, RandomState instance or None, default=0

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

early_stoppingbool, default=False

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

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

validation_fractionfloat, default=0.1

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

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

n_iter_no_changeint, default=5

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

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

class_weightdict, {class_label: weight} or “balanced”, default=None

Значение по умолчанию для параметра class_weight при обучении.

Веса, связанные с классами. Если они не заданы, предполагается, что вес каждого класса равен единице.

Режим “balanced” использует значения y для автоматической настройки весов, обратно пропорциональных частоте классов во входных данных, согласно n_samples / (n_classes * np.bincount(y)).

warm_startbool, default=False

Если задано значение True, для инициализации повторно используется результат предыдущего вызова fit; в противном случае предыдущий результат просто удаляется. См. глоссарий.

Атрибуты:
classes_ndarray of shape (n_classes,)

Метки уникальных классов.

coef_ndarray of shape (1, n_features) if n_classes == 2 else (n_classes, n_features)

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

intercept_ndarray of shape (1,) if n_classes == 2 else (n_classes,)

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

n_features_in_int

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

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

feature_names_in_ndarray of shape (n_features_in_,)

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

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

n_iter_int

Фактическое количество итераций, необходимое для достижения критерия остановки. При обучении с несколькими классами это максимум среди всех бинарных моделей.

t_int

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

См. также

sklearn.linear_model.SGDClassifier

Линейные классификаторы (SVM, логистическая регрессия и т. д.) с обучением методом стохастического градиентного спуска.

Примечания

Perceptron — алгоритм классификации, использующий ту же базовую реализацию, что и SGDClassifier. Фактически, Perceptron() эквивалентен SGDClassifier(loss="perceptron", eta0=1, learning_rate="constant", penalty=None).

Ссылки

https://en.wikipedia.org/wiki/Perceptron и приведённые там ссылки.

Примеры

>>> from sklearn.datasets import load_digits
>>> from sklearn.linear_model import Perceptron
>>> X, y = load_digits(return_X_y=True)
>>> clf = Perceptron(tol=1e-3, random_state=0)
>>> clf.fit(X, y)
Perceptron()
>>> clf.score(X, y)
0.939...
decision_function(X)[исходный код]

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

Оценка уверенности для образца пропорциональна знаковому расстоянию от этого образца до гиперплоскости.

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

Матрица данных, для которой требуется получить оценки уверенности.

Возвращает:
scoresndarray of shape (n_samples,) or (n_samples, n_classes)

Оценки уверенности для каждой комбинации (n_samples, n_classes). В бинарном случае оценка уверенности для self.classes_[1], где значение >0 означает, что будет предсказан этот класс.

densify()[исходный код]

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

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

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

Обученный оцениватель.

fit(X, y, coef_init=None, intercept_init=None, sample_weight=None)[исходный код]

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

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

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

yndarray of shape (n_samples,)

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

coef_initndarray of shape (n_classes, n_features), default=None

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

intercept_initndarray of shape (n_classes,), default=None

Начальный свободный член для запуска оптимизации с ранее сохранённого состояния.

sample_weightarray-like, shape (n_samples,), default=None

Веса, применяемые к отдельным образцам. Если они не заданы, предполагаются равномерные веса. Эти веса умножаются на class_weight (переданный через конструктор), если class_weight задан.

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

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

get_metadata_routing()[исходный код]

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

См. руководство пользователя, где описан принцип работы механизма маршрутизации.

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

Объект MetadataRequest, содержащий информацию о маршрутизации.

get_params(deep=True)[исходный код]

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

Параметры:
deepbool, default=True

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

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

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

partial_fit(X, y, classes=None, sample_weight=None)[исходный код]

Выполнить одну эпоху стохастического градиентного спуска для заданных образцов.

Внутри этот метод использует max_iter = 1. Поэтому после однократного вызова не гарантируется достижение минимума функции стоимости. Пользователь должен самостоятельно учитывать такие аспекты, как сходимость целевой функции, ранняя остановка и настройка скорости обучения.

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

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

yndarray of shape (n_samples,)

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

classesndarray of shape (n_classes,), default=None

Классы, учитываемые во всех вызовах partial_fit. Их можно получить с помощью np.unique(y_all), где y_all — целевой вектор всего набора данных. Этот аргумент необходим при первом вызове partial_fit, в последующих вызовах его можно не указывать. Обратите внимание, что y не обязательно должен содержать все метки из classes.

sample_weightarray-like, shape (n_samples,), default=None

Веса, применяемые к отдельным образцам. Если они не заданы, предполагаются равномерные веса.

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

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

predict(X)[исходный код]

Предсказать метки классов для образцов в X.

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

Матрица данных, для которой требуется получить предсказания.

Возвращает:
y_predndarray of shape (n_samples,)

Вектор, содержащий метки классов для каждого образца.

score(X, y, sample_weight=None)[исходный код]

Возвращает точность на предоставленных данных и метках.

В многометочной классификации это точность по подмножествам — строгая метрика, поскольку для каждого образца необходимо правильно предсказать весь набор меток.

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

Тестовые образцы.

yarray-like of shape (n_samples,) or (n_samples, n_outputs)

Истинные метки для X.

sample_weightarray-like of shape (n_samples,), default=None

Веса образцов.

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

Средняя точность self.predict(X) относительно y.

set_fit_request(*, coef_init:bool|None|str='$UNCHANGED$', intercept_init:bool|None|str='$UNCHANGED$', sample_weight:bool|None|str='$UNCHANGED$') → Perceptron[исходный код]

Настроить, следует ли запрашивать передачу метаданных методу 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, or None, default=sklearn.utils.metadata_routing.UNCHANGED

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

intercept_initstr, True, False, or None, default=sklearn.utils.metadata_routing.UNCHANGED

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

sample_weightstr, True, False, or None, default=sklearn.utils.metadata_routing.UNCHANGED

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

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

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

set_params(**params)[исходный код]

Задать параметры этого оценивателя.

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

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

Параметры оценивателя.

Возвращает:
selfestimator instance

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

set_partial_fit_request(*, classes:bool|None|str='$UNCHANGED$', sample_weight:bool|None|str='$UNCHANGED$') → Perceptron[исходный код]

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

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

Для каждого параметра доступны следующие варианты:

  • True: метаданные запрашиваются и передаются в partial_fit, если они предоставлены. Если метаданные не предоставлены, запрос игнорируется.
  • False: метаданные не запрашиваются, и метаоцениватель не будет передавать их в partial_fit.
  • None: метаданные не запрашиваются, и метаоцениватель вызовет ошибку, если пользователь их предоставит.
  • str: метаданные следует передавать метаоценивателю под указанным псевдонимом вместо исходного имени.

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

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

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

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

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

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

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

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

set_score_request(*, sample_weight:bool|None|str='$UNCHANGED$') → Perceptron[исходный код]

Настройте, следует ли запрашивать передачу метаданных методу 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

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

sparsify()[исходный код]

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

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

Атрибут intercept_ не преобразуется.

Предупреждение

Этот метод не поддерживается для оценивателей, обученных с входными данными array API (то есть когда sklearn.config_context используется с array_api_dispatch=True). Вызов может завершиться успешно, однако последующие вызовы predict и других методов, принимающих массивы, могут вызвать ошибку или вернуть неожиданные результаты.

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

Обученный оцениватель.

Примечания

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

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

Примеры из галереи

Классификация текстовых документов вне основной памяти

© 2007–2026 The scikit-learn developers
Licensed under the 3-clause BSD License.
https://scikit-learn.org/1.9/modules/generated/sklearn.linear_model.Perceptron.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API