QuadraticDiscriminantAnalysis#
- класс sklearn.discriminant_analysis.QuadraticDiscriminantAnalysis(*, solver='svd', сжатие=None, априорные вероятности=None, reg_param=0.0, store_covariance=False, tol=0.0001, оценщик_ковариации=None)[источник]#
Квадратичный дискриминантный анализ.
Классификатор с квадратичной границей решений, созданный путем подгонки плотностей условных классов к данным и использования правила Байеса.
Модель подгоняет гауссову плотность к каждому классу.
Добавлено в версии 0.17.
Для сравнения между
QuadraticDiscriminantAnalysisиLinearDiscriminantAnalysis, см. Линейный и квадратичный дискриминантный анализ с эллипсоидом ковариации.Подробнее в Руководство пользователя.
- Параметры:
- solver{‘svd’, ‘eigen’}, по умолчанию=’svd’
- Решатель для использования, возможные значения:
'svd': Разложение по сингулярным значениям (по умолчанию). Не вычисляет ковариационную матрицу, поэтому этот решатель рекомендуется для данных с большим количеством признаков.
‘eigen’: Разложение по собственным значениям. Может быть объединено с сжатием или пользовательским оценщиком ковариации.
- сжатие'auto' или float, по умолчанию=None
- Параметр сжатия, возможные значения:
None: без сжатия (по умолчанию).
'auto': автоматическое сжатие с использованием леммы Ледойта-Вольфа.
число с плавающей точкой от 0 до 1: фиксированный параметр сжатия.
Включение сжатия (shrinkage) ожидаемо улучшает модель, когда некоторые классы имеют относительно малое количество обучающих данных по сравнению с количеством признаков, смягчая переобучение на этапе оценки ковариации.
Это следует оставить
Noneifcovariance_estimatorиспользуется. Обратите внимание, что сжатие работает только с решателем 'eigen'.- априорные вероятностиarray-like формы (n_classes,), по умолчанию=None
Априорные вероятности классов. По умолчанию пропорции классов выводятся из обучающих данных.
- reg_paramfloat, по умолчанию=0.0
Регуляризует оценки ковариации для каждого класса, преобразуя S2 как
S2 = (1 - reg_param) * S2 + reg_param * np.eye(n_features), где S2 соответствуетscaling_Миксин-класс для всех бикластерных оценщиков в scikit-learn.- store_covariancebool, по умолчанию=False
Если True, матрицы ковариации классов явно вычисляются и сохраняются в
self.covariance_атрибут.Добавлено в версии 0.17.
- tolfloat, по умолчанию=1.0e-4
Абсолютный порог для ковариационной матрицы, чтобы считаться вырожденной после применения некоторой регуляризации (см.
reg_param) к каждомуSkгдеSkпредставляет ковариационную матрицу для k-го класса. Этот параметр не влияет на предсказания. Он контролирует, когда выдаётся предупреждение, если ковариационная матрица не является полного ранга.Добавлено в версии 0.17.
- оценщик_ковариацииоценщик ковариации, по умолчанию=None
Если не None,
covariance_estimatorиспользуется для оценки ковариационных матриц вместо использования эмпирического ковариационного оценщика (с возможным сжатием). Объект должен иметь метод fit иcovariance_атрибут, как оценщики вsklearn.covariance. Если None, параметр сжатия управляет оценкой.Это следует оставить
Noneifshrinkageиспользуется. Обратите внимание, чтоcovariance_estimatorработает только с решателем 'eigen'.
- Атрибуты:
- covariance_список длины n_classes из ndarray формы (n_features, n_features)
Для каждого класса дает ковариационную матрицу, оцененную с использованием выборок этого класса. Оценки являются несмещенными. Присутствует только если
store_covarianceравно True.- means_array-like формы (n_classes, n_features)
Средние значения по классам.
- priors_array-like формы (n_classes,)
Априорные вероятности классов (суммируются до 1).
- rotations_список длины n_classes из ndarray формы (n_features, n_k)
Для каждого класса k массив формы (n_features, n_k), где
n_k = min(n_features, number of elements in class k)Это вращение гауссовского распределения, т.е. его главная ось. СоответствуетV, матрица собственных векторов, полученная из SVDXk = U S VtгдеXkявляется центрированной матрицей образцов класса k.- scalings_список длины n_classes из ndarray формы (n_k,)
Для каждого класса содержит масштабирование гауссовых распределений вдоль их главных осей, т.е. дисперсию в повернутой системе координат. Это соответствует
S^2 / (n_samples - 1), гдеSявляется диагональной матрицей сингулярных значений из SVDXk, гдеXkявляется центрированной матрицей образцов класса k.- classes_ndarray формы (n_classes,)
Уникальные метки классов.
- n_features_in_int
Количество признаков, замеченных во время fit.
Добавлено в версии 0.24.
- feature_names_in_ndarray формы (
n_features_in_,) Имена признаков, наблюдаемых во время fit. Определено только когда
Xимеет имена признаков, которые все являются строками.Добавлено в версии 1.0.
Смотрите также
LinearDiscriminantAnalysisЛинейный дискриминантный анализ.
Примеры
>>> from sklearn.discriminant_analysis import QuadraticDiscriminantAnalysis >>> import numpy as np >>> X = np.array([[-1, -1], [-2, -1], [-3, -2], [1, 1], [2, 1], [3, 2]]) >>> y = np.array([1, 1, 1, 2, 2, 2]) >>> clf = QuadraticDiscriminantAnalysis() >>> clf.fit(X, y) QuadraticDiscriminantAnalysis() >>> print(clf.predict([[-0.8, -1]])) [1]
- decision_function(X)[источник]#
Применить функцию принятия решений к массиву выборок.
Функция принятия решений равна (с точностью до постоянного множителя) логарифму апостериорной вероятности модели, т.е.
log p(y = k | x). В бинарной классификации это соответствует разницеlog p(y = 1 | x) - log p(y = 0 | x). См. Математическая формулировка классификаторов LDA и QDA.- Параметры:
- Xarray-like формы (n_samples, n_features)
Массив образцов (тестовых векторов).
- Возвращает:
- Cndarray формы (n_samples,) или (n_samples, n_classes)
Значения решающей функции, связанные с каждым классом, для каждого образца. В случае двух классов форма равна
(n_samples,), давая логарифм отношения правдоподобия для положительного класса.
- fit(X, y)[источник]#
Обучить модель в соответствии с предоставленными обучающими данными и параметрами.
Изменено в версии 0.19:
store_covariancesбыл перемещён в основной конструктор какstore_covariance.Изменено в версии 0.19:
tolбыл перемещен в основной конструктор.- Параметры:
- Xarray-like формы (n_samples, n_features)
Вектор обучения, где
n_samples— это количество образцов иn_featuresэто количество признаков.- yarray-like формы (n_samples,)
Целевые значения (целые числа).
- Возвращает:
- selfobject
Обученный оценщик.
- 6332()[источник]#
Получить маршрутизацию метаданных этого объекта.
Пожалуйста, проверьте Руководство пользователя о том, как работает механизм маршрутизации.
- Возвращает:
- маршрутизацияMetadataRequest
A
MetadataRequestИнкапсуляция информации о маршрутизации.
- get_params(глубокий=True)[источник]#
Получить параметры для этого оценщика.
- Параметры:
- глубокийbool, по умолчанию=True
Если True, вернет параметры для этого оценщика и вложенных подобъектов, которые являются оценщиками.
- Возвращает:
- paramsdict
Имена параметров, сопоставленные с их значениями.
- predict(X)[источник]#
Выполнить классификацию на массиве векторов
X.Возвращает метку класса для каждого образца.
- Параметры:
- X{array-like, sparse matrix} формы (n_samples, n_features)
Входные векторы, где
n_samples— это количество образцов иn_featuresэто количество признаков.
- Возвращает:
- y_predndarray формы (n_samples,)
Метка класса для каждого образца.
- predict_log_proba(X)[источник]#
Оценить логарифмические вероятности классов.
- Параметры:
- X{array-like, sparse matrix} формы (n_samples, n_features)
Входные данные.
- Возвращает:
- y_log_probandarray формы (n_samples, n_classes)
Оцененные логарифмические вероятности.
- predict_proba(X)[источник]#
Оценка вероятностей классов.
- Параметры:
- X{array-like, sparse matrix} формы (n_samples, n_features)
Входные данные.
- Возвращает:
- y_probandarray формы (n_samples, n_classes)
Оценка вероятности выборки для каждого класса в модели, где классы упорядочены как в
self.classes_.
- 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_params(**params)[источник]#
Установить параметры этого оценщика.
Метод работает как на простых оценщиках, так и на вложенных объектах (таких как
Pipeline). Последние имеют параметры видачтобы можно было обновить каждый компонент вложенного объекта.__ - Параметры:
- **paramsdict
Параметры оценщика.
- Возвращает:
- selfэкземпляр estimator
Экземпляр оценщика.
- set_score_request(*, sample_weight: bool | None | str = '$UNCHANGED$') QuadraticDiscriminantAnalysis[источник]#
Настроить, следует ли запрашивать передачу метаданных в
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
Обновленный объект.
Примеры галереи#
Линейный и квадратичный дискриминантный анализ с эллипсоидом ковариации