Перцептрон
- классsklearn.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)[source]
-
Линейный классификатор перцептрона.
Реализация — это обёртка вокруг
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, итерации останавливаются, когда (loss > previous_loss - 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)[source]
-
Предсказание оценок уверенности для образцов.
Оценка уверенности для образца пропорциональна знаку расстояния этого образца до гиперплоскости.
- Параметры:
-
- 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()[source]
-
Преобразование матрицы коэффициентов в плотный массив.
Преобразует член
coef_(обратно) в numpy.ndarray. Это стандартный форматcoef_, и он требуется для подгонки, поэтому вызов этого метода необходим только для моделей, которые были ранее разрежены; в противном случае это бесполезная операция.- Возвращает:
-
- self
-
Обученная модель.
- fit(X, y, coef_init=None, intercept_init=None, sample_weight=None)[source]
-
Обучение линейной модели с помощью стохастического градиентного спуска.
- Параметры:
-
- X{массив, разреженная матрица}, форма (n_samples, n_features)
-
Данные обучения.
- yмассив NumPy формы (n_samples,)
-
Целевые значения.
- coef_initмассив NumPy формы (n_classes, n_features), по умолчанию None
-
Начальные коэффициенты для разогрева оптимизации.
- intercept_initмассив NumPy формы (n_classes,), по умолчанию None
-
Начальный свободный член для разогрева оптимизации.
- sample_weightмассив-подобный объект, форма (n_samples,), по умолчанию None
-
Веса, применяемые к отдельным образцам. Если не указаны, предполагаются равные веса. Эти веса будут умножены на class_weight (переданный через конструктор), если class_weight указан.
- Возвращаемое значение:
-
- selfобъект
-
Возвращает экземпляр self.
- get_metadata_routing()[source]
-
Получить маршрутизацию метаданных для этого объекта.
Обратитесь к Руководству пользователя для получения информации о том, как работает механизм маршрутизации.
- Возвращаемое значение:
-
- routingMetadataRequest
-
MetadataRequest, содержащий информацию о маршрутизации.
- get_params(deep=True)[source]
-
Получить параметры этого оценивателя.
- Параметры:
-
- deepbool, по умолчанию True
-
Если True, вернет параметры этого оценивателя и содержащихся вложенных под-объектов, которые являются оценивателями.
- Возвращаемое значение:
-
- paramsdict
-
Названия параметров, сопоставленные с их значениями.
- partial_fit(X, y, classes=None, sample_weight=None)[source]
-
Выполнить одну эпоху стохастического градиентного спуска на заданных образцах.
Внутренне этот метод использует
max_iter = 1. Поэтому не гарантируется, что после его вызова будет достигнут минимум функции стоимости. Такие вопросы, как сходимость по объективной функции, раннее прекращение и корректировки скорости обучения должны быть обработаны пользователем.- Параметры:
-
- X{массив, разреженная матрица}, форма (n_samples, n_features)
-
Подмножество данных обучения.
- yмассив NumPy формы (n_samples,)
-
Подмножество целевых значений.
- classesмассив NumPy формы (n_classes,), по умолчанию None
-
Классы для всех вызовов partial_fit. Могут быть получены с помощью
np.unique(y_all), где y_all — целевой вектор всей выборки. Этот аргумент требуется для первого вызова partial_fit и может быть опущен в последующих вызовах. Обратите внимание, что y не обязательно должен содержать все метки вclasses. - sample_weightмассив-подобный объект, форма (n_samples,), по умолчанию None
-
Веса, применяемые к отдельным образцам. Если не указаны, предполагаются равные веса.
- Возвращаемое значение:
-
- selfобъект
-
Возвращает экземпляр self.
- predict(X)[source]
-
Предсказание меток классов для образцов в X.
- Параметры:
-
- X{массив, разреженная матрица} формы (n_samples, n_features)
-
Матрица данных, для которой требуется получить предсказания.
- Возвращаемое значение:
-
- y_predмассив NumPy формы (n_samples,)
-
Вектор, содержащий метки классов для каждого образца.
- score(X, y, sample_weight=None)[source]
-
Возвращает среднюю точность на заданных тестовых данных и метках.
В многоклассовой классификации — это точность подмножества, что является жёсткой метрикой, поскольку для каждого образца требуется, чтобы каждый набор меток был правильно предсказан.
- Параметры:
-
- Xмассив-подобный объект формы (n_samples, n_features)
-
Тестовые образцы.
- yмассив-подобный объект формы (n_samples,) или (n_samples, n_outputs)
-
Истинные метки для
X. - sample_weightмассив-подобный объект формы (n_samples,), по умолчанию 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[source]
-
Запрос метаданных, переданных в метод
fit.Обратите внимание, что этот метод актуален только если
enable_metadata_routing=True(см.sklearn.set_config). Пожалуйста, ознакомьтесь с Руководством пользователя о том, как работает механизм маршрутизации.Варианты для каждого параметра:
-
True: метаданные запрашиваются и передаются вfitпри наличии. Запрос игнорируется, если метаданные не предоставлены. -
False: метаданные не запрашиваются, и мета-оценщик не передаст их вfit. -
None: метаданные не запрашиваются, и мета-оценщик выдаст ошибку, если пользователь их предоставит. -
str: метаданные должны быть переданы мета-оценщику с этим псевдонимом вместо исходного имени.
По умолчанию (
sklearn.utils.metadata_routing.UNCHANGED) сохраняется существующий запрос. Это позволяет изменять запросы для некоторых параметров, а не для всех.Добавлена в версии 1.3.
Примечание
Этот метод актуален только в том случае, если этот оценщик используется в качестве под-оценщика мета-оценщика, например, внутри
Pipeline. В противном случае он не имеет эффекта.- Parameters:
-
- 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.
- Returns:
-
- selfobject
-
Обновлённый объект.
-
- set_params(**params)[source]
-
Устанавливает параметры этого оценщика.
Метод работает как с простыми оценщиками, так и с вложенными объектами (такими как
Pipeline). Последние имеют параметры вида<component>__<parameter>, чтобы было возможно обновлять каждый компонент вложенного объекта.- Parameters:
-
- **paramsdict
-
Параметры оценщика.
- Returns:
-
- selfestimator instance
-
Экземпляр оценщика.
- set_partial_fit_request(*, classes:bool|None|str='$UNCHANGED$', sample_weight:bool|None|str='$UNCHANGED$') Perceptron[source]
-
Запрос метаданных, переданных в метод
partial_fit.Обратите внимание, что этот метод актуален только если
enable_metadata_routing=True(см.sklearn.set_config). Пожалуйста, ознакомьтесь с Руководством пользователя о том, как работает механизм маршрутизации.Варианты для каждого параметра:
-
True: метаданные запрашиваются и передаются вpartial_fitпри наличии. Запрос игнорируется, если метаданные не предоставлены. -
False: метаданные не запрашиваются, и мета-оценщик не передаст их вpartial_fit. -
None: метаданные не запрашиваются, и мета-оценщик выдаст ошибку, если пользователь их предоставит. -
str: метаданные должны быть переданы мета-оценщику с этим псевдонимом вместо исходного имени.
По умолчанию (
sklearn.utils.metadata_routing.UNCHANGED) сохраняется существующий запрос. Это позволяет изменять запросы для некоторых параметров, а не для всех.Добавлена в версии 1.3.
Примечание
Этот метод актуален только в том случае, если этот оценщик используется в качестве под-оценщика мета-оценщика, например, внутри
Pipeline. В противном случае он не имеет эффекта.- Parameters:
-
- classesstr, True, False, or None, default=sklearn.utils.metadata_routing.UNCHANGED
-
Маршрутизация метаданных для параметра
classesвpartial_fit. - sample_weightstr, True, False, or None, default=sklearn.utils.metadata_routing.UNCHANGED
-
Маршрутизация метаданных для параметра
sample_weightвpartial_fit.
- Returns:
-
- selfobject
-
Обновлённый объект.
-
- set_score_request(*, sample_weight:bool|None|str='$UNCHANGED$') Perceptron[source]
-
Запрос метаданных, передаваемых методу
score.Обратите внимание, что этот метод актуален только если
enable_metadata_routing=True(см.sklearn.set_config). Пожалуйста, ознакомьтесь с Руководством пользователя по принципу работы механизма маршрутизации.Доступные варианты для каждого параметра:
-
True: метаданные запрашиваются и передаются методуscoreпри их наличии. Запрос игнорируется, если метаданные отсутствуют. -
False: метаданные не запрашиваются, и мета-эстиматор не передаст ихscore. -
None: метаданные не запрашиваются, и мета-эстиматор выдаст ошибку, если пользователь их предоставит. -
str: метаданные должны быть переданы мета-эстиматору с указанным псевдонимом вместо исходного названия.
По умолчанию (
sklearn.utils.metadata_routing.UNCHANGED) сохраняется существующий запрос. Это позволяет изменить запрос для некоторых параметров, а не для других.Добавлен в версии 1.3.
Примечание
Этот метод актуален только если этот эстиматор используется в качестве подэстиматора мета-эстиматора, например, внутри
Pipeline. В противном случае он не имеет эффекта.- Parameters:
-
- sample_weightstr, True, False, or None, default=sklearn.utils.metadata_routing.UNCHANGED
-
Маршрутизация метаданных для параметра
sample_weightвscore.
- Returns:
-
- selfobject
-
Обновленный объект.
-
- sparsify()[source]
-
Преобразовать матрицу коэффициентов в разреженный формат.
Преобразует член
coef_в матрицу scipy.sparse, что для моделей с L1-регуляризацией может быть намного более эффективным с точки зрения памяти и хранения, чем обычное представление numpy.ndarray.Член
intercept_не преобразуется.- Returns:
-
- self
-
Обученный эстиматор.
Примечания
Для неразреженных моделей, то есть когда в
coef_не много нулевых элементов, это может фактически увеличить использование памяти, поэтому используйте этот метод с осторожностью. Правило большого пальца состоит в том, что количество нулевых элементов, которое можно вычислить с помощью(coef_ == 0).sum(), должно быть более 50%, чтобы это давало ощутимые преимущества.После вызова этого метода дальнейшая подгонка с помощью метода partial_fit (если таковой имеется) не будет работать, пока вы не вызовете densify.
Примеры из галереи
© 2007–2025 The scikit-learn developers
Licensed under the 3-clause BSD License.
https://scikit-learn.org/1.6/modules/generated/sklearn.linear_model.Perceptron.html