fastica#

sklearn.decomposition.fastica(X, n_components=None, *, алгоритм='parallel', whiten='unit-variance', fun='logcosh', fun_args=None, max_iter=200, tol=0.0001, w_init=None, whiten_solver='svd', random_state=None, return_X_mean=False, compute_sources=True, return_n_iter=False)[источник]#

Выполнить быстрый независимый компонентный анализ.

Реализация основана на [1].

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

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

Вектор обучения, где n_samples — это количество образцов и n_features это количество признаков.

n_componentsint, default=None

Количество компонентов для использования. Если передано None, используются все.

алгоритм{‘parallel’, ‘deflation’}, по умолчанию=’parallel’

Укажите, какой алгоритм использовать для FastICA.

whitenstr или bool, по умолчанию=’unit-variance’

Укажите стратегию отбеливания для использования.

  • Если ‘arbitrary-variance’, используется отбеливание с произвольной дисперсией.

  • Если 'unit-variance', матрица отбеливания масштабируется так, чтобы каждый восстановленный источник имел единичную дисперсию.

  • Если False, данные уже считаются отбеленными, и отбеливание не выполняется.

Изменено в версии 1.3: Значение по умолчанию для whiten изменено на 'unit-variance' в версии 1.3.

fun{‘logcosh’, ‘exp’, ‘cube’} или вызываемый объект, по умолчанию=’logcosh’

Функциональная форма функции G, используемая в приближении к негативной энтропии. Может быть либо 'logcosh', 'exp', либо 'cube'. Вы также можете предоставить свою собственную функцию. Она должна возвращать кортеж, содержащий значение функции и её производной в точке. Производная должна быть усреднена по её последнему измерению. Пример:

def my_g(x):
    return x ** 3, (3 * x ** 2).mean(axis=-1)
fun_argsdict, по умолчанию=None

Аргументы для передачи в функциональную форму. Если пусто или None и если fun='logcosh', fun_args примет значение {'alpha' : 1.0}.

max_iterint, default=200

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

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

Положительная скалярная величина, задающая допуск, при котором несмешивающая матрица считается сошедшейся.

w_initndarray формы (n_components, n_components), по умолчанию=None

Начальный массив для разделения смеси. Если w_init=None, тогда используется массив значений, взятых из нормального распределения.

whiten_solver{“eigh”, “svd”}, по умолчанию=”svd”

Решатель для отбеливания.

  • “svd” является более стабильным численно, если задача вырождена, и часто быстрее, когда n_samples <= n_features.

  • “eigh” обычно более эффективен по памяти, когда n_samples >= n_features, и может быть быстрее, когда n_samples >= 50 * n_features.

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

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

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

return_X_meanbool, по умолчанию=False

Если True, X_mean также возвращается.

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

Если False, источники не вычисляются, а только матрица вращения. Это может сэкономить память при работе с большими данными. По умолчанию True.

return_n_iterbool, по умолчанию=False

Возвращать или нет количество итераций.

Возвращает:
Kndarray формы (n_components, n_features) или None

Если whiten равен ‘True’, K — это матрица предварительного отбеливания, которая проецирует данные на первые n_components главных компонент. Если whiten равен ‘False’, K — это ‘None’.

Wndarray формы (n_components, n_components)

Квадратная матрица, которая разделяет данные после отбеливания. Матрица смешивания является псевдообратной матрицей W K если K не None, иначе это обратная величина W.

Sndarray формы (n_samples, n_components) или None

Оцененная матрица источников.

X_meanndarray формы (n_features,)

Среднее по признакам. Возвращается только если return_X_mean равно True.

n_iterint

Если алгоритм — "дефляция", n_iter — это максимальное количество итераций, выполненных по всем компонентам. В противном случае это просто количество итераций, затраченных на сходимость. Это возвращается только когда return_n_iter установлен в True.

Примечания

Матрица данных X рассматривается как линейная комбинация негауссовых (независимых) компонент, т.е. X = AS, где столбцы S содержат независимые компоненты, а A — линейная матрица смешивания. Короче говоря, ICA пытается un-mix' the data by estimating an un-mixing matrix W where ``S = W K X.` Хотя FastICA был предложен для оценки такого же количества источников, как и признаков, можно оценить меньше, установив n_components < n_features. В этом случае K не является квадратной матрицей, а оцененная A - это псевдообратная матрица W K.

Эта реализация изначально была создана для данных формы [n_features, n_samples]. Теперь входные данные транспонируются перед применением алгоритма. Это делает его немного быстрее для ввода в порядке Fortran.

Ссылки

[1]

A. Hyvarinen и E. Oja, "Fast Independent Component Analysis", Algorithms and Applications, Neural Networks, 13(4-5), 2000, стр. 411-430.

Примеры

>>> from sklearn.datasets import load_digits
>>> from sklearn.decomposition import fastica
>>> X, _ = load_digits(return_X_y=True)
>>> K, W, S = fastica(X, n_components=7, random_state=0, whiten='unit-variance')
>>> K.shape
(7, 64)
>>> W.shape
(7, 7)
>>> S.shape
(1797, 7)