johnson_lindenstrauss_min_dim
- sklearn.random_projection.johnson_lindenstrauss_min_dim(n_samples, *, eps=0.1)[source]
-
Нахождение безопасного числа компонент для случайной проекции.
Искажение, вносимое случайной проекцией
pизменяет расстояние между двумя точками только в факторе (1 +- eps) в евклидовом пространстве с хорошей вероятностью. Проекцияpявляется eps-вложением, как определено:(1 - eps) ||u - v||^2 < ||p(u) - p(v)||^2 < (1 + eps) ||u - v||^2
Где u и v — любые строки, взятые из набора данных формы (n_samples, n_features), eps — в ]0, 1[ и p — проекция случайной матрицей Гаусса N(0, 1) формы (n_components, n_features) (или разреженной матрицей Аклиотаса).
Минимальное число компонент для обеспечения eps-вложения задаётся следующим образом:
n_components >= 4 log(n_samples) / (eps^2 / 2 - eps^3 / 3)
Обратите внимание, что количество измерений не зависит от исходного количества признаков, а вместо этого зависит от размера набора данных: чем больше набор данных, тем выше минимальная размерность eps-вложения.
Подробнее см. в Руководстве пользователя.
- Параметры:
-
- n_samplesint или массив int
-
Количество образцов, которое должно быть целым числом больше 0. Если предоставлен массив, он вычислит безопасное число компонент по массиву.
- epsfloat или массив формы (n_components,), dtype=float, по умолчанию=0.1
-
Максимальная скорость искажения в диапазоне (0, 1), как определено леммой Джонсона-Линденбаума. Если дан массив, он вычислит безопасное число компонент по массиву.
- Возвращает:
-
- n_componentsint или массив int
-
Минимальное число компонент, которые с хорошей вероятностью гарантируют eps-вложение с n_samples.
Ссылки
Примеры
>>> from sklearn.random_projection import johnson_lindenstrauss_min_dim >>> johnson_lindenstrauss_min_dim(1e6, eps=0.5) np.int64(663)
>>> johnson_lindenstrauss_min_dim(1e6, eps=[0.5, 0.1, 0.01]) array([ 663, 11841, 1112658])
>>> johnson_lindenstrauss_min_dim([1e4, 1e5, 1e6], eps=0.1) array([ 7894, 9868, 11841])
Галерея примеров
© 2007–2025 The scikit-learn developers
Licensed under the 3-clause BSD License.
https://scikit-learn.org/1.6/modules/generated/sklearn.random_projection.johnson_lindenstrauss_min_dim.html