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