Spec-Zone.ru › scikit-learn

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

классsklearn.discriminant_analysis.LinearDiscriminantAnalysis(solver='svd', shrinkage=None, priors=None, n_components=None, store_covariance=False, tol=0.0001, covariance_estimator=None)[source]

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

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

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

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

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

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

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

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

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

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

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

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

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

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

n_componentsint, по умолчанию = None

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

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

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

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

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

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

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

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

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

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

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

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

Атрибуты:
coef_одномерный массив формы (n_features,) или (n_classes, n_features)

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

intercept_одномерный массив формы (n_classes,)

Постоянный член.

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

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

explained_variance_ratio_одномерный массив формы (n_components,)

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

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

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

priors_массив-подобный формы (n_classes,)

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

scalings_массив-подобный формы (rank, n_classes - 1)

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

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

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

classes_массив-подобный формы (n_classes,)

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

n_features_in_int

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

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

feature_names_in_массив-подобный формы (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)[source]

Применить функцию принятия решения к массиву выборок.

Функция принятия решения равна (с точностью до постоянного множителя) логарифмической апостериорной вероятности модели, т.е. log p(y = k | x). В случае двоичной классификации это вместо этого соответствует разности log p(y = 1 | x) - log p(y = 0 | x). См. Математическая формулировка LDA и QDA классификаторов.

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

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

Возвращает:
y_scoresмассив-подобный формы (n_samples,) или (n_samples, n_classes)

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

END_OF_DOCUMENT_MARKER
fit(X, y)[source]

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

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

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

Данные обучения.

yмассив-подобный (n_samples,)

Значения целевой переменной.

Возвращаемое значение:
selfобъект

Обученная модель.

fit_transform(X, y=None, **fit_params)[source]

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

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

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

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

yмассив-подобный (n_samples,) или (n_samples, n_outputs), по умолчанию None

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

**fit_paramsdict

Дополнительные параметры обучения.

Возвращаемое значение:
X_newмассив ndarray формы (n_samples, n_features_new)

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

get_feature_names_out(input_features=None)[source]

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

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

Параметры:
input_featuresмассив-подобный str или None, по умолчанию None

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

Возвращаемое значение:
feature_names_outмассив ndarray из str объектов

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

get_metadata_routing()[source]

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

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

Возвращаемое значение:
routingMetadataRequest

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

get_params(deep=True)[source]

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

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

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

Возвращаемое значение:
paramsdict

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

predict(X)[source]

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

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

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

Возвращаемое значение:
y_predмассив ndarray формы (n_samples,)

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

predict_log_proba(X)[source]

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

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

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

Возвращаемое значение:
Cмассив ndarray формы (n_samples, n_classes)

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

predict_proba(X)[source]

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

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

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

Возвращаемое значение:
Cмассив ndarray формы (n_samples, n_classes)

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

score(X, y, sample_weight=None)[source]

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

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

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

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

yмассив-подобный типа (n_samples,) или (n_samples, n_outputs)

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

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

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

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

Средняя точность self.predict(X) по отношению к y.

set_output(*, transform=None)[source]

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

См. Введение в API set_output, чтобы узнать, как использовать API.

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

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

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

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

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

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

set_params(**params)[source]

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

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

Параметры:
**paramsсловарь

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

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

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

set_score_request(*, sample_weight:bool|None|str='$UNCHANGED$') → LinearDiscriminantAnalysis[source]

Запрашивает метаданные, переданные методу score.

Обратите внимание, что этот метод актуален только если enable_metadata_routing=True (см. sklearn.set_config). Пожалуйста, обратитесь к Руководству пользователя, чтобы узнать, как работает механизм маршрутизации.

Варианты для каждого параметра:

  • True: метаданные запрашиваются и передаются score если они предоставлены. Запрос игнорируется, если метаданные не предоставлены.
  • False: метаданные не запрашиваются, и мета-оценщик не передаст их score.
  • None: метаданные не запрашиваются, и мета-оценщик выведет ошибку, если пользователь предоставит их.
  • str: метаданные должны передаваться мета-оценщику с этим псевдонимом вместо оригинального имени.

По умолчанию (sklearn.utils.metadata_routing.UNCHANGED): сохраняется существующий запрос. Это позволяет изменить запрос для некоторых параметров, а не для других.

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

Примечание

Этот метод актуален только если этот оценщик используется в качестве под-оценщика мета-оценщика, например, внутри Pipeline. В противном случае он не имеет эффекта.

Параметры:
sample_weightstr, True, False, или None, по умолчанию=sklearn.utils.metadata_routing.UNCHANGED

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

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

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

transform(X)[source]

Проецирует данные для максимального разделения классов.

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

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

Возвращает:
X_newмассив ndarray типа (n_samples, n_components) или (n_samples, min(rank, n_components))

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

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

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

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

Сравнение LDA и PCA 2D проекции набора данных Iris

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

Снижение размерности с помощью анализа компонент окрестности

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

Spec-Zone.ru

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