Spec-Zone.ru › scikit-learn

QuadraticDiscriminantAnalysis

classsklearn.discriminant_analysis.QuadraticDiscriminantAnalysis(*, solver='svd', shrinkage=None, priors=None, reg_param=0.0, store_covariance=False, tol=0.0001, covariance_estimator=None)[исходный код]

Квадратичный дискриминантный анализ.

Классификатор с квадратичной границей принятия решений, построенный путём подгонки условных плотностей классов к данным и применения правила Байеса.

Модель подгоняет гауссову плотность для каждого класса.

Добавлено в версии 0.17.

Сравнение QuadraticDiscriminantAnalysis и LinearDiscriminantAnalysis см. в разделе Линейный и квадратичный дискриминантный анализ с эллипсоидом ковариации.

Подробнее см. в Руководстве пользователя.

Параметры:
solver{‘svd’, ‘eigen’}, по умолчанию=’svd’
Используемый решатель; возможные значения:
  • ‘svd’: разложение по сингулярным значениям (по умолчанию). Не вычисляет матрицу ковариации, поэтому этот решатель рекомендуется для данных с большим числом признаков.
  • ‘eigen’: разложение по собственным значениям. Можно использовать вместе со сжатием или пользовательским оценивателем ковариации.
shrinkage‘auto’ или число с плавающей точкой, по умолчанию=None
Параметр сжатия; возможные значения:
  • None: без сжатия (по умолчанию).
  • ‘auto’: автоматическое сжатие с использованием леммы Ледуа—Вольфа.
  • число с плавающей точкой от 0 до 1: фиксированный параметр сжатия.

Ожидается, что включение сжатия улучшит модель, если в некоторых классах относительно мало обучающих точек по сравнению с числом признаков, поскольку оно снижает переобучение на этапе оценки ковариации.

Если используется covariance_estimator, этому параметру следует присвоить None. Обратите внимание, что сжатие работает только с решателем ‘eigen’.

priorsмассивоподобный объект формы (n_classes,), по умолчанию=None

Априорные вероятности классов. По умолчанию доли классов определяются по обучающим данным.

reg_paramчисло с плавающей точкой, по умолчанию=0.0

Регуляризует оценки ковариации для каждого класса, преобразуя S2 в S2 = (1 - reg_param) * S2 + reg_param * np.eye(n_features), где S2 соответствует атрибуту scaling_ данного класса.

store_covariancebool, по умолчанию=False

Если True, матрицы ковариации классов вычисляются явно и сохраняются в атрибуте self.covariance_.

Добавлено в версии 0.17.

tolчисло с плавающей точкой, по умолчанию=1.0e-4

Абсолютный порог, при достижении которого матрица ковариации считается вырожденной после применения некоторой регуляризации (см. reg_param) к каждому Sk, где Sk представляет матрицу ковариации для k-го класса. Этот параметр не влияет на предсказания. Он определяет, когда выдаётся предупреждение о том, что матрица ковариации не имеет полного ранга.

Добавлено в версии 0.17.

covariance_estimatorоцениватель ковариации, по умолчанию=None

Если значение не None, для оценки матриц ковариации используется covariance_estimator вместо эмпирического оценивателя ковариации (с возможным сжатием). Объект должен иметь метод fit и атрибут covariance_, как у оценивателей из sklearn.covariance. Если значение None, оценка определяется параметром сжатия.

Если используется shrinkage, этому параметру следует присвоить None. Обратите внимание, что covariance_estimator работает только с решателем ‘eigen’.

Атрибуты:
covariance_список из n_classes массивов ndarray формы (n_features, n_features)

Для каждого класса содержит матрицу ковариации, оценённую по выборкам этого класса. Оценки являются несмещёнными. Присутствует только при значении True у store_covariance.

means_массивоподобный объект формы (n_classes, n_features)

Средние значения для каждого класса.

priors_массивоподобный объект формы (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.

Параметры:
Xмассивоподобный объект формы (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 перенесён в основной конструктор.

Параметры:
Xмассивоподобный объект формы (n_samples, n_features)

Обучающий вектор, где n_samples — число выборок, а n_features — число признаков.

yмассивоподобный объект формы (n_samples,)

Целевые значения (целые числа).

Возвращает:
selfобъект

Обученный оцениватель.

get_metadata_routing()[исходный код]

Получает настройки маршрутизации метаданных этого объекта.

О том, как работает механизм маршрутизации, см. в Руководстве пользователя.

Возвращает:
routingMetadataRequest

Объект MetadataRequest, содержащий сведения о маршрутизации.

get_params(deep=True)[исходный код]

Получает параметры этого оценивателя.

Параметры:
deepbool, по умолчанию=True

Если True, возвращает параметры этого оценивателя и содержащихся в нём подобъектов, являющихся оценивателями.

Возвращает:
paramsdict

Имена параметров и соответствующие им значения.

predict(X)[исходный код]

Выполняет классификацию массива векторов X.

Возвращает метку класса для каждой выборки.

Параметры:
X{массивоподобный объект, разреженная матрица} формы (n_samples, n_features)

Входные векторы, где n_samples — число выборок, а n_features — число признаков.

Возвращает:
y_predndarray формы (n_samples,)

Метка класса для каждой выборки.

predict_log_proba(X)[исходный код]

Оценивает логарифмы вероятностей классов.

Параметры:
X{массивоподобный объект, разреженная матрица} формы (n_samples, n_features)

Входные данные.

Возвращает:
y_log_probandarray формы (n_samples, n_classes)

Оценённые логарифмы вероятностей.

predict_proba(X)[исходный код]

Оценивает вероятности классов.

Параметры:
X{массивоподобный объект, разреженная матрица} формы (n_samples, n_features)

Входные данные.

Возвращает:
y_probandarray формы (n_samples, n_classes)

Оценка вероятности принадлежности выборки к каждому классу модели; классы упорядочены так же, как в self.classes_.

score(X, y, sample_weight=None)[исходный код]

Возвращает точность на предоставленных данных и метках.

В многометочной классификации это точность по подмножествам — строгая метрика, поскольку для каждой выборки требуется правильно предсказать весь набор меток.

Параметры:
Xмассивоподобный объект формы (n_samples, n_features)

Тестовые выборки.

yмассивоподобный объект формы (n_samples,) или (n_samples, n_outputs)

Истинные метки для X.

sample_weightмассивоподобный объект формы (n_samples,), по умолчанию=None

Веса выборок.

Возвращает:
scoreчисло с плавающей точкой

Средняя точность self.predict(X) относительно y.

set_params(**params)[исходный код]

Задаёт параметры этого оценивателя.

Метод работает как с простыми оценивателями, так и с вложенными объектами (например, Pipeline). Параметры последних имеют вид <component>__<parameter>, что позволяет обновлять каждый компонент вложенного объекта.

Параметры:
**paramsdict

Параметры оценивателя.

Возвращает:
selfэкземпляр оценивателя

Экземпляр оценивателя.

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.

Возвращает:
selfобъект

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

Примеры из галереи

Сравнение классификаторов

Линейный и квадратичный дискриминантный анализ с эллипсоидом ковариации

© 2007–2026 The scikit-learn developers
Licensed under the 3-clause BSD License.
https://scikit-learn.org/1.9/modules/generated/sklearn.discriminant_analysis.QuadraticDiscriminantAnalysis.html

Spec-Zone.ru

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