Spec-Zone.ru › scikit-learn

Перцептрон

класс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.

END_OF_DOCUMENT_MARKER
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

Spec-Zone.ru

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