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": Вывод PolarsNone: Конфигурация преобразования не изменена
Добавлено в версии 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.
Примеры галереи#
Выбор модели с вероятностным PCA и факторным анализом (FA)
Факторный анализ (с вращением) для визуализации паттернов