當前位置: 首頁>>代碼示例 >>用法及示例精選 >>正文


Python cuml.dask.manifold.UMAP用法及代碼示例


用法:

class cuml.dask.manifold.UMAP(*, model, client=None, **kwargs)

均勻流形逼近和投影

找到近似底層流形的數據的低維嵌入。

改編自 https://github.com/lmcinnes/umap/blob/master/umap/ umap .py

注意

這個模塊很大程度上基於 Leland McInnes 的參考 UMAP 包[1]

但是,cuml.umap 中還有許多差異和函數尚未實現:

  • 使用非歐幾裏得距離度量(計劃在即將發布的版本中支持一組固定的非歐幾裏得度量)。
  • 使用預先計算的成對距離矩陣(未來版本正在考慮)
  • 初始嵌入位置的手動初始化

除了這些缺失的函數之外,您還應該看到 cuml.umap 和參考 UMAP 之間的最終嵌入不同。特別是,參考 UMAP 對大數據量使用近似 kNN 算法,而 cuml.umap 始終使用精確 kNN。

已知問題:如果 UMAP 模型尚未擬合,則無法 pickle

參考

1

Leland McInnes, John Healy, James Melville UMAP: Uniform Manifold Approximation and Projection for Dimension Reduction.

例子

from dask_cuda import LocalCUDACluster
from dask.distributed import Client
from cuml.dask.datasets import make_blobs
from cuml.manifold import UMAP
from cuml.dask.manifold import UMAP as MNMG_UMAP
import numpy as np

cluster = LocalCUDACluster(threads_per_worker=1)
client = Client(cluster)

X, y = make_blobs(1000, 10,
                centers=42,
                cluster_std=0.1,
                dtype=np.float32,
                n_parts=2,
                output='array')

local_model = UMAP()

selection = np.random.choice(1000, 100)
X_train = X[selection].compute()
y_train = y[selection].compute()

local_model.fit(X_train, y=y_train)

distributed_model = MNMG_UMAP(local_model)
embedding = distributed_model.transform(X)

注意

每次運行此代碼時,輸出都會有所不同,因為 “make_blobs” 函數會生成隨機矩陣。

相關用法


注:本文由純淨天空篩選整理自rapids.ai大神的英文原創作品 cuml.dask.manifold.UMAP。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。