sklearn中的PCA模型

2021-10-02 03:52:23 字數 2257 閱讀 2274

sklearn中提供了較為豐富的pca模型來解決資料的降維問題,其包括:

(1)pca:最原始的pca演算法;

(2)truncatedsvd:原始資料不做中心化處理的pca演算法,可用於文字資料(tf-idf處理後)的隱藏語義分析(lsa);

(3)sparsepca:新增l1正則化處理後的pca演算法,用最小角回歸演算法求解,可在一定程度上解決資料雜訊的問題,進一步降低分解後的資料維度;

(4)minibatchsparsepca:新增l1正則化處理後pca演算法,基於小批量資料的pca演算法。

(5)incrementalpca:增量學習的pca演算法,通過partial_fit解決資料量過大情況下記憶體限制的問題。

(6)kernelpca:樣本協方差矩陣中的元素均為樣本內積,因此可利用核技巧,將其它應用到非線性空間上。

本文僅詳細介紹最原始的pca演算法。

1. 模型的主要引數

模型引數

parameter含義

備註n_components

主成分數

用於空值分解後的目標維度,其可選值包括:1.整數,指定具體的值;2. 百分比,分解後的維度包含的資訊量(方差)必須大於原始資訊量*百分比;3. 'mle'採用極大似然估計法,預估目標維度;4.none, 預設為資料特徵數目和資料行數中最小的那個值,注意當solver為'arpack',還需在上述值基礎上減1;

whiten

白化布林值,預設false。白化即通過將各特徵維度的資料進行歸一化處理,使其各方差值相當。白化會使得各特徵資料的方差資訊丟失,但可能會提高下游任務的準確率。

svd_solver

求解器求解器型別包括:1.'auto',在資料量大於500*500同時分解後的目標維度少於原資料最低維度的80%時,採用'randomized'求解器,其它時候採用'full'求解器;2. 'full',完全的svd分解;3. 'arpack',採用arpack庫,此時的目標維度必須少於原資料最低維度;4.'randomized',採用隨機svd演算法,可大大加快pca的速度。預設值為'auto',一般取預設值即可。

tol誤差

求解器為arpack時的引數,表示奇異值的誤差閾值,預設值為0

iterated_power

迭代次數

求解器為randomized時的引數,表示數值演算法的迭代次數,可設為正整數,預設值為'auto'

random_state

隨機種子

在求解器為arpack或randomized時,均具有一定的隨機性。

2. 模型的主要方法

模型方法

parameter含義

備註fit

模型訓練

基於預設的求解器和主成分數等引數,進行資料的pca分解

transform

資料轉換

將資料轉換到主成分線性空間

fit_transform

訓練和轉換

fit和transform函式的綜合

inverse_transform

逆轉換將資料將pca後的主成分線性空間逆轉換到原始空間。注意:因為轉換後資訊會丟失,所以無法完全還原,但pca後的資訊保留越好,其還原效果越佳。

score_samples

各樣本效果評分

返回各樣本的對數似然函式評分

score

樣本總效果評分

返回各樣本的對數似然函式評分的平均值

3. 模型的主要屬性

模型方法

parameter含義

備註components_

主成分向量

pca分解後,得到的各主成分向量,即為的目標線性空間的基

explained_variance_

可解釋方差

各主成分向量的資訊量,數值上等於資料x協方差矩陣n_components個最大的特徵值(與components_向量一一對應)

explained_variance_ratio_

可解釋方差比重

上述n_components個最大的特徵值的和與所有特徵值綜合的比值,代表著所選主向量佔全部向量的資訊值大小

singular_values_

奇異值n_components個主向量的2-範數值

noise_variance_

雜訊方差

各非主成分向量的平均資訊量,即非n_components個最大的特徵值的平均值

4. 模型的調參

pca模型的調參主要就是求解器svd_solver和主成分個數n_components,其選擇主要依託於下游任務的效果。

sklearn中的PCA使用方法

最近在做資料分析的實驗,在準備進行pca資料降維的時候產生了疑問,既然訓練集和測試集不能放在一起降維,那如何讓測試集的維度降到和訓練集一樣,看到sklearn提供的方法裡有乙個tranform實現了這個功能,豁然開朗。不知道sklearn裡的lda和其他降維方法有沒有類似的功能,歡迎大佬指點。若以後...

sklearn機器學習 PCA

pca使用的資訊量衡量指標,就是樣本方差,又稱可解釋性方差,方差越大,特徵所帶的資訊量越多 原理推導 class sklearn decomposition.pca n components none,copy true whiten false svd solver auto tol 0.0,it...

sklearn中的線性模型

在skearn中,可以使用sklearn.linear model來建立線性模型 然後用fit函式去訓練 然後用predict去 還可以用score函式去 同時計算 的準確度 import numpy as np import matplotlib.pyplot as plt from sklear...