MiniBatchSparsePCA#

class sklearn.decomposition.MiniBatchSparsePCA(n_components=None, *, alpha=1, ridge_alpha=0.01, max_iter=1000, callback=None, batch_size=3, verbose=False, shuffle=True, n_jobs=None, method='lars', random_state=None, tol=0.001, max_no_improvement=10)[原始碼]#

迷你批次稀疏主成分分析 (Mini-batch Sparse Principal Components Analysis)。

找出能最佳重建資料的稀疏成分集合。稀疏程度可透過 L1 懲罰的係數控制,該係數由參數 alpha 給定。

有關稀疏 PCA 與 PCA 比較的範例,請參閱 人臉資料集分解

使用者指南 中閱讀更多內容。

參數:
n_componentsint,預設值=None

要提取的稀疏原子數。如果為 None,則 n_components 會設為 n_features

alphaint,預設值=1

稀疏性控制參數。數值越高,成分越稀疏。

ridge_alphafloat,預設值=0.01

套用的嶺縮減量,以在呼叫 transform 方法時改善條件。

max_iterint,預設值=1_000

在不考慮任何提前停止條件啟發法的情況下,在完整資料集上進行迭代的最大次數。

在 1.2 版本中新增。

callback可呼叫物件,預設值=None

每五次迭代會調用的可呼叫物件。

batch_sizeint,預設值=3

每個迷你批次中要取得的特徵數。

verboseint 或 bool,預設值=False

控制詳細程度;數值越高,訊息越多。預設值為 0。

shufflebool,預設值=True

是否在將資料分割為批次之前將其洗牌。

n_jobsint,預設值=None

要執行的平行作業數。None 表示 1,除非在 joblib.parallel_backend 內容中。-1 表示使用所有處理器。請參閱 詞彙表 以取得更多詳細資訊。

method{‘lars’, ‘cd’},預設值=‘lars’

用於最佳化的方法。lars:使用最小角度迴歸方法來解決套索問題 (linear_model.lars_path) cd:使用座標下降法來計算套索解 (linear_model.Lasso)。如果估計的成分稀疏,則 Lars 會更快。

random_stateint、RandomState 執行個體或 None,預設值=None

shuffle 設定為 True 時,在線上字典學習期間用於隨機洗牌。傳遞一個 int 以在多個函數呼叫中獲得可重複的結果。請參閱 詞彙表

tolfloat,預設值=1e-3

根據字典在 2 個步驟之間差異的範數控制提前停止。

若要停用基於字典變更的提前停止,請將 tol 設定為 0.0。

在 1.1 版本中新增。

max_no_improvementint 或 None,預設值=10

根據連續的迷你批次數控制提前停止,這些迷你批次未對平滑成本函數產生改善。

若要停用基於成本函數的收斂偵測,請將 max_no_improvement 設定為 None

在 1.1 版本中新增。

屬性:
components_形狀為 (n_components, n_features) 的 ndarray

從資料中提取的稀疏成分。

n_components_int

估計的成分數。

在 0.23 版本中新增。

n_iter_int

執行的迭代次數。

mean_形狀為 (n_features,) 的 ndarray

從訓練集中估計的每個特徵的經驗平均值。等於 X.mean(axis=0)

n_features_in_int

fit 期間看到的特徵數。

在 0.24 版本中新增。

feature_names_in_形狀為 (n_features_in_,) 的 ndarray

fit 期間看到的特徵名稱。僅當 X 的特徵名稱都是字串時定義。

在 1.0 版本中新增。

另請參閱

DictionaryLearning

稀疏編碼資料的字典。

IncrementalPCA

增量主成分分析。

PCA

主成分分析。

SparsePCA

稀疏主成分分析。

TruncatedSVD

使用截斷 SVD 降維。

範例

>>> import numpy as np
>>> from sklearn.datasets import make_friedman1
>>> from sklearn.decomposition import MiniBatchSparsePCA
>>> X, _ = make_friedman1(n_samples=200, n_features=30, random_state=0)
>>> transformer = MiniBatchSparsePCA(n_components=5, batch_size=50,
...                                  max_iter=10, random_state=0)
>>> transformer.fit(X)
MiniBatchSparsePCA(...)
>>> X_transformed = transformer.transform(X)
>>> X_transformed.shape
(200, 5)
>>> # most values in the components_ are zero (sparsity)
>>> np.mean(transformer.components_ == 0)
np.float64(0.9...)
fit(X, y=None)[原始碼]#

從 X 中的資料擬合模型。

參數:
X形狀為 (n_samples, n_features) 的類陣列物件

訓練向量,其中 n_samples 是樣本數,而 n_features 是特徵數。

y已忽略

未使用,此處僅為符合 API 慣例而存在。

回傳值:
self物件

回傳實例本身。

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_params字典

額外的擬合參數。

回傳值:
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

僅用於驗證特徵名稱是否與 fit 中看到的名稱相同。

回傳值:
feature_names_out字串物件的 ndarray

轉換後的特徵名稱。

get_metadata_routing()[原始碼]#

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

請查看 使用者指南,了解路由機制如何運作。

回傳值:
routingMetadataRequest

一個封裝路由資訊的 MetadataRequest

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

取得此估算器的參數。

參數:
deep布林值,預設值=True

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

回傳值:
params字典

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

inverse_transform(X)[原始碼]#

將資料從潛在空間轉換回原始空間。

此反轉是近似值,因為前向分解會導致資訊遺失。

在 1.2 版本中新增。

參數:
X形狀為 (n_samples, n_components) 的 ndarray

潛在空間中的資料。

回傳值:
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" 選項。

回傳值:
self估算器實例

估算器實例。

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

設定此估算器的參數。

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

參數:
**params字典

估算器參數。

回傳值:
self估算器實例

估算器實例。

transform(X)[原始碼]#

將資料以最小平方法投影到稀疏分量上。

為了避免系統欠定的不穩定問題,可以透過 ridge_alpha 參數套用正規化(嶺迴歸)。

請注意,稀疏 PCA 分量的正交性並不像 PCA 那樣強制執行,因此無法使用簡單的線性投影。

參數:
X形狀為 (n_samples, n_features) 的 ndarray

要轉換的測試資料,必須具有與訓練模型所用資料相同的特徵數量。

回傳值:
X_new形狀為 (n_samples, n_components) 的 ndarray

轉換後的資料。