目錄
- 參數
-
- n_components
- copy
- whiten
- svd_solver
- tol
- iterated_power
- n_oversamples
- power_iteration_normalizer
- 類屬性
-
- components_
- explained_variance_
- explained_variance_ratio_
- singular_values_
- mean_
- n_components_
- n_features_
- n_samples_
- noise_variance_
- n_features_in_
- feature_names_in_
- 類方法
sklearn.decomposition.PCA(n_components=None, *, copy=True,\
whiten=False, svd_solver='auto', tol=0.0, iterated_power='auto',\
n_oversamples=10, power_iteration_normalizer='auto', random_state=None)
參數
n_components
int, float or ‘mle’, default=None
要保留的主成分數量,當不設定該參數時所有組分都将被保留n_components = min(n_samples, n_features)
關于該參數和svd_solver參數的關系如下:
該參數 | svd_solver參數 | 其他 |
---|---|---|
n_components=‘mle’ | svd_solver = ‘full’ | 使用Minka’s MLE 預測次元 |
0 < n_components < 1 | svd_solver = ‘full’ | 選擇需要解釋的方差大于n個分量所指定的百分比的分量數量 |
n_components=None | n_components=min(n_samples, n_features) - 1 | |
svd_solver = ‘arpack’ | components 的數量必須嚴格小于min(n_features,n_samples) |
copy
bool, default=True
如果該參數為False,拟合時資料将會被覆寫;而且使用fit(X)+transform(X)将得不到期望的結果,此時應該使用 fit_transform(X)替代
whiten
bool, default=False
向量将會被乘以n_samples的平方根,然後再除以奇異值,確定不相關的輸出與機關組成部分的差異
白化将從轉換後的信号中删除一些資訊,但有時會通過使下遊估計器的資料遵守一些固有的規則等方法來提高預測的精度
svd_solver
{‘auto’, ‘full’, ‘arpack’, ‘randomized’}, default=’auto’
afterwards.
取值 | 描述 |
---|---|
auto | 由預設的政策根據資料X選取求解器 |
full | 通過scipy.linalg.svd 調用标準的LAPACK求解器,直接進行完整的奇異值分解過程 |
arpack | 通過scipy.sparse.linalg.svds調用ARPACK求解器,将奇異值分解(SVD)分為多個部分逐個求解 |
randomized | 采用Halko等方法進行随機SVD。 |
tol
float, default=0.0
svd_solver = ‘arpack’時計算得到的奇異值容忍度,取值範圍 :[0.0, infinity).
iterated_power
int or ‘auto’, default=’auto’
svd_solver = ‘randomized’時幂方法的疊代次數,取值範圍 :[0.0, infinity).
n_oversamples
int, default=10
僅僅當svd_solver="randomized時有效,對應于額外的随機向量個數來對X的範圍進行采樣,以確定适當的條件
power_iteration_normalizer
{‘auto’, ‘QR’, ‘LU’, ‘none’}, default=’auto’
随機SVD求解器的幂疊代歸一化器
類屬性
components_
ndarray of shape (n_components, n_features)
特征空間的主軸,表示資料中方差最大的方向。
等價地,中心輸入資料的右奇異向量,平行于它的特征向量
explained_variance_
ndarray of shape (n_components,)
由每個標明的成分解釋的方差的數量、特征值
數值上等于等于n個分量X的協方差矩陣的最大特征值
explained_variance_ratio_
ndarray of shape (n_components,)
由每個所選元件解釋的方差百分比、各主成分的貢獻率
當n_components參數沒有設定時,所有的特征都将被被保留而且比率之和為1
singular_values_
ndarray of shape (n_components,)
與每個選中部分相關的奇異值
mean_
ndarray of shape (n_features,)
每個特征的經驗平均值,從訓練集估計。數值上等于 X.mean(axis=0).
n_components_
int
主成分的估計數量
n_features_
int
訓練資料中的特征數量
n_samples_
int
訓練資料中的樣本數量
noise_variance_
float
噪聲協方差矩陣,等于X的協方差矩陣(min(n個特征,n個樣本)- n個分量)最小特征值的平均值。
n_features_in_
int
拟合期間看到的特征數量
feature_names_in_
ndarray of shape (n_features_in_,)
拟合期間看到的特征名稱,僅當X擁有字元串資料類型的特征名稱時才定義
類方法
方法名 | 描述 |
---|---|
fit(X[, y]) | 使用訓練資料X拟合模型 |
fit_transform(X[, y]) | 拟合模型并對資料X進行降維 |
get_covariance() | 根據得到的模型計算資料的協方差 |
get_feature_names_out([input_features]) | 傳回輸出特征的名稱 |
get_params([deep]) | 傳回模型參數 |
get_precision() | 根據得到的模型計算資料的精度矩陣 |
inverse_transform(X) | 将資料恢複為初始狀态 |
score(X[, y]) | 傳回模型得分 |
score_samples(X) | 傳回每個資料樣本的似然對數 |
set_params(**params) | 設定模型參數 |
transform(X) | 對資料X進行降維 |