sklearn.random_projection.johnson_lindenstrauss_min_dim

sklearn.random_projection.johnson_lindenstrauss_min_dim(n_samples, *, eps=0.1)

[源码]

查找数量“安全”的组件以随机投影到

由随机投影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_components,n_features]的随机高斯N(0,1)矩阵的投影 (或稀疏的Achlioptas矩阵)。

保证eps嵌入的最小组件数由下式给出:

n_components> = 4 log(n_samples)/(eps ^ 2/2-eps ^ 3/3)

请注意,尺寸的数量与原始要素的数量无关,而是取决于数据集的大小:数据集越大,eps嵌入的最小尺寸越高。

用户指南中阅读更多内容。

参数 说明
n_samples int or numpy array of int greater than 0,
样本数。 如果给出了一个数组,它将按数组计算安全数量的组件。
eps float or numpy array of float in ]0,1[, optional (default=0.1)
由Johnson-Lindenstrauss引理定义的最大失真率。 如果给出了一个数组,它将按数组计算安全数量的组件。
返回值 说明
n_components int or numpy array of int,
最小数量的组件,以极有可能保证n_samples的eps嵌入。

参考资料

1 https://en.wikipedia.org/wiki/Johnson%E2%80%93Lindenstrauss_lemma](https://en.wikipedia.org/wiki/Johnson–Lindenstrauss_lemma)

2 Sanjoy Dasgupta and Anupam Gupta, 1999, “An elementary proof of the Johnson-Lindenstrauss Lemma.” http://citeseer.ist.psu.edu/viewdoc/summary?doi=10.1.1.45.3654

示例

>>> johnson_lindenstrauss_min_dim(1e6, eps=0.5)
663
>>> johnson_lindenstrauss_min_dim(1e6, eps=[0.50.10.01])
array([    663,   118411112658])
>>> johnson_lindenstrauss_min_dim([1e41e51e6], eps=0.1)
array([ 7894,  986811841])

sklearn.random_projection.johnson_lindenstrauss_min_dim使用示例