【sklearn学习】降维算法PCA和SVD
生活随笔
收集整理的這篇文章主要介紹了
【sklearn学习】降维算法PCA和SVD
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
sklearn中的降維算法
主成分分析
獨立成分分析
- 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使用的信息衡量指標,就是樣本方差,又稱為可解釋性方差,方差越大,特征所帶的信息量越多。
n_components是降維后需要的維度,即降維后需要保留的特征數量
當該參數不填寫任何值,則默認返回min(X.shape)個特征
>>> 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...]累計可解釋方差貢獻率曲線
pca_line = PCA().fit(X)pca_line.explained_variance_ratio_?n_components = 'mle' 可以自己選擇最好的特征數量
>>> 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)按信息量的占比選超參數
輸入[0,1]之間的浮點數,并且讓參數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的默認策略來選擇分類器
“full”:調用LAPACK分解器來生成精確完整的SVD,適合數據量不大或時間充足的情況
"arpack":調用ARPACK分解器來運行截斷奇異值分解,可以加快運算速度
“randomized”:隨機SVD,適合特征矩陣巨大,計算量龐大的情況。
總結
以上是生活随笔為你收集整理的【sklearn学习】降维算法PCA和SVD的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: hd615相当于什么显卡
- 下一篇: 【sklearn学习】逻辑回归