trustworthiness#
- sklearn.manifold.trustworthiness(X, X_embedded, *, n_neighbors=5, metric='euclidean')[source]#
指示局部结构保留的程度。
可信度在 [0, 1] 之间。它定义为
\[T(k) = 1 - \frac{2}{nk (2n - 3k - 1)} \sum^n_{i=1} \sum_{j \in \mathcal{N}_{i}^{k}} \max(0, (r(i, j) - k))\]其中对于每个样本 i,\(\mathcal{N}_{i}^{k}\) 是其在输出空间中的 k 个最近邻居,每个样本 j 是其在输入空间中的第 \(r(i, j)\) 个最近邻居。换句话说,输出空间中任何意外的最近邻居都会根据其在输入空间中的排名受到惩罚。
- 参数:
- X{类数组,稀疏矩阵},形状为 (n_samples, n_features) 或
(n_samples, n_samples) 如果度量是 'precomputed',X 必须是方阵距离矩阵。否则,它每行包含一个样本。
- X_embedded{类数组,稀疏矩阵},形状为 (n_samples, n_components)
训练数据在低维空间中的嵌入。
- n_neighbors整型,默认为 5
将要考虑的邻居数量。应小于
n_samples / 2
,以确保可信度在 [0, 1] 之间,如 [1] 中所述。否则将引发错误。- metric字符串或可调用对象,默认为 'euclidean'
用于计算原始输入空间中样本之间成对距离的度量。如果 metric 为 'precomputed',X 必须是成对距离或平方距离的矩阵。否则,有关可用度量列表,请参阅
sklearn.pairwise.pairwise_distances
中 metric 参数的文档以及sklearn.metrics.pairwise.PAIRWISE_DISTANCE_FUNCTIONS
中列出的度量。请注意,“cosine”度量使用cosine_distances
。0.20 版本新增。
- 返回:
- trustworthiness浮点型
低维嵌入的可信度。
参考文献
[1]Jarkko Venna and Samuel Kaski. 2001. Neighborhood Preservation in Nonlinear Projection Methods: An Experimental Study. In Proceedings of the International Conference on Artificial Neural Networks (ICANN ‘01). Springer-Verlag, Berlin, Heidelberg, 485-491.
[2]Laurens van der Maaten. Learning a Parametric Embedding by Preserving Local Structure. Proceedings of the Twelfth International Conference on Artificial Intelligence and Statistics, PMLR 5:384-391, 2009.
示例
>>> from sklearn.datasets import make_blobs >>> from sklearn.decomposition import PCA >>> from sklearn.manifold import trustworthiness >>> X, _ = make_blobs(n_samples=100, n_features=10, centers=3, random_state=42) >>> X_embedded = PCA(n_components=2).fit_transform(X) >>> print(f"{trustworthiness(X, X_embedded, n_neighbors=5):.2f}") 0.92