Анализ_факторов
- классsklearn.decomposition.FactorAnalysis(n_components=None, *, tol=0.01, copy=True, max_iter=1000, noise_variance_init=None, svd_method='randomized', iterated_power=3, rotation=None, random_state=0)[source]
-
Анализ главных компонент (FA).
Простая линейная порождающая модель с гауссовскими латентными переменными.
Наблюдения предполагается, что вызваны линейным преобразованием латентных факторов меньшей размерности и добавлены гауссовский шум. Без потери общности факторы распределяются по гауссовой модели с нулевым средним значением и единичной ковариацией. Шум также имеет нулевое среднее значение и произвольную диагональную матрицу ковариации.
Если мы ограничим модель дальше, предположив, что гауссовский шум даже изотропен (все диагональные элементы одинаковы), мы получим
PCA.FactorAnalysis выполняет оценку максимального правдоподобия так называемой
loadingматрицы, преобразования латентных переменных в наблюдаемые, используя подход на основе SVD.Подробнее см. в Руководстве пользователя.
Добавлен в версии 0.13.
- Параметры:
-
- n_componentsint, по умолчанию=None
-
Размерность латентного пространства, количество компонент
X, которые получаются послеtransform. Если None, n_components устанавливается в количество признаков. - tolfloat, по умолчанию=1e-2
-
Пороговое значение для увеличения логарифмической правдоподобия.
- copybool, по умолчанию=True
-
Нужно ли копировать X. Если
False, входной X перезаписывается во время подгонки. - max_iterint, по умолчанию=1000
-
Максимальное количество итераций.
- noise_variance_initмассив-подобный типа (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’. - rotation{‘varimax’, ‘quartimax’}, по умолчанию=None
-
Если не None, применять указанное вращение. В настоящее время реализованы varimax и quartimax. См. “The varimax criterion for analytic rotation in factor analysis” H. F. Kaiser, 1958.
Добавлен в версии 0.24.
- random_stateint или RandomState instance, по умолчанию=0
-
Используется только когда
svd_methodравно ‘randomized’. Передайте целое число для воспроизводимых результатов при нескольких вызовах функции. См. Справочник терминов.
- Атрибуты:
-
- components_массив типа (n_components, n_features)
-
Компоненты с максимальной дисперсией.
- loglike_список типа (n_iterations,)
-
Логарифмическая правдоподобие на каждой итерации.
- noise_variance_массив типа (n_features,)
-
Оцененная дисперсия шума для каждого признака.
- n_iter_int
-
Количество выполненных итераций.
- mean_массив типа (n_features,)
-
Эмпирическое среднее значение на признак, оцененное из обучающего набора.
- n_features_in_int
-
Количество признаков, увиденных во время подгонки.
Добавлен в версии 0.24.
-
feature_names_in_массив типа (
n_features_in_,) -
Имена признаков, увиденных во время подгонки. Определены только тогда, когда у
Xесть имена признаков, которые являются строками.Добавлен в версии 1.0.
См. также
PCA-
Анализ главных компонент — также модель латентных линейных переменных, которая, однако, предполагает одинаковую дисперсию шума для каждого признака. Это дополнительное предположение делает вероятностный PCA быстрее, так как он может быть вычислен в замкнутой форме.
FastICA-
Анализ независимых компонент, модель латентных переменных с не-гауссовскими латентными переменными.
Ссылки
- David Barber, Bayesian Reasoning and Machine Learning, Алгоритм 21.1.
- Christopher M. Bishop: Pattern Recognition and Machine Learning, Глава 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)[source]
-
Подгонка модели FactorAnalysis к X с использованием подхода на основе SVD.
- Параметры:
-
- Xмассив-подобный типа (n_samples, n_features)
-
Обучающие данные.
- yИгнорируется
-
Игнорируемый параметр.
- Возвращает:
-
- selfобъект
-
Экземпляр класса FactorAnalysis.
- 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массив типа (n_samples, n_features_new)
-
Преобразованный массив.
- get_covariance()[source]
-
Вычисление ковариации данных с помощью модели FactorAnalysis.
cov = components_.T * components_ + diag(noise_variance)- Возвращает:
-
- covмассив типа (n_features, n_features)
-
Оцененная ковариация данных.
- get_feature_names_out(input_features=None)[source]
-
Получить имена выходных признаков для преобразования.
Имена выходных признаков будут начинаться с имени класса в нижнем регистре. Например, если преобразователь выводит 3 признака, то имена выходных признаков будут:
["class_name0", "class_name1", "class_name2"].- Параметры:
-
- input_featuresмассив-подобный объект str или None, по умолчанию=None
-
Используется только для проверки имен признаков с именами, встречающимися в
fit.
- Возвращаемое значение:
-
- feature_names_outмассив объектов str
-
Имена преобразованных признаков.
- get_metadata_routing()[source]
-
Получить маршрутизацию метаданных для этого объекта.
См. Руководство пользователя для получения информации о том, как работает механизм маршрутизации.
- Возвращаемое значение:
-
- routingMetadataRequest
-
А
MetadataRequestencapsulating routing information.
- get_params(deep=True)[source]
-
Получить параметры данного оценщика.
- Параметры:
-
- deepbool, по умолчанию=True
-
Если True, вернет параметры данного оценщика и вложенных под-объектов, являющихся оценщиками.
- Возвращаемое значение:
-
- paramsdict
-
Имена параметров, сопоставленные со значениями.
- get_precision()[source]
-
Вычислить матрицу точности данных с помощью модели FactorAnalysis.
- Возвращаемое значение:
-
- precisionмассив формы (n_features, n_features)
-
Оценённая точность данных.
- score(X, y=None)[source]
-
Вычислить среднюю логарифмическую вероятность выборок.
- Параметры:
-
- Xмассив формы (n_samples, n_features)
-
Данные.
- yИгнорируется
-
Игнорируемый параметр.
- Возвращаемое значение:
-
- llfloat
-
Средняя логарифмическая вероятность выборок по текущей модели.
- score_samples(X)[source]
-
Вычислить логарифмическую вероятность каждой выборки.
- Параметры:
-
- Xмассив формы (n_samples, n_features)
-
Данные.
- Возвращаемое значение:
-
- llмассив формы (n_samples,)
-
Логарифмическая вероятность каждой выборки по текущей модели.
- 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>, чтобы можно было обновлять каждый компонент вложенного объекта.- Параметры:
-
- **paramsdict
-
Параметры оценщика.
- Возвращаемое значение:
-
- selfэкземпляр оценщика
-
Экземпляр оценщика.
- transform(X)[source]
-
Применить уменьшение размерности к X с использованием модели.
Вычислить ожидаемое среднее скрытых переменных. См. Barber, 21.2.33 (или Bishop, 12.66).
- Параметры:
-
- Xмассив-подобный объект формы (n_samples, n_features)
-
Данные обучения.
- Возвращаемое значение:
-
- X_newмассив формы (n_samples, n_components)
-
Скрытые переменные X.
Примеры галереи
© 2007–2025 The scikit-learn developers
Licensed under the 3-clause BSD License.
https://scikit-learn.org/1.6/modules/generated/sklearn.decomposition.FactorAnalysis.html