Перцептрон#
- класс sklearn.linear_model.Перцептрон(*, штраф=None, alpha=0.0001, l1_ratio=0.15, fit_intercept=True, max_iter=1000, tol=0.001, перемешивание=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.Подробнее в Руководство пользователя.
- Параметры:
- штраф{‘l2’,’l1’,’elasticnet’}, по умолчанию=None
Штраф (также известный как регуляризационный член), который будет использоваться.
- alphafloat, по умолчанию=0.0001
Константа, умножающая член регуляризации, если используется регуляризация.
- l1_ratiofloat, по умолчанию=0.15
Параметр смешивания Elastic Net, с
0 <= l1_ratio <= 1.l1_ratio=0соответствует штрафу L2,l1_ratio=1к L1. Используется только еслиpenalty='elasticnet'.Добавлено в версии 0.24.
- fit_interceptbool, по умолчанию=True
Следует ли оценивать свободный член. Если False, предполагается, что данные уже центрированы.
- max_iterint, по умолчанию=1000
Максимальное количество проходов по обучающим данным (также называемых эпохами). Это влияет только на поведение в
fitметод, а неpartial_fitметод.Добавлено в версии 0.19.
- tolfloat или None, по умолчанию=1e-3
Критерий остановки. Если он не None, итерации остановятся, когда (потеря > предыдущая_потеря - tol).
Добавлено в версии 0.19.
- перемешиваниеbool, по умолчанию=True
Следует ли перемешивать обучающие данные после каждой эпохи.
- verboseint, по умолчанию=0
Уровень подробности вывода.
- eta0float, по умолчанию=1
Константа, на которую умножаются обновления.
- n_jobsint, default=None
Количество CPU, используемых для вычислений OVA (One Versus All, для многоклассовых задач).
Noneозначает 1, если только не вjoblib.parallel_backendконтекст.-1означает использование всех процессоров. См. Глоссарий для получения дополнительной информации.- random_stateint, экземпляр RandomState или None, по умолчанию=0
Используется для перемешивания обучающих данных, когда
shuffleустановлено вTrue. Передайте целое число для воспроизводимого вывода при множественных вызовах функции. См. Глоссарий.- 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.
- class_weightdict, {class_label: weight} или "balanced", по умолчанию=None
Предустановка для параметра class_weight fit.
Веса, связанные с классами. Если не заданы, предполагается, что все классы имеют вес один.
Режим "balanced" использует значения y для автоматической настройки весов, обратно пропорциональных частотам классов во входных данных, как
n_samples / (n_classes * np.bincount(y)).- warm_startbool, по умолчанию=False
При установке в True повторно используется решение предыдущего вызова fit в качестве инициализации, в противном случае предыдущее решение просто стирается. См. Глоссарий.
- Атрибуты:
- classes_ndarray формы (n_classes,)
Уникальные метки классов.
- coef_ndarray формы (1, n_features), если n_classes == 2, иначе (n_classes, n_features)
Веса, назначенные признакам.
- intercept_ndarray формы (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).
Смотрите также
sklearn.linear_model.SGDClassifierЛинейные классификаторы (SVM, логистическая регрессия и т.д.) с обучением SGD.
Примечания
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} формы (n_samples, n_features)
Матрица данных, для которой мы хотим получить оценки уверенности.
- Возвращает:
- scoresndarray формы (n_samples,) или (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}, форма (n_samples, n_features)
Обучающие данные.
- yndarray формы (n_samples,)
Целевые значения.
- coef_initndarray формы (n_classes, n_features), по умолчанию=None
Начальные коэффициенты для теплого старта оптимизации.
- intercept_initndarray формы (n_classes,), по умолчанию=None
Начальный intercept для теплого старта оптимизации.
- sample_weightarray-like, shape (n_samples,), default=None
Веса, применяемые к отдельным образцам. Если не указаны, предполагаются равномерные веса. Эти веса будут умножены на class_weight (переданный через конструктор), если class_weight указан.
- Возвращает:
- selfobject
Возвращает экземпляр self.
- 6332()[источник]#
Получить маршрутизацию метаданных этого объекта.
Пожалуйста, проверьте Руководство пользователя о том, как работает механизм маршрутизации.
- Возвращает:
- маршрутизацияMetadataRequest
A
MetadataRequestИнкапсуляция информации о маршрутизации.
- get_params(глубокий=True)[источник]#
Получить параметры для этого оценщика.
- Параметры:
- глубокийbool, по умолчанию=True
Если True, вернет параметры для этого оценщика и вложенных подобъектов, которые являются оценщиками.
- Возвращает:
- paramsdict
Имена параметров, сопоставленные с их значениями.
- partial_fit(X, y, классы=None, sample_weight=None)[источник]#
Выполнить одну эпоху стохастического градиентного спуска на заданных выборках.
Внутренне этот метод использует
max_iter = 1. Поэтому не гарантируется, что минимум функции стоимости достигается после одного вызова. Вопросы, такие как сходимость цели, ранняя остановка и регулировка скорости обучения, должны обрабатываться пользователем.- Параметры:
- X{array-like, sparse matrix}, форма (n_samples, n_features)
Подмножество обучающих данных.
- yndarray формы (n_samples,)
Подмножество целевых значений.
- классыndarray формы (n_classes,), по умолчанию=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} формы (n_samples, n_features)
Матрица данных, для которой мы хотим получить предсказания.
- Возвращает:
- y_predndarray формы (n_samples,)
Вектор, содержащий метки классов для каждого образца.
- score(X, y, sample_weight=None)[источник]#
Возвращает точность на предоставленных данных и метках.
В многометочной классификации это точность подмножества, которая является строгой метрикой, поскольку требует для каждого образца правильного предсказания каждого набора меток.
- Параметры:
- Xarray-like формы (n_samples, n_features)
Тестовые выборки.
- yarray-like формы (n_samples,) или (n_samples, n_outputs)
Истинные метки для
X.- sample_weightarray-like формы (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$') Перцептрон[источник]#
Настроить, следует ли запрашивать передачу метаданных в
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.- sample_weightstr, True, False или None, по умолчанию=sklearn.utils.metadata_routing.UNCHANGED
Маршрутизация метаданных для
sample_weightпараметр вfit.
- Возвращает:
- selfobject
Обновленный объект.
- set_params(**params)[источник]#
Установить параметры этого оценщика.
Метод работает как на простых оценщиках, так и на вложенных объектах (таких как
Pipeline). Последние имеют параметры видачтобы можно было обновить каждый компонент вложенного объекта.__ - Параметры:
- **paramsdict
Параметры оценщика.
- Возвращает:
- selfэкземпляр estimator
Экземпляр оценщика.
- set_partial_fit_request(*, классы: bool | None | str = '$UNCHANGED$', sample_weight: bool | None | str = '$UNCHANGED$') Перцептрон[источник]#
Настроить, следует ли запрашивать передачу метаданных в
partial_fitметод.Обратите внимание, что этот метод актуален только тогда, когда этот оценщик используется как под-оценщик внутри мета-оценщик и маршрутизация метаданных включена с помощью
enable_metadata_routing=True(см.sklearn.set_config). Пожалуйста, проверьте Руководство пользователя о том, как работает механизм маршрутизации.Варианты для каждого параметра:
True: запрашиваются метаданные и передаютсяpartial_fitесли предоставлено. Запрос игнорируется, если метаданные не предоставлены.False: метаданные не запрашиваются, и мета-оценщик не передаст их вpartial_fit.None: метаданные не запрашиваются, и мета-оценщик выдаст ошибку, если пользователь предоставит их.str: метаданные должны передаваться мета-оценщику с этим заданным псевдонимом вместо исходного имени.
По умолчанию (
sklearn.utils.metadata_routing.UNCHANGED) сохраняет существующий запрос. Это позволяет изменять запрос для некоторых параметров, но не для других.Добавлено в версии 1.3.
- Параметры:
- классыstr, 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$') Перцептрон[источник]#
Настроить, следует ли запрашивать передачу метаданных в
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.