trustworthiness#

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{array-like, sparse matrix},形狀為 (n_samples, n_features) 或

(n_samples, n_samples) 如果度量是 'precomputed',則 X 必須是方形距離矩陣。否則,它包含每列一個樣本。

X_embedded{array-like, sparse matrix},形狀為 (n_samples, n_components)

訓練資料在低維空間中的嵌入。

n_neighborsint,預設值為 5

將被考慮的鄰居數量。應小於 n_samples / 2,以確保可信度介於 [0, 1] 之間,如 [1] 中所述。否則會引發錯誤。

metricstr 或可調用物件,預設值為 'euclidean'

用於計算原始輸入空間中樣本之間的成對距離的度量。如果度量是 'precomputed',則 X 必須是成對距離或平方距離的矩陣。否則,如需取得可用度量列表,請參閱 sklearn.pairwise.pairwise_distances 中度量引數的文件以及 sklearn.metrics.pairwise.PAIRWISE_DISTANCE_FUNCTIONS 中列出的度量。請注意,“cosine” 度量使用 cosine_distances

在版本 0.20 中新增。

回傳值:
trustworthinessfloat

低維嵌入的可信度。

參考文獻

[1]

Jarkko Venna 和 Samuel Kaski。2001 年。非線性投影方法中的鄰域保留:一項實驗研究。在國際人工神經網路會議 (ICANN ‘01) 會議記錄中。Springer-Verlag,柏林,海德堡,485-491。

[2]

Laurens van der Maaten。透過保留局部結構學習參數嵌入。第十二屆人工智慧與統計國際會議論文集,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