色哟哟视频在线观看-色哟哟视频在线-色哟哟欧美15最新在线-色哟哟免费在线观看-国产l精品国产亚洲区在线观看-国产l精品国产亚洲区久久

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

PCA類在降維和數據重構的簡單用法

lviY_AI_shequ ? 來源:lp ? 2019-04-17 09:57 ? 次閱讀

前言

前兩篇文章介紹了PCA(主成分分析方法)和SVD(奇異值分解)的算法原理,本文基于scikit learn包介紹了PCA算法在降維和數據重構的應用,并分析了PCA類與sparsePCA類的區別。由于PCA算法的特征值分解是奇異值分解SVD的一個特例,因此sklearn工具的PCA庫是基于SVD實現的。

本文內容代碼鏈接:

https://github.com/zhangleiszu/machineLearning/tree/master/PCA

目錄

1. PCA類介紹

2. sklearn.decomposition.PCA的參數說明

3. sklearn.decomposition.MiniBatchSparsePCA的參數說明

4. PCA類在降維的應用

5. PCA類與MiniBatchSparsePCA類的區別

6. PCA在數據重構的應用

7. 總結

1. PCA類介紹

所有PCA類都在sklearn.decompostion包中,主要有以下幾類:

1) sklearn.decompostion.PCA:實際項目中用的最多的PCA類;

2) sklearn.decompostion.IncrementPCA:PCA最大的缺點是只支持批處理,也就是說所有數據都必須在主內存空間計算,IncrementalPCA使用多個batch,然后依次調用partial_fit函數,降維結果與PCA類基本一致 。

3) sklearn.decomposition.SparsePCA和sklearn.decomposition.MiniBatchSparsePCA:SparsePCA類和MiniBatchSparsePCA類算法原理一樣,都是把降維問題用轉換為回歸問題,并在優化參數時增加了正則化項(L1懲罰項),不同點是MiniBatchSparsePCA使用部分樣本特征并迭代設置的次數進行PCA降維 。

4) sklearn.decomposition.KernelPCA:對于線性不可分的特征,我們需要對特征進行核函數映射為高維空間,然后進行PCA降維 。流程圖如下:

2. sklearn.decomposition.PCA類的參數說明

1) n_components:取值為:整形,浮點型,None或字符串。

n_components為空時,取樣本數和特征數的最小值:

n_components == min(n_samples , n_features)

0 < n_components < 1時,選擇主成分的方差和占總方差和的最小比例閾值,PCA類自動計算降維? ? ?后的維數。

n_components是大于等于1的整數,設置降維后的維數 。

n_components是字符串'mle',PCA類自動計算降維后的維數 。

2) copy:布爾型變量 。表示在運行時是否改變訓練數據,若為True,不改變訓練數據的值,運算結果寫在復制的訓練數據上;若為False,則覆蓋訓練數據 ,默認值為True。

3) whiten:布爾型變量 。若為True,表示對降維后的變量進行歸一化;若為False,則不進行歸一化 ,默認值為False。

4) svd_solver:字符串變量,取值為:'auto','full','arpack','randomized'

randomized:如果訓練數據大于500×500,降維后的維數小于數據的最小維數0.8倍,采用加快SVD的隨機算法 。

full:傳統意義上的SVD算法,調用scipy.linalg.svd類。

arpack:調用scipy.sparse.linalg.svds類,降維后的維數符合:

0 < n_components < min(X.shape)

auto:自動選擇最適合的SVD算法。

類成員屬性:

components_:主成分分量的向量空間 。

explained_variance_:向量空間對應的方差值 。

explained_variance_ratio_:向量空間的方差值占總方差值的百分比 。

singular_values:向量空間對應的奇異值 。

3.sklearn.decomposition.MiniBatchSparsePCA的參數說明

本節就介紹兩個常用的重要變量,用法與PCA類基本相同。

n_components:降維后的維數

alpha:正則化參數,值越高,主成分分量越稀疏(分量包含0的個數越多)。

4. PCA類在降維的應用

Iris數據集包含了三種花(Setosa,Versicolour和Virginica),特征個數為4。

下載Iris數據集:

iris = datasets.load_iris()X = iris.datay = iris.target

設置降維后的維數為2:

pca = PCA(n_components=2)

降維后的數據集:

X_r = pca.fit(X).transform(X)

降維后的特征分布圖:

5. PCA類與MiniBatchSparsePCA類的區別

PCA類主成分分量是非零系數構成的,導致了PCA降維的解釋性很差,若主成分分量包含了很多零系數,那么主成分分量可以將很多非主要成分的影響降維0,不僅增強了降維的解釋性,也降低了噪聲的影響 ,缺點是可能丟失了訓練數據的重要信息。MiniBatchSparsePCA與PCA類的區別是使用了L1正則化項,導致了產生的主成分分量包含了多個0,L1正則化系數越大,0的個數越多,公式如下:

用圖來說明區別:

左圖是PCA類的主成分分量空間,右圖是MiniBatchSparsePCA類的主成分分量空間,比較兩圖可知,右圖能夠定位到重要的特征部位 。

若是用數值表示,MiniBatchSparsePCA類的主成分分量值為:

由上圖可知,主成分分量包含了很多零分量 。

6. PCA在數據重構的應用

數據重構算法借鑒上一篇文章的圖:

淺藍色部分矩陣的乘積為數據的重構過程,r為選擇的主成分分量個數 。r越大,重構的數據與原始數據越接近或主成分分量的方差和比例越大,重構的數據與原始數據越接近 ,圖形解釋如下:

n_components是0.2的數據重構圖:

n_components是0.9的數據重構圖:

因此,主成分分量越多,重構的數據與原始數據越接近。

7. 總結

本文介紹了PCA類在降維和數據重構的簡單用法以及分析了sparsePCA類稀疏主成分分量的原理。

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 函數
    +關注

    關注

    3

    文章

    4327

    瀏覽量

    62573
  • 數據集
    +關注

    關注

    4

    文章

    1208

    瀏覽量

    24689
  • PCA算法
    +關注

    關注

    0

    文章

    2

    瀏覽量

    1297

原文標題:scikit learn中PCA的使用方法

文章出處:【微信號:AI_shequ,微信公眾號:人工智能愛好者社區】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    #機器學習 維之PCA

    編程語言PCApython
    電子技術那些事兒
    發布于 :2022年09月18日 17:17:32

    FPGA的重構方式

    ,影響系統實時性。動態重構系統運行中能實時全部或部分重構,且不中斷正常邏輯輸出,因而更有靈活性和高速度。  大多數FPGA都是基于LUT查找表結構,它們只適用于靜態重構,通過向LUT
    發表于 05-27 10:22

    求助,SVM分類時要不要先進行PCA維呢?

    大家知道,既然SVM可以較好地解決小樣本、非線性、高維數等分類問題,那對于高維樣本輸入,需不需要提前進行PCA維呢?PCA維對SVM有意義嗎?還有,當SVM進行高維樣本分類時,有沒
    發表于 10-27 20:13

    【FPGA學習】VHDL的數據類型預定義屬性和數據范圍預定義屬性是怎么用的

    數據類型預定義屬性數據類型的屬性只有一個 t'BASE 類型屬性,它必須由另一個值或函數類型屬性用該屬性。這個屬性將返回類型或者子類型的基本類型,這個屬性只能作另一屬性的前綴,
    發表于 09-17 10:04

    重構波束天線技術增加網絡容量應用

    對網絡質量,也對服務區域、容量和數據速率產生巨大影響。更高的干擾實際上減小了3G和4G網絡中的服務區域,反之,降低干擾可增大服務區域。規劃3G和4G網絡過程中的一大關鍵目標在于優化并降低干擾。  限制
    發表于 06-11 07:31

    為什么要重構?如何重組Python包?

      未經測試的代碼設計上是不好的代碼。您有測試用例嗎?如果是這樣,它們的完整性如何?這些測試用例是否最新?  為什么重構之前需要測試用例?您可以辯稱,即使進行了簡單的更改,也不需要
    發表于 09-15 15:28

    講解Matlab的簡單用法

    command窗口該如何去使用呢?怎樣matlab中創建一個一行四列的數組呢?
    發表于 11-18 06:32

    基于Autoencoder網絡的數據維和重構

    機器學習,模式識別以及數據挖掘等諸多研究領域中,往往會面臨著“維數災難”問題。因此,特征數據維方法,即將高維的特征數據如何進行簡化投射
    發表于 11-18 13:58 ?16次下載

    函數的形式及用法_PPT簡單講解

    函數的形式及用法_PPT簡單講解,感興趣的小伙伴們可以瞧一瞧。
    發表于 08-23 17:56 ?0次下載

    基于PCA的HK聚算法研究何瑩

    基于PCA的H_K聚算法研究_何瑩
    發表于 03-17 08:00 ?0次下載

    java并發編程實戰之輔助用法

    Java并發編程:CountDownLatch、CyclicBarrier和Semaphore2017-09-18 13:07程序設計/58 java 1.5中,提供了一些非常有用的輔助來幫助
    發表于 09-27 16:50 ?0次下載

    Java數組的常用方法_Java:數組工具Arrays的常用方法的用法及代碼

    本文主要詳細介紹了Java數組的常用方法以及數組工具Arrays的常用方法的用法及代碼。
    發表于 01-29 10:25 ?2919次閱讀

    PCA還是LDA?特征抽取經典算法大PK

    (LDA)。PCA案例機器學習中,所使用的數據往往維數很大,我們需要使用維的方法來突顯信息含量較大的數據
    的頭像 發表于 01-10 13:40 ?8542次閱讀
    用<b class='flag-5'>PCA</b>還是LDA?特征抽取經典算法大PK

    融合尺度維和重檢測的長期目標跟蹤算法

    針對長期目標跟蹤中存在的目標遮擋、尺度變化和光照變化等干擾造成的跟蹤失敗冋題,提出一種融合尺度維和重檢測的長期目標跟蹤算法。該算法長期相關性跟蹤算法的平移估計和尺度估計基礎上,采用主成分分析
    發表于 04-21 14:11 ?12次下載
    融合尺度<b class='flag-5'>降</b><b class='flag-5'>維和</b>重檢測的長期目標跟蹤算法

    STM8L定時器1和定時器4的簡單用法

    STM8L定時器1和定時器4的簡單用法背景介紹調試環境簡介功能快捷鍵合理的創建標題,有助于目錄的生成如何改變文本的樣式插入鏈接與圖片如何插入一段漂亮的代碼片生成一個適合你的列表創建一個表格設定內容
    發表于 12-27 18:30 ?12次下載
    STM8L定時器1和定時器4的<b class='flag-5'>簡單用法</b>
    主站蜘蛛池模板: 日日夜夜狠狠干| 中文成人在线| 免费韩国伦理2017最新| 高清毛片一区二区三区| 真人做受120分钟免费看| 日韩人妻精品久久日| 久久这里都是精品| 国产人妻人伦精品A区| 饱满奶大30p| 中文字幕一区在线观看视频| 婷婷亚洲AV色香蕉蜜桃| 欧美人妇无码精品久久| 久草在线在线精品观看99| 精品国产中文字幕在线视频| 国产成人精品综合久久久| 97国产蝌蚪视频在线观看| 亚洲伊人网站| 小柔的性放荡羞辱日记| 日本六九视频| 欧美精品一区二区在线电影| 看免费人成va视频全| 精品无码久久久久久久久| 国产私拍福利精品视频| 国产3级在线观看| 波多野结衣的AV一区二区三区| 嘴巴舔着她的私处插| 亚洲蜜桃AV永久无码精品放毛片 | 嗯啊快拔出来我是你老师视频| 精品一区二区三区在线成人| 国产欧美第一页| 国产成久久免费精品AV片天堂 | 浪荡女天天不停挨CAO日常视| 国内精品一级毛片免费看| 国产精品三级在线观看| 东北真实仑乱| 成人在线免费看片| 办公室激情在线观看| younv 学生国产在线视频| 饱满奶大30p| 高h肉文合集| 国产精片久久久久久婷婷|