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)).
Примеры
© 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