守信#

sklearn.manifold.trustworthiness(X, X_embedded, *, n_neighbors=5, metric='euclidean')[源代码]#

指定本地结构在多大程度上被保留。

可信度就在里面 [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)如果指标是“预先计算的”,X必须是平方距离矩阵。否则,它每行包含一个样本。

X_embedded形状(n_samples,n_components)的{类数组,稀疏矩阵}

将训练数据嵌入低维空间。

n_neighborsint,默认=5

将考虑的邻居数量。应该少于 n_samples / 2 确保其可信度 [0, 1], as mentioned in [1] .否则将引发错误。

metric字符串或可调用,默认='欧几里德'

使用哪个指标来计算原始输入空间的样本之间的成对距离。如果度量是“预先计算的”,则X必须是成对距离或平方距离的矩阵。否则,有关可用指标的列表,请参阅中的参数指标文档 sklearn.pairwise.pairwise_distances 和指标中列出 sklearn.metrics.pairwise.PAIRWISE_DISTANCE_FUNCTIONS .请注意,“cos”指标使用 cosine_distances .

Added in version 0.20.

返回:
trustworthiness浮子

低维嵌入的可信度。

引用

[1]

雅科·维纳和塞缪尔·卡斯基。2001.非线性投影方法中的邻居保留:实验研究。《国际人工神经网络会议录》(ICANN ' 01)。施普林格出版社,柏林,海德堡,485-491。

[2]

劳伦斯·范德马滕。通过保留局部结构来学习参数嵌入。第十二届国际人工智能与统计会议论文集,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