GaussianRandomProjection#

class sklearn.random_projection.GaussianRandomProjection(n_components='auto', *, eps=0.1, compute_inverse_components=False, random_state=None)[原始碼]#

透過高斯隨機投影降低維度。

隨機矩陣的分量取自 N(0, 1 / n_components)。

請參閱使用者指南以了解更多資訊。

在 0.13 版本中新增。

參數:
n_componentsint 或 ‘auto’,預設為 ‘auto’

目標投影空間的維度。

n_components 可以根據數據集中的樣本數量以及 Johnson-Lindenstrauss 引理給定的界限自動調整。在這種情況下,嵌入的品質由 eps 參數控制。

應該注意的是,Johnson-Lindenstrauss 引理可能會產生對所需元件數量的非常保守的估計,因為它沒有對數據集的結構做出任何假設。

epsfloat,預設為 0.1

n_components 設定為 ‘auto’ 時,根據 Johnson-Lindenstrauss 引理控制嵌入品質的參數。該值應嚴格為正數。

較小的值會帶來更好的嵌入效果,並在目標投影空間中產生更高的維度 (n_components)。

compute_inverse_componentsbool,預設為 False

透過在擬合期間計算組件的偽逆來學習逆轉換。請注意,計算偽逆對於大型矩陣來說無法良好擴展。

random_stateint、RandomState 實例或 None,預設為 None

控制用於在擬合時產生投影矩陣的偽隨機數產生器。傳遞一個整數以在多個函式呼叫之間產生可重複的輸出。請參閱詞彙表

屬性:
n_components_int

當 n_components=”auto” 時計算的組件的具體數量。

components_形狀為 (n_components, n_features) 的 ndarray

用於投影的隨機矩陣。

inverse_components_形狀為 (n_features, n_components) 的 ndarray

組件的偽逆,僅當 compute_inverse_components 為 True 時計算。

在 1.1 版本中新增。

n_features_in_int

fit 期間看到的特徵數量。

在 0.24 版本中新增。

feature_names_in_形狀為 (n_features_in_,) 的 ndarray

fit 期間看到的特徵名稱。僅當 X 具有全部為字串的特徵名稱時定義。

在 1.0 版本中新增。

範例

>>> import numpy as np
>>> from sklearn.random_projection import GaussianRandomProjection
>>> rng = np.random.RandomState(42)
>>> X = rng.rand(25, 3000)
>>> transformer = GaussianRandomProjection(random_state=rng)
>>> X_new = transformer.fit_transform(X)
>>> X_new.shape
(25, 2759)
透過稀疏隨機投影降低維度。

fit(X, y=None)[原始碼]#

參數:
產生稀疏隨機投影矩陣。

X形狀為 (n_samples, n_features) 的 {ndarray, 稀疏矩陣}

訓練集:僅使用形狀來根據上述論文中引用的理論找到最佳隨機矩陣維度。

y忽略

不使用,此處為了 API 一致性而存在。
傳回值:

selfobject

BaseRandomProjection 類別實例。

fit_transform(X, y=None, **fit_params)[原始碼]#

將資料擬合,然後轉換資料。

參數:
使用可選參數 fit_params 將轉換器擬合到 Xy,並傳回 X 的轉換版本。

X形狀為 (n_samples, n_features) 的類陣列

輸入樣本。

y形狀為 (n_samples,) 或 (n_samples, n_outputs) 的類陣列,預設為 None

目標值(無監督轉換為 None)。

**fit_paramsdict

不使用,此處為了 API 一致性而存在。
其他擬合參數。

X_new形狀為 (n_samples, n_features_new) 的 ndarray 陣列

轉換後的陣列。

get_feature_names_out(input_features=None)[原始碼]#

取得轉換的輸出特徵名稱。

參數:
輸出特徵名稱將以小寫類別名稱作為前綴。例如,如果轉換器輸出 3 個特徵,則輸出特徵名稱為:["class_name0", "class_name1", "class_name2"]

input_features字串或 None 的類陣列,預設為 None

不使用,此處為了 API 一致性而存在。
僅用於驗證特徵名稱是否與 fit 中看到的名稱一致。

feature_names_out字串物件的 ndarray

轉換後的特徵名稱。

get_metadata_routing()[原始碼]#

取得此物件的中繼資料路由。

不使用,此處為了 API 一致性而存在。
請查看 使用者指南,了解路由機制的運作方式。

routingMetadataRequest

get_params(deep=True)[原始碼]#

取得此估算器的參數。

參數:
deepbool,預設值為 True

若為 True,將會回傳此估算器及包含的子物件(亦為估算器)的參數。

不使用,此處為了 API 一致性而存在。
paramsdict

參數名稱對應到其值的字典。

inverse_transform(X)[原始碼]#

將資料投影回原始空間。

回傳一個 X_original 陣列,其轉換結果會是 X。請注意,即使 X 是稀疏矩陣,X_original 也是稠密矩陣:這可能會使用大量的 RAM。

如果 compute_inverse_components 為 False,則會在每次呼叫 inverse_transform 時計算反向組件,這可能會很耗費資源。

參數:
X形狀為 (n_samples, n_components) 的類陣列或稀疏矩陣

要轉換回原始空間的資料。

不使用,此處為了 API 一致性而存在。
X_original形狀為 (n_samples, n_features) 的 ndarray

重建後的資料。

set_output(*, transform=None)[原始碼]#

設定輸出容器。

請參閱 引入 set_output API 以了解如何使用此 API 的範例。

參數:
transform{“default”, “pandas”, “polars”},預設值為 None

設定 transformfit_transform 的輸出。

  • "default":轉換器的預設輸出格式

  • "pandas":DataFrame 輸出

  • "polars":Polars 輸出

  • None:轉換設定保持不變

1.4 版本新增: 新增了 "polars" 選項。

不使用,此處為了 API 一致性而存在。
self估算器實例

估算器實例。

set_params(**params)[原始碼]#

設定此估算器的參數。

此方法適用於簡單的估算器以及巢狀物件(例如 Pipeline)。後者的參數格式為 <component>__<parameter>,因此可以更新巢狀物件的每個組件。

參數:
**paramsdict

估算器參數。

不使用,此處為了 API 一致性而存在。
self估算器實例

估算器實例。

transform(X)[原始碼]#

使用隨機矩陣的矩陣乘積來投影資料。

參數:
產生稀疏隨機投影矩陣。

要投影到較小維度空間的輸入資料。

不使用,此處為了 API 一致性而存在。
X_new形狀為 (n_samples, n_components) 的 ndarray

投影後的陣列。