欧美vvv,亚洲第一成人在线,亚洲成人欧美日韩在线观看,日本猛少妇猛色XXXXX猛叫

新聞資訊

    PCA( )即主成分分析,一種無監(jiān)督算法,降維中的最常見的一種方法

    為什么要降維:

    減少高維數(shù)據(jù)的處理難度,降低后續(xù)計算的復雜度去除噪音和冗余數(shù)據(jù),同時減少信息的損失低維數(shù)據(jù)相比高維更加容易理解及可視化

    PCA的本質(zhì):將具有相關(guān)性的高維變量通過線性變換投影到低維空間上,這低維變量稱為主成分;并且通過最大方差理論使得第一主成分能對原始數(shù)據(jù)更多的解釋(變異最大,也就是方差最大),同時也使得這些低維度變量的相關(guān)盡可能的小,便于后續(xù)分析 > 在空間上,PCA可以理解為把原始數(shù)據(jù)投射到一個新的坐標系統(tǒng),第一主成分為第一坐標軸,它的含義代表了原始數(shù)據(jù)中多個變量經(jīng)過某種變換得到的新變量的變化區(qū)間;第二成分為第二坐標軸,代表了原始數(shù)據(jù)中多個變量經(jīng)過某種變換得到的第二個新變量的變化區(qū)間,并且保持與前一個主成分正交,僅次于前一個主成分的最大方差。

    PCA usage

    所以PCA是一種無監(jiān)督算法,也就是我們不需要標簽也能對數(shù)據(jù)做降維;但是降維后,我們則無法理解每個維的含義,也就是脫離了那些標簽,從而使得對數(shù)據(jù)更加難理解了;當然至少減少了數(shù)據(jù)維度,使得計算機能更好的識別

    從而可以簡單的說,PCA把原來高維的數(shù)據(jù)(多個特征)用低維(少量特征值)來代替,新的維度是原先高維度的線性組合,這些組合變量(方差最大)盡可能代表原來的變量,而且彼此之間互不相關(guān),因此對于一些冗余的數(shù)據(jù)有很好的表現(xiàn)

    PCA的原理參看:

    主成分分析(PCA)一次講個夠

    原理不細說了,因為自身也只是勉強看懂,只要記住其核心在于協(xié)方差矩陣,求解特征值和特征向量,最終變換成新的主成分矩陣即可

    因此我們可以通過PCA方法對一些樣本進行分類,比如我們有一些組學(NGS轉(zhuǎn)錄組/蛋白組/代謝組)的表達譜數(shù)據(jù),這里每個基因/蛋白/代謝物都是一個變量,如果我想用將所有變量來表示樣本的分類是不現(xiàn)實的,每個表達譜都會涉及上萬個基因/上千個蛋白/上百個代謝物,所以我要從中找出最具代表性的主成分來對樣本進行區(qū)分

    除了上述組學數(shù)據(jù),還有一些芯片數(shù)據(jù),如轉(zhuǎn)錄芯片以及甲基化芯片均可用其值來做PCA

    對于以上組學數(shù)據(jù)來說,樣本是觀測值,也就是指標,基因等數(shù)據(jù)則是變量;我們需要通過較少的變量來代替這些樣本,從而能在較低維度可視化樣本的分布,因此我們常常能看到PCA在組學數(shù)據(jù)中用來看看不同組樣本之間的分布情況,看看有無離群樣本以及樣本變化情況

    那么如何用R來實現(xiàn)PCA分析呢

    結(jié)合PCA - 的教程(非常棒的教程,有事沒事都可以去翻翻看看)及測試數(shù)據(jù)來做個簡單的整理

    測試數(shù)據(jù)

    包的的數(shù)據(jù)集,收集了運動員的一些比賽的表現(xiàn),取其有效部分作為后續(xù)PCA分析的數(shù)據(jù)

    library("FactoMineR")
    library("factoextra")
    

    搜索原圖的小程序_夢溪未經(jīng)處理原照_pca數(shù)據(jù)處理原程序

    data(decathlon2) data <- decathlon2[1:23, 1:10]

    數(shù)據(jù)標準化

    如果變量之間的數(shù)據(jù)的處于不同數(shù)量級或者變量之間的均值/方差相差很大時,建議是進行標準化的,PCA降維之前為什么要先標準化

    常見的用scale()函數(shù)pca數(shù)據(jù)處理原程序,輸入矩陣,以列(列名是變量)進行標準化;如果是用包的PCA()函數(shù)的話,自帶標準化參數(shù)(其實基礎包的()函數(shù)也自帶),如下:

    library("FactoMineR")
    res.pca <- PCA(data, graph = FALSE)

    PCA數(shù)據(jù)分析

    PCA結(jié)果分析及可視化首推包,能處理各種R函數(shù)計算PCA的結(jié)果,有:

    stats::()

    ::PCA()

    ade4::dudi.pca()

    ::epPCA()

    如果我們想判斷PCA中需要多少個主成分比較好,那么可以從主成分的特征值來考慮(-準則建議保留特征值大于1的主成分);特征值表示主成分所保留的變異量(所解釋的方差);如用函來提取特征值,結(jié)果中第一列是特征值,第二列是可解釋變異的比例,第三列是累計可解釋變異的比例

    > eig.val <- get_eigenvalue(res.pca)
    > eig.val
           eigenvalue variance.percent cumulative.variance.percent
    

    搜索原圖的小程序_夢溪未經(jīng)處理原照_pca數(shù)據(jù)處理原程序

    Dim.1 4.1242133 41.242133 41.24213 Dim.2 1.8385309 18.385309 59.62744 Dim.3 1.2391403 12.391403 72.01885 Dim.4 0.8194402 8.194402 80.21325 Dim.5 0.7015528 7.015528 87.22878 Dim.6 0.4228828 4.228828 91.45760 Dim.7 0.3025817 3.025817 94.48342 Dim.8 0.2744700 2.744700 97.22812 Dim.9 0.1552169 1.552169 98.78029 Dim.10 0.1219710 1.219710 100.00000

    除了卡特征值大于1作為主成分個數(shù)的閾值外,還可以設置總變異的閾值(累計)作為判斷指標

    除了看表格來判斷,還可從圖形上直觀的感受下

    fviz_eig(res.pca, addlabels = TRUE, ylim = c(0, 50))

    如果我們想提取PCA結(jié)果中變量的信息,則可用()

    var <- get_pca_var(res.pca)

    比如我們用于展示變量與主成分之間的關(guān)系,以及變量之間的關(guān)聯(lián),可直接用head(var$coord)查看,或者圖形展示

    pca數(shù)據(jù)處理原程序_夢溪未經(jīng)處理原照_搜索原圖的小程序

    fviz_pca_var(res.pca, col.var = "black")

    圖形解釋,見原文吧:

    除了上面的 外,還有 of (對應var$cos2),用于展示每個變量在各個主成分中的代表性(高cos2值說明該變量在主成分中有g(shù)ood ,對應在 圖上則是接近圓周邊上;低cos2值說明該變量不能很好的代表該主成分,對應 圖的圓心位置);對于變量來說,所有主成分上cos2值的和等于1,所以變量在越少主成分下累計cos2值接近于1,則其在 上處于圓周圈上

    library("corrplot")
    corrplot(var$cos2, is.corr=FALSE)

    對于cos2值的原文總結(jié):

    針對上述的cos2值,還有一個與其相關(guān)的則是 to the ,也就是cos2值在各個主成分中的比例。。

    簡單的說,如果一個變量在PC1和PC2的很高的話,則說明該變量可有效解釋數(shù)據(jù)的變異,我們可以用圖形展示各個變量在PC1和PC2上的

    fviz_pca_var(res.pca, col.var = "contrib",
         gradient.cols = c("#00AFBB", "#E7B800", "#FC4E07")
         )

    以上均是對變量在PCA中的分析,下面則是觀測值的分析

    pca數(shù)據(jù)處理原程序_夢溪未經(jīng)處理原照_搜索原圖的小程序

    跟上述變量的分析一樣,先用提取出信息,會發(fā)現(xiàn)也有coord,cos2和等信息

    > ind <- get_pca_ind(res.pca)
    > ind
    Principal Component Analysis Results for individuals
     ===================================================
      Name       Description                       
    1 "$coord"   "Coordinates for the individuals" 
    2 "$cos2"    "Cos2 for the individuals"        
    3 "$contrib" "contributions of the individuals"

    然后按照上面的模式來展示下的點圖,比如以cos2值來代表各個點的圓圈大小

    fviz_pca_ind(res.pca, pointsize = "cos2", 
         pointshape = 21, fill = "#E7B800",
         repel = TRUE # Avoid text overlapping (slow if many points)
    )

    如果有分組信息pca數(shù)據(jù)處理原程序,則可以將同一組的圈在一起,如:

    fviz_pca_ind(iris.pca,
    

    夢溪未經(jīng)處理原照_搜索原圖的小程序_pca數(shù)據(jù)處理原程序

    geom.ind = "point", # show points only (nbut not "text") col.ind = iris$Species, # color by groups palette = c("#00AFBB", "#E7B800", "#FC4E07"), addEllipses = TRUE, # Concentration ellipses legend.title = "Groups" )

    上述圖形可改進用于展示置信橢圓和不規(guī)則圖形等

    最后可以將vars和同時在一張圖中展示(一般圖只用于展示變量較少的情況)

    fviz_pca_biplot(iris.pca, 
            col.ind = iris$Species, palette = "jco", 
            addEllipses = TRUE, label = "var",
            col.var = "black", repel = TRUE,
            legend.title = "Species")

    這篇筆記我只是一個搬用工,這篇PCA - 文章對于PCA的分析(沒怎么講原理,只是單純的使用和可視化)講的真的不錯,我挑了部分內(nèi)容照搬了下,有意向的最好看原文哈

    另外再推薦個PCA的原理講解:學習筆記14——PCA

網(wǎng)站首頁   |    關(guān)于我們   |    公司新聞   |    產(chǎn)品方案   |    用戶案例   |    售后服務   |    合作伙伴   |    人才招聘   |   

友情鏈接: 餐飲加盟

地址:北京市海淀區(qū)    電話:010-     郵箱:@126.com

備案號:冀ICP備2024067069號-3 北京科技有限公司版權(quán)所有