【sklearn学习】降维算法PCA和SVD
sklearn中的降維算法
主成分分析
獨(dú)立成分分析
- decomposition.PCA
class sklearn.decomposition.PCA(n_components=None, *, copy=True, whiten=False, svd_solver='auto', tol=0.0, iterated_power='auto', random_state=None)
PCA使用的信息衡量指標(biāo),就是樣本方差,又稱為可解釋性方差,方差越大,特征所帶的信息量越多。
n_components是降維后需要的維度,即降維后需要保留的特征數(shù)量
當(dāng)該參數(shù)不填寫任何值,則默認(rèn)返回min(X.shape)個(gè)特征
>>> import numpy as np >>> from sklearn.decomposition import PCA >>> X = np.array([[-1, -1], [-2, -1], [-3, -2], [1, 1], [2, 1], [3, 2]]) >>> pca = PCA(n_components=2) >>> pca.fit(X) PCA(n_components=2) >>> print(pca.explained_variance_ratio_) [0.9924... 0.0075...] >>> print(pca.singular_values_) [6.30061... 0.54980...]累計(jì)可解釋方差貢獻(xiàn)率曲線
pca_line = PCA().fit(X)pca_line.explained_variance_ratio_?n_components = 'mle' 可以自己選擇最好的特征數(shù)量
>>> import numpy as np >>> from sklearn.decomposition import PCA >>> X = np.array([[-1, -1], [-2, -1], [-3, -2], [1, 1], [2, 1], [3, 2]]) >>> pca = PCA(n_components='mle') >>> pca.fit(X) PCA(n_components=2)按信息量的占比選超參數(shù)
輸入[0,1]之間的浮點(diǎn)數(shù),并且讓參數(shù)svd_solver = 'full'
pca_f = PCA(n_component=0.97, svd_solver='full' pca_f = pca_f.fit(x) X_f = pca_f.transform(X)pca_F.explained_variance_ratio_.sum()svd_solver的取值
“auto”:基于X.shape和n_components的默認(rèn)策略來(lái)選擇分類器
“full”:調(diào)用LAPACK分解器來(lái)生成精確完整的SVD,適合數(shù)據(jù)量不大或時(shí)間充足的情況
"arpack":調(diào)用ARPACK分解器來(lái)運(yùn)行截?cái)嗥娈愔捣纸?#xff0c;可以加快運(yùn)算速度
“randomized”:隨機(jī)SVD,適合特征矩陣巨大,計(jì)算量龐大的情況。
總結(jié)
以上是生活随笔為你收集整理的【sklearn学习】降维算法PCA和SVD的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: hd615相当于什么显卡
- 下一篇: 为什么邮政银行卡扣了30块钱 银行邮政卡