FactorAnalysis#

класс sklearn.decomposition.FactorAnalysis(n_components=None, *, tol=0.01, copy=True, max_iter=1000, noise_variance_init=None, svd_method='randomized', iterated_power=3, вращение=None, random_state=0)[источник]#

Факторный анализ (FA).

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

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

Если мы дополнительно ограничим модель, предположив, что гауссов шум является изотропным (все диагональные элементы одинаковы), мы получим PCA.

FactorAnalysis выполняет оценку максимального правдоподобия так называемого loading матрица, преобразование скрытых переменных в наблюдаемые, используя подход на основе SVD.

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

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

Параметры:
n_componentsint, default=None

Размерность латентного пространства, количество компонентов X которые получены после transform. Если None, n_components устанавливается равным количеству признаков.

tolfloat, по умолчанию=1e-2

Допуск остановки для увеличения логарифмического правдоподобия.

copybool, по умолчанию=True

Создавать ли копию X. Если False, входные данные X перезаписываются во время обучения.

max_iterint, по умолчанию=1000

Максимальное количество итераций.

noise_variance_initarray-like формы (n_features,), по умолчанию=None

Начальное предположение о дисперсии шума для каждого признака. Если None, по умолчанию используется np.ones(n_features).

svd_method{'lapack', 'randomized'}, по умолчанию='randomized'

Какой метод SVD использовать. Если 'lapack', используйте стандартный SVD из scipy.linalg, если 'randomized', используйте быстрый randomized_svd функция. По умолчанию 'randomized'. Для большинства приложений 'randomized' будет достаточно точным, обеспечивая значительный прирост скорости. Точность также можно улучшить, установив более высокие значения для iterated_power. Если этого недостаточно, для максимальной точности следует выбрать 'lapack'.

iterated_powerint, по умолчанию=3

Количество итераций для степенного метода. По умолчанию 3. Используется только если svd_method равно 'randomized'.

вращение{‘varimax’, ‘quartimax’}, по умолчанию=None

Если не None, применить указанный поворот. В настоящее время реализованы varimax и quartimax. См. “Критерий варимакс для аналитического вращения в факторном анализе” H. F. Kaiser, 1958.

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

random_stateint или экземпляр RandomState, по умолчанию=0

Используется только когда svd_method равно 'randomized'. Передайте int для воспроизводимых результатов при множественных вызовах функции. См. Глоссарий.

Атрибуты:
components_ndarray формы (n_components, n_features)

Компоненты с максимальной дисперсией.

loglike_список формы (n_iterations,)

Логарифм правдоподобия на каждой итерации.

noise_variance_ndarray формы (n_features,)

Расчётная дисперсия шума для каждого признака.

n_iter_int

Количество выполненных итераций.

mean_ndarray формы (n_features,)

Эмпирическое среднее по признакам, оцененное на обучающей выборке.

n_features_in_int

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

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

feature_names_in_ndarray формы (n_features_in_,)

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

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

Смотрите также

PCA

Метод главных компонент также является латентной линейной моделью переменных, которая, однако, предполагает равную дисперсию шума для каждого признака. Это дополнительное предположение делает вероятностный PCA быстрее, так как он может быть вычислен в замкнутой форме.

FastICA

Анализ независимых компонент, модель скрытых переменных с негауссовыми скрытыми переменными.

Ссылки

  • Дэвид Барбер, Байесовские рассуждения и машинное обучение, Алгоритм 21.1.

  • Кристофер М. Бишоп: Распознавание образов и машинное обучение, Глава 12.2.4.

Примеры

>>> from sklearn.datasets import load_digits
>>> from sklearn.decomposition import FactorAnalysis
>>> X, _ = load_digits(return_X_y=True)
>>> transformer = FactorAnalysis(n_components=7, random_state=0)
>>> X_transformed = transformer.fit_transform(X)
>>> X_transformed.shape
(1797, 7)
fit(X, y=None)[источник]#

Обучите модель FactorAnalysis на X, используя подход на основе SVD.

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

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

yИгнорируется

Игнорируемый параметр.

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

Экземпляр класса FactorAnalysis.

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_covariance()[источник]#

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

cov = components_.T * components_ + diag(noise_variance)

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

Оцененная ковариация данных.

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

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

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

Вычислить матрицу точности данных с моделью факторного анализа.

Возвращает:
точностьndarray формы (n_features, n_features)

Оцененная точность данных.

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

Вычислить среднюю логарифмическую правдоподобность выборок.

Параметры:
Xndarray формы (n_samples, n_features)

Данные.

yИгнорируется

Игнорируемый параметр.

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

Средняя логарифмическая правдоподобия образцов при текущей модели.

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

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

Параметры:
Xndarray формы (n_samples, n_features)

Данные.

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

Логарифмическое правдоподобие каждого образца в текущей модели.

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

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

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

Применить уменьшение размерности к X с использованием модели.

Вычислить ожидаемое среднее значение скрытых переменных. См. Barber, 21.2.33 (или Bishop, 12.66).

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

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

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

Скрытые переменные X.