FastICA#
- class sklearn.decomposition.FastICA(n_components=None, *, algorithm='parallel', whiten='unit-variance', fun='logcosh', fun_args=None, max_iter=200, tol=0.0001, w_init=None, whiten_solver='svd', random_state=None)[原始碼]#
FastICA:用於獨立成分分析的快速演算法。
此實作基於 [1]。
請在使用者指南中閱讀更多資訊。
- 參數:
- n_componentsint,預設值=None
要使用的成分數量。如果傳入 None,則使用所有成分。
- algorithm{‘parallel’,‘deflation’},預設值=‘parallel’
指定要用於 FastICA 的演算法。
- whitenstr 或 bool,預設值=‘unit-variance’
指定要使用的白化策略。
如果為 ‘arbitrary-variance’,則使用具有任意變異數的白化。
如果為 ‘unit-variance’,則會重新調整白化矩陣,以確保每個恢復的來源都具有單位變異數。
如果為 False,則數據已被視為已白化,並且不執行白化。
在 1.3 版本中變更:
whiten
的預設值在 1.3 中變更為 ‘unit-variance’。- fun{‘logcosh’,‘exp’,‘cube’} 或可呼叫的物件,預設值=‘logcosh’
用於近似負熵的 G 函數的功能形式。可以是 ‘logcosh’、‘exp’ 或 ‘cube’。您也可以提供自己的函數。它應返回一個元組,其中包含函數的值及其在該點的導數。導數應沿其最後一個維度進行平均。範例
def my_g(x): return x ** 3, (3 * x ** 2).mean(axis=-1)
- fun_argsdict,預設值=None
要發送到函數形式的引數。如果為空或 None 且 fun='logcosh',則 fun_args 將取值 {‘alpha’ : 1.0}。
- max_iterint,預設值=200
在擬合期間的最大迭代次數。
- tolfloat,預設值=1e-4
一個正純量,表示當取消混合矩陣被認為已收斂時的容錯值。
- w_init形狀類似陣列 (n_components, n_components),預設值=None
初始取消混合陣列。如果
w_init=None
,則使用從常態分佈中提取的值的陣列。- whiten_solver{“eigh”, “svd”},預設值=“svd”
用於白化的解算器。
如果問題是退化的,則 “svd” 在數值上更穩定,並且當
n_samples <= n_features
時通常更快。當
n_samples >= n_features
時,“eigh” 通常具有更高的記憶體效率,並且當n_samples >= 50 * n_features
時可以更快。
在 1.2 版本中新增。
- random_stateint、RandomState 實例或 None,預設值=None
用於在未指定時,使用常態分佈初始化
w_init
。傳遞一個 int,以確保在多次函數呼叫中獲得可重現的結果。請參閱詞彙表。
- 屬性:
- components_形狀為 (n_components, n_features) 的 ndarray
要應用於資料以取得獨立來源的線性運算子。當
whiten
為 False 時,這等於取消混合矩陣,並且當whiten
為 True 時,這等於np.dot(unmixing_matrix, self.whitening_)
。- mixing_形狀為 (n_features, n_components) 的 ndarray
components_
的偽反向。它是將獨立來源對應到資料的線性運算子。- mean_形狀為 (n_features,) 的 ndarray
跨功能的平均值。僅當
self.whiten
為 True 時才設定。- n_features_in_int
在擬合期間看到的特徵數。
在 0.24 版本中新增。
- feature_names_in_形狀為 (
n_features_in_
,) 的 ndarray 在擬合期間看到的特徵名稱。僅當
X
具有全部為字串的特徵名稱時才定義。在 1.0 版本中新增。
- n_iter_int
如果演算法為「deflation」,則 n_iter 是跨所有元件執行的最大迭代次數。否則,它們只是收斂所需的迭代次數。
- whitening_形狀為 (n_components, n_features) 的 ndarray
僅當 whiten 為 ‘True’ 時才設定。這是將資料投影到前
n_components
個主成分上的預先白化矩陣。
另請參閱
PCA
主成分分析 (PCA)。
IncrementalPCA
增量主成分分析 (IPCA)。
KernelPCA
核心主成分分析 (KPCA)。
MiniBatchSparsePCA
小批量稀疏主成分分析。
SparsePCA
稀疏主成分分析 (SparsePCA)。
參考文獻
[1]A. Hyvarinen 和 E. Oja,獨立成分分析:演算法與應用,神經網路,13(4-5),2000,第 411-430 頁。
範例
>>> from sklearn.datasets import load_digits >>> from sklearn.decomposition import FastICA >>> X, _ = load_digits(return_X_y=True) >>> transformer = FastICA(n_components=7, ... random_state=0, ... whiten='unit-variance') >>> X_transformed = transformer.fit_transform(X) >>> X_transformed.shape (1797, 7)
- fit(X, y=None)[原始碼]#
將模型擬合到 X。
- 參數:
- X形狀為 (n_samples, n_features) 的類陣列
訓練資料,其中
n_samples
是樣本數,而n_features
是特徵數。- y忽略
不使用,為了 API 的一致性而存在。
- 回傳值:
- self物件
回傳實例本身。
- fit_transform(X, y=None)[原始碼]#
擬合模型並從 X 中還原來源。
- 參數:
- X形狀為 (n_samples, n_features) 的類陣列
訓練資料,其中
n_samples
是樣本數,而n_features
是特徵數。- y忽略
不使用,為了 API 的一致性而存在。
- 回傳值:
- X_new形狀為 (n_samples, n_components) 的 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)[原始碼]#
取得此估算器的參數。
- 參數:
- deepbool,預設為 True
如果為 True,將回傳此估算器以及所包含的子物件(也是估算器)的參數。
- 回傳值:
- paramsdict
參數名稱對應到它們的值。
- inverse_transform(X, copy=True)[原始碼]#
將來源轉換回混合資料(應用混合矩陣)。
- 參數:
- X形狀為 (n_samples, n_components) 的類陣列
來源,其中
n_samples
是樣本數,而n_components
是成分數。- copybool,預設為 True
如果為 False,則傳遞給 fit 的資料將被覆寫。預設為 True。
- 回傳值:
- X_new形狀為 (n_samples, n_features) 的 ndarray
使用混合矩陣重建的資料。
- set_inverse_transform_request(*, copy: bool | None | str = '$UNCHANGED$') FastICA [原始碼]#
請求傳遞到
inverse_transform
方法的中繼資料。請注意,只有在
enable_metadata_routing=True
時,此方法才相關(請參閱sklearn.set_config
)。請參閱 使用者指南 了解路由機制如何運作。每個參數的選項如下
True
:請求中繼資料,並在提供時傳遞給inverse_transform
。如果未提供中繼資料,則會忽略請求。False
:不請求中繼資料,且元估算器不會將其傳遞給inverse_transform
。None
:不請求中繼資料,且如果使用者提供中繼資料,元估算器將會引發錯誤。str
:中繼資料應使用此給定的別名傳遞至元估算器,而不是原始名稱。
預設值(
sklearn.utils.metadata_routing.UNCHANGED
)保留現有的請求。這可讓您變更某些參數的請求,而不會變更其他參數的請求。在 1.3 版中新增。
注意
僅當此估算器用作元估算器的子估算器時,此方法才相關,例如在
Pipeline
中使用。否則,它不會產生任何效果。- 參數:
- copystr、True、False 或 None,預設為 sklearn.utils.metadata_routing.UNCHANGED
針對
inverse_transform
中的copy
參數的中繼資料路由。
- 回傳值:
- self物件
已更新的物件。
- 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估計器實例
估計器實例。
- set_params(**params)[原始碼]#
設定此估計器的參數。
此方法適用於簡單的估計器以及巢狀物件(例如
Pipeline
)。後者具有<component>__<parameter>
形式的參數,因此可以更新巢狀物件的每個元件。- 參數:
- **params字典
估計器參數。
- 回傳值:
- self估計器實例
估計器實例。
- set_transform_request(*, copy: bool | None | str = '$UNCHANGED$') FastICA [原始碼]#
請求傳遞至
transform
方法的中繼資料。請注意,只有在
enable_metadata_routing=True
時,此方法才相關(請參閱sklearn.set_config
)。請參閱 使用者指南 了解路由機制如何運作。每個參數的選項如下
True
:請求中繼資料,並在提供時傳遞至transform
。如果未提供中繼資料,則會忽略請求。False
:不請求中繼資料,且 meta-estimator 不會將其傳遞至transform
。None
:不請求中繼資料,且如果使用者提供中繼資料,元估算器將會引發錯誤。str
:中繼資料應使用此給定的別名傳遞至元估算器,而不是原始名稱。
預設值(
sklearn.utils.metadata_routing.UNCHANGED
)保留現有的請求。這可讓您變更某些參數的請求,而不會變更其他參數的請求。在 1.3 版中新增。
注意
僅當此估算器用作元估算器的子估算器時,此方法才相關,例如在
Pipeline
中使用。否則,它不會產生任何效果。- 參數:
- copystr、True、False 或 None,預設為 sklearn.utils.metadata_routing.UNCHANGED
針對
transform
中的copy
參數的中繼資料路由。
- 回傳值:
- self物件
已更新的物件。