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) ожидаемо улучшает модель, когда некоторые классы имеют относительно малое количество обучающих данных по сравнению с количеством признаков, смягчая переобучение на этапе оценки ковариации.

Это следует оставить None if covariance_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, параметр сжатия управляет оценкой.

Это следует оставить None if shrinkage используется. Обратите внимание, что 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, матрица собственных векторов, полученная из SVD Xk = U S Vt где Xk является центрированной матрицей образцов класса k.

scalings_список длины n_classes из ndarray формы (n_k,)

Для каждого класса содержит масштабирование гауссовых распределений вдоль их главных осей, т.е. дисперсию в повернутой системе координат. Это соответствует S^2 / (n_samples - 1), где S является диагональной матрицей сингулярных значений из SVD Xk, где 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

Обновленный объект.