Spec-Zone.ru › scikit-learn

LinearDiscriminantAnalysis

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

Линейный дискриминантный анализ.

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

Модель подгоняет гауссову плотность для каждого класса, предполагая, что все классы имеют одну и ту же матрицу ковариации.

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

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

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

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

Параметры:
solver{‘svd’, ‘lsqr’, ‘eigen’}, default=’svd’
Используемый решатель, возможные значения:
  • ‘svd’: сингулярное разложение (по умолчанию). Не вычисляет матрицу ковариации, поэтому этот решатель рекомендуется для данных с большим количеством признаков.
  • ‘lsqr’: решение методом наименьших квадратов. Можно комбинировать со сжатием или пользовательским оценивателем ковариации.
  • ‘eigen’: разложение по собственным значениям. Можно комбинировать со сжатием или пользовательским оценивателем ковариации.

Изменено в версии 1.2: solver="svd" теперь имеет экспериментальную поддержку Array API. Подробнее см. в руководстве пользователя Array API.

shrinkage‘auto’ or float, default=None
Параметр сжатия, возможные значения:
  • None: без сжатия (по умолчанию).
  • ‘auto’: автоматическое сжатие с использованием леммы Леду—Вольфа.
  • число с плавающей точкой от 0 до 1: фиксированный параметр сжатия.

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

Пример использования см. в разделе Нормальный, Ledoit-Wolf и OAS линейный дискриминантный анализ для классификации.

priorsarray-like of shape (n_classes,), default=None

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

n_componentsint, default=None

Количество компонент (<= min(n_classes - 1, n_features)) для уменьшения размерности. Если значение равно None, будет установлено min(n_classes - 1, n_features). Этот параметр влияет только на метод transform.

Пример использования см. в разделе Сравнение двумерных проекций набора данных Iris с помощью LDA и PCA.

store_covariancebool, default=False

Если значение равно True, явно вычисляет взвешенную внутриклассовую матрицу ковариации, когда solver имеет значение ‘svd’. Для остальных решателей матрица всегда вычисляется и сохраняется.

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

tolfloat, default=1.0e-4

Абсолютный порог, при превышении которого сингулярное значение X считается значимым; используется для оценки ранга X. Размерности с незначимыми сингулярными значениями отбрасываются. Используется только при solver='svd'.

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

covariance_estimatorcovariance estimator, default=None

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

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

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

Атрибуты:
coef_ndarray of shape (n_features,) or (n_classes, n_features)

Вектор(ы) весов.

intercept_ndarray of shape (n_classes,)

Свободный член.

covariance_array-like of shape (n_features, n_features)

Взвешенная внутриклассовая матрица ковариации. Она соответствует sum_k prior_k * C_k, где C_k — матрица ковариации образцов класса k. C_k оцениваются с помощью (возможно, сжатого) смещённого оценивателя ковариации. Если solver имеет значение ‘svd’, атрибут существует только при store_covariance, равном True.

explained_variance_ratio_ndarray of shape (n_components,)

Доля дисперсии, объясняемая каждой из выбранных компонент. Если n_components не задан, сохраняются все компоненты, а сумма объяснённых дисперсий равна 1.0. Доступно только при использовании решателя eigen или svd.

means_array-like of shape (n_classes, n_features)

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

priors_array-like of shape (n_classes,)

Апостериорные вероятности классов (в сумме равны 1).

scalings_array-like of shape (rank, n_classes - 1)

Масштабирование признаков в пространстве, порождённом центроидами классов. Доступно только для решателей ‘svd’ и ‘eigen’.

xbar_array-like of shape (n_features,)

Общее среднее значение. Присутствует только при solver='svd'.

classes_array-like of shape (n_classes,)

Уникальные метки классов.

n_features_in_int

Количество признаков, обнаруженных при вызове fit.

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

feature_names_in_ndarray of shape (n_features_in_,)

Названия признаков, обнаруженные при вызове fit. Определяется только тогда, когда X содержит названия признаков, представленные строками.

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

См. также

QuadraticDiscriminantAnalysis

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

Примеры

>>> import numpy as np
>>> from sklearn.discriminant_analysis import LinearDiscriminantAnalysis
>>> 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 = LinearDiscriminantAnalysis()
>>> clf.fit(X, y)
LinearDiscriminantAnalysis()
>>> 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 of shape (n_samples, n_features)

Массив образцов (тестовых векторов).

Возвращает:
y_scoresndarray of shape (n_samples,) or (n_samples, n_classes)

Значения функции принятия решений для каждого класса и каждого образца. В случае двух классов форма имеет вид (n_samples,) и задаёт логарифм отношения правдоподобий положительного класса.

fit(X, y)[исходный код]

Обучить модель линейного дискриминантного анализа.

Изменено в версии 0.19: store_covariance и tol перенесены в основной конструктор.

Параметры:
Xarray-like of shape (n_samples, n_features)

Обучающие данные.

yarray-like of shape (n_samples,)

Целевые значения.

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

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

fit_transform(X, y=None, **fit_params)[исходный код]

Обучить модель на данных, а затем преобразовать их.

Обучает преобразователь на X и y с дополнительными параметрами fit_params и возвращает преобразованную версию X.

Параметры:
Xarray-like of shape (n_samples, n_features)

Входные образцы.

yarray-like of shape (n_samples,) or (n_samples, n_outputs), default=None

Целевые значения (None для преобразований без учителя).

**fit_paramsdict

Дополнительные параметры обучения. Передавайте их только в том случае, если оцениватель принимает дополнительные параметры в методе fit.

Возвращает:
X_newndarray array of shape (n_samples, n_features_new)

Преобразованный массив.

get_feature_names_out(input_features=None)[исходный код]

Получить названия выходных признаков для преобразования.

К названиям выходных признаков будет добавлено имя класса, записанное строчными буквами. Например, если преобразователь выдаёт 3 признака, их названия будут такими: ["class_name0", "class_name1", "class_name2"].

Параметры:
input_featuresarray-like of str or None, default=None

Используется только для проверки названий признаков на соответствие названиям, обнаруженным в fit.

Возвращает:
feature_names_outndarray of str objects

Названия преобразованных признаков.

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

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

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

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

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

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

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

Параметры:
deepbool, default=True

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

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

Названия параметров, сопоставленные с их значениями.

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

Предсказать метки классов для образцов в X.

Параметры:
X{array-like, sparse matrix} of shape (n_samples, n_features)

Матрица данных, для которой требуется получить предсказания.

Возвращает:
y_predndarray of shape (n_samples,)

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

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

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

Параметры:
Xarray-like of shape (n_samples, n_features)

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

Возвращает:
Cndarray of shape (n_samples, n_classes)

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

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

Оценить вероятность.

Параметры:
Xarray-like of shape (n_samples, n_features)

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

Возвращает:
Cndarray of shape (n_samples, n_classes)

Оценённые вероятности.

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

Вернуть точность на переданных данных и метках.

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

Параметры:
Xarray-like of shape (n_samples, n_features)

Тестовые образцы.

yarray-like of shape (n_samples,) or (n_samples, n_outputs)

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

sample_weightarray-like of shape (n_samples,), default=None

Веса образцов.

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

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

set_output(*, transform=None)[исходный код]

Задать контейнер для выходных данных.

Подробнее см. в руководстве пользователя; пример использования API приведён в разделе Знакомство с API set_output.

Параметры:
transform{“default”, “pandas”, “polars”}, default=None

Настроить формат выходных данных для transform и fit_transform.

  • "default": формат выходных данных преобразователя по умолчанию
  • "pandas": выходные данные в формате DataFrame
  • "polars": выходные данные в формате Polars
  • None: конфигурация преобразования остаётся без изменений

Добавлено в версии 1.4: добавлен параметр "polars".

Возвращает:
selfestimator instance

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

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

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

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

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

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

Возвращает:
selfestimator instance

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

set_score_request(*, sample_weight:bool|None|str='$UNCHANGED$') → LinearDiscriminantAnalysis[исходный код]

Настроить, следует ли запрашивать передачу метаданных методу 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, or None, default=sklearn.utils.metadata_routing.UNCHANGED

Маршрутизация метаданных для параметра sample_weight в score.

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

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

transform(X)[источник]

Спроецировать данные так, чтобы максимально разделить классы.

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

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

Возвращает:
X_newndarray формы (n_samples, n_components) или (n_samples, min(rank, n_components))

Преобразованные данные. При использовании решателя «svd» форма массива — (n_samples, min(rank, n_components)).

Примеры

Линейный дискриминантный анализ для классификации с оценками Normal, Ledoit-Wolf и OAS

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

Сравнение двумерных проекций набора данных Iris с помощью LDA и PCA

Обучение многообразия на рукописных цифрах: локальное линейное вложение, Isomap…

Уменьшение размерности с помощью анализа соседних компонентов

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

Spec-Zone.ru

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