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": Вывод PolarsNone: Конфигурация преобразования не изменена
Добавлено в версии 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)).
Примеры галереи#
Нормальный, Ledoit-Wolf и OAS линейный дискриминантный анализ для классификации
Линейный и квадратичный дискриминантный анализ с эллипсоидом ковариации
Сравнение LDA и PCA 2D проекции набора данных Iris
Обучение многообразию на рукописных цифрах: Locally Linear Embedding, Isomap…
Снижение размерности с помощью анализа компонентов соседства