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)