FactorAnalysis
- classsklearn.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)[исходный код]
-
Факторный анализ (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_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’. - rotation{‘varimax’, ‘quartimax’}, по умолчанию=None
-
Если значение не None, применяется указанное вращение. В настоящее время реализованы varimax и quartimax. См. «Критерий varimax для аналитического вращения в факторном анализе» 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-
Анализ независимых компонент — модель латентных переменных с негауссовыми латентными переменными.
Литература
- David Barber, «Байесовские рассуждения и машинное обучение», алгоритм 21.1.
- Christopher M. Bishop: «Распознавание образов и машинное обучение», глава 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Игнорируется
-
Игнорируемый параметр.
- Возвращает:
-
- selfобъект
-
Экземпляр класса 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), по умолчанию=None
-
Целевые значения (None для преобразований без учителя).
- **fit_paramsdict
-
Дополнительные параметры обучения. Передавайте их, только если оценщик принимает дополнительные параметры в методе
fit.
- Возвращает:
-
- X_newndarray формы (n_samples, n_features_new)
-
Преобразованный массив.
- get_covariance()[исходный код]
-
Вычисляет ковариацию данных с помощью модели FactorAnalysis.
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
-
Названия преобразованных признаков.
- get_metadata_routing()[исходный код]
-
Возвращает маршрутизацию метаданных этого объекта.
О том, как работает механизм маршрутизации, см. в руководстве пользователя.
- Возвращает:
-
- routingMetadataRequest
-
MetadataRequest, содержащий сведения о маршрутизации.
- get_params(deep=True)[исходный код]
-
Возвращает параметры этого оценщика.
- Параметры:
-
- deepbool, по умолчанию=True
-
Если True, возвращает параметры этого оценщика и содержащихся в нем подобъектов, которые являются оценщиками.
- Возвращает:
-
- paramsdict
-
Названия параметров, сопоставленные с их значениями.
- get_precision()[исходный код]
-
Вычисляет матрицу точности данных с помощью модели FactorAnalysis.
- Возвращает:
-
- precisionndarray формы (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(*, transform=None)[исходный код]
-
Задает контейнер для выходных данных.
Подробнее см. в руководстве пользователя, а пример использования API приведен в разделе «Знакомство с API set_output».
- Параметры:
-
- transform{“default”, “pandas”, “polars”}, по умолчанию=None
-
Настраивает формат вывода для
transformиfit_transform.-
"default": формат вывода преобразователя по умолчанию -
"pandas": вывод в формате DataFrame -
"polars": вывод в формате Polars -
None: конфигурация преобразования не изменяется
Добавлено в версии 1.4: добавлен параметр
"polars". -
- Возвращает:
-
- selfэкземпляр оценщика
-
Экземпляр оценщика.
- set_params(**params)[исходный код]
-
Задает параметры этого оценщика.
Метод работает как с простыми оценщиками, так и с вложенными объектами (например,
Pipeline). У последних параметры имеют вид<component>__<parameter>, что позволяет обновлять каждый компонент вложенного объекта.- Параметры:
-
- **paramsdict
-
Параметры оценщика.
- Возвращает:
-
- selfэкземпляр оценщика
-
Экземпляр оценщика.
- transform(X)[исходный код]
-
Уменьшает размерность X с помощью модели.
Вычисляет математическое ожидание латентных переменных. См. Barber, 21.2.33 (или Bishop, 12.66).
- Параметры:
-
- Xarray-like формы (n_samples, n_features)
-
Обучающие данные.
- Возвращает:
-
- X_newndarray формы (n_samples, n_components)
-
Латентные переменные X.
Примеры в галерее
© 2007–2026 The scikit-learn developers
Licensed under the 3-clause BSD License.
https://scikit-learn.org/1.9/modules/generated/sklearn.decomposition.FactorAnalysis.html