LinearDiscriminantAnalysis#

класс sklearn.discriminant_analysis.LinearDiscriminantAnalysis(solver='svd', сжатие=None, априорные вероятности=None, n_components=None, store_covariance=False, tol=0.0001, оценщик_ковариации=None)[источник]#

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

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

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

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

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

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

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

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

  • ‘lsqr’: Метод наименьших квадратов. Может комбинироваться с регуляризацией или пользовательским оценщиком ковариации.

  • ‘eigen’: Разложение по собственным значениям. Может быть объединено с сжатием или пользовательским оценщиком ковариации.

Изменено в версии 1.2: solver="svd" теперь имеет экспериментальную поддержку Array API. См. Руководство пользователя по Array API для получения дополнительной информации.

сжатие'auto' или float, по умолчанию=None
Параметр сжатия, возможные значения:
  • None: без сжатия (по умолчанию).

  • 'auto': автоматическое сжатие с использованием леммы Ледойта-Вольфа.

  • число с плавающей точкой от 0 до 1: фиксированный параметр сжатия.

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

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

априорные вероятностиarray-like формы (n_classes,), по умолчанию=None

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

n_componentsint, default=None

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

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

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

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

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

tolfloat, по умолчанию=1.0e-4

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

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

оценщик_ковариацииоценщик ковариации, по умолчанию=None

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

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

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

Атрибуты:
coef_ndarray формы (n_features,) или (n_classes, n_features)

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

intercept_ndarray формы (n_classes,)

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

covariance_array-like формы (n_features, n_features)

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

explained_variance_ratio_ndarray формы (n_components,)

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

means_array-like формы (n_classes, n_features)

Средние значения по классам.

priors_array-like формы (n_classes,)

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

scalings_array-like формы (rank, n_classes - 1)

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

xbar_массивоподобный формы (n_features,)

Общее среднее. Присутствует только если решатель — ‘svd’.

classes_array-like формы (n_classes,)

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

n_features_in_int

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

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

feature_names_in_ndarray формы (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 формы (n_samples, n_features)

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

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

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

fit(X, y)[источник]#

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

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

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

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

yarray-like формы (n_samples,)

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

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

Обученный оценщик.

fit_transform(X, y=None, **fit_params)[источник]#

Обучение на данных с последующим преобразованием.

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

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

Входные выборки.

yarray-like формы (n_samples,) или (n_samples, n_outputs), default=None

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

**fit_paramsdict

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

Возвращает:
X_newndarray массив формы (n_samples, n_features_new)

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

get_feature_names_out(input_features=None)[источник]#

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

Имена признаков на выходе будут иметь префикс в виде имени класса в нижнем регистре. Например, если преобразователь выводит 3 признака, то имена признаков на выходе: ["class_name0", "class_name1", "class_name2"].

Параметры:
input_featuresarray-like из str или None, по умолчанию=None

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

Возвращает:
feature_names_outndarray из str объектов

Преобразованные имена признаков.

6332()[источник]#

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

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

Возвращает:
маршрутизацияMetadataRequest

A MetadataRequest Инкапсуляция информации о маршрутизации.

get_params(глубокий=True)[источник]#

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

Параметры:
глубокийbool, по умолчанию=True

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Возвращает:
Cndarray формы (n_samples, n_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_output(*, преобразовать=None)[источник]#

Установить контейнер вывода.

См. Введение API set_output для примера использования API.

Параметры:
преобразовать{“default”, “pandas”, “polars”}, по умолчанию=None

Настройка вывода transform и fit_transform.

  • "default": Формат вывода трансформера по умолчанию

  • "pandas": DataFrame вывод

  • "polars": Вывод Polars

  • None: Конфигурация преобразования не изменена

Добавлено в версии 1.4: "polars" опция была добавлена.

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

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

set_params(**params)[источник]#

Установить параметры этого оценщика.

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

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

Параметры оценщика.

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

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

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 или None, по умолчанию=sklearn.utils.metadata_routing.UNCHANGED

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

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

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

преобразовать(X)[источник]#

Проецирование данных для максимизации разделения классов.

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

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

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

Преобразованные данные. В случае решателя 'svd' форма равна (n_samples, min(rank, n_components)).