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
將轉換器擬合到X
和y
,並回傳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
設定
transform
和fit_transform
的輸出。"default"
:轉換器的預設輸出格式"pandas"
:DataFrame 輸出"polars"
:Polars 輸出None
:轉換設定保持不變
1.4 版新增:加入了
"polars"
選項。
- 回傳值:
- self估算器實例
估算器實例。