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


Python cuml.random_projection.SparseRandomProjection用法及代碼示例


用法:

class cuml.random_projection.SparseRandomProjection(*, handle=None, n_components='auto', density='auto', eps=0.1, dense_output=True, random_state=None, verbose=False, output_type=None)

派生自BaseRandomProjection 類的稀疏隨機投影方法。

隨機投影是一種降維技術。隨機投影方法是強大的方法,以其簡單性、計算效率和有限的模型大小而聞名。該算法還具有很好地保持任意兩個樣本之間的距離的優點,因此適用於具有這種要求的方法。

稀疏隨機矩陣是密集隨機投影矩陣(例如高斯)的替代方案,它保證了相似的嵌入質量,同時內存效率更高,並允許更快地計算投影數據(具有足夠稀疏的矩陣)。如果我們注意到s = 1 / density,隨機矩陣的分量來自:

  • -sqrt(s) / sqrt(n_components) - 概率為 1 / 2s
  • 0 - 概率為 1 - 1 / s
  • +sqrt(s) / sqrt(n_components) - 概率為 1 / 2s

參數

handlecuml.Handle

指定 cuml.handle 保存用於此模型中計算的內部 CUDA 狀態。最重要的是,這指定了將用於模型計算的 CUDA 流,因此用戶可以通過在多個流中創建句柄在不同的流中同時運行不同的模型。如果為 None,則創建一個新的。

n_componentsint(默認 = ‘auto’)

目標投影空間的維度。如果設置為‘auto’,由於Johnson-Lindenstrauss 引理,參數會被扣除。自動推導利用樣本數和 eps 參數。 Johnson-Lindenstrauss 引理可以產生非常保守的 n_components 參數,因為它不對數據集結構做任何假設。

density在範圍內浮點數 (0, 1] (默認 = ‘auto’)

隨機投影矩陣中非零分量的比率。如果密度 = ‘auto’,則將該值設置為 Ping Li 等人推薦的最小密度:1 /sqrt(n_features)。

eps浮點數(默認 = 0.1)

投影期間的誤差容限。當 n_components 設置為 ‘auto’ 時,由 Johnson-Lindenstrauss 自動扣除使用。

dense_output布爾值(默認 = True)

如果設置為 True 變換矩陣將是密集的,否則是稀疏的。

random_stateint(默認 = 無)

用於初始化隨機發生器的種子

verboseint 或布爾值,默認=False

設置日誌記錄級別。它必須是 cuml.common.logger.level_* 之一。有關詳細信息,請參閱詳細級別。

output_type{‘input’, ‘cudf’, ‘cupy’, ‘numpy’, ‘numba’},默認=無

用於控製估計器的結果和屬性的輸出類型的變量。如果為 None,它將繼承在模塊級別設置的輸出類型 cuml.global_settings.output_type 。有關詳細信息,請參閱輸出數據類型配置。

注意

此類無法與sklearn.base.clone() 一起使用,並且在調用時會引發異常。

靈感來自 Scikit-learn 的 implementation

例子

from cuml.random_projection import SparseRandomProjection
from sklearn.datasets import make_blobs
from sklearn.svm import SVC

# dataset generation
data, target = make_blobs(n_samples=800, centers=400, n_features=3000,
                          random_state=42)

# model fitting
model = SparseRandomProjection(n_components=5,
                               random_state=42).fit(data)

# dataset transformation
transformed_data = model.transform(data)

# classifier training
classifier = SVC(gamma=0.001).fit(transformed_data, target)

# classifier scoring
score = classifier.score(transformed_data, target)

# measure information preservation
print("Score: {}".format(score))

輸出:

Score: 1.0

屬性

gaussian_method布爾值

傳遞給基類以確定隨機矩陣生成方法

相關用法


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