Spec-Zone.ru › scikit-learn

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.

Примеры в галерее

Декомпозиция набора данных лиц

Выбор модели с помощью вероятностного PCA и факторного анализа (FA)

Факторный анализ (с вращением) для визуализации закономерностей

© 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

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API