日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

PCA降维代码实现

發(fā)布時間:2024/9/18 编程问答 43 豆豆
生活随笔 收集整理的這篇文章主要介紹了 PCA降维代码实现 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

背景

主成分分析(Principal Components Analysis),簡稱PCA,是一種數(shù)據(jù)降維技術(shù),用于數(shù)據(jù)預(yù)處理。一般我們獲取的原始數(shù)據(jù)維度都很高,比如1000個特征,在這1000個特征中可能包含了很多無用的信息或者噪聲,真正有用的特征才100個,那么我們可以運(yùn)用PCA算法將1000個特征降到100個特征。這樣不僅可以去除無用的噪聲,還能減少很大的計算量。

在PCA中,數(shù)據(jù)從原來的坐標(biāo)系轉(zhuǎn)化到新的坐標(biāo)系中。當(dāng)然這里新的坐標(biāo)系也不是隨便設(shè)定的,而是應(yīng)該根據(jù)數(shù)據(jù)本身的特征來設(shè)計。通常第一個新坐標(biāo)軸選擇的是原始數(shù)據(jù)方差最大的方向,第二個坐標(biāo)軸是與第一個坐標(biāo)軸正交且具有最大方差的方向。這句話的意思就是,第二個選取的方向應(yīng)該和第一個方向具有很弱的相關(guān)性。

設(shè)計思路

PCA主成分分析算法,是一種線性降維,將高維坐標(biāo)系映射到低維坐標(biāo)系中。

如何選擇低維坐標(biāo)系呢?
就是求協(xié)方差的特征值和特征向量過協(xié)方差矩陣的特征值和特征向量,特征向量代表坐標(biāo)系,特征值代表映射到新坐標(biāo)的長度。

然后做數(shù)據(jù)轉(zhuǎn)換。

但是有沒有覺得很神奇,為什么求協(xié)方差的較大特征向量就是最理想的k維向量?

設(shè)計實(shí)現(xiàn)

  • 原始數(shù)據(jù)處理:這里選取二維降一維進(jìn)行展示,其中x,y是兩個維度

    行代表了樣例,列代表特征(TF-IDF)分別求x和y的平均值,然后對于所有的樣例,都減去對應(yīng)的均值。這里x的均值是1.81,y的均值是1.91,那么第一個樣例減去均值后即為(0.69,0.49)

    留一個思考1:為什么我們要減去均值,作用是什么?
  • 求協(xié)方差矩陣
    我們上面協(xié)方差矩陣是二維的,所以是二行二列
  • mat = np.array([[0.69, -1.31, 0.39, 0.09, 1.29, 0.49, 0.19, -0.81, -0.31, -0.71],[0.49, -1.21, 0.99, 0.29, 1.09, 0.79, -0.31, -0.81, -0.31, -1.01]])# 求協(xié)方差cov = np.cov(mat)print(cov)

  • 求協(xié)方差的特征值和特征向量
  • 這邊用到線性代數(shù)知識,不會的同學(xué)可以自行學(xué)習(xí)
    下圖第一個是特征值,第二個是特征向量

    # 特征值, 特征向量eigenvalue, featurevector = np.linalg.eig(cov)print(eigenvalue)print(featurevector)

    特征值: [0.0490834 1.28402771]
    特征向量:[[-0.73517866 -0.6778734 ]
    [ 0.6778734 -0.73517866]]

    特征值0.0490833989對應(yīng)特征向量為第一條向量,這里的特征向量都?xì)w一化為單位向量。

  • 選取最大k個特征值對應(yīng)的特征向量(其中k是小于維度總數(shù)的一個值):
    將特征值按照從大到小的順序排序,選擇其中最大的k個,然后將其對應(yīng)的k個特征向量分別作為列向量組成特征向量矩陣。這里特征值只有兩個,我們選擇其中最大的那個,這里是1.28402771,對應(yīng)的特征向量是(-0.677873399, -0.735178656)T。我們是從二維降到一維,所以k取一,并且是最大的。
  • 留兩個思考題:

    思考二: 為什么要選擇最大的k?依據(jù)是什么?
    思考三: k在實(shí)際運(yùn)用中選取多少合適?

  • 得到新的矩陣
    將樣本點(diǎn)投影到選取的特征向量上。假設(shè)樣例數(shù)為m,特征數(shù)為n,減去均值后的樣本矩陣為DataAdjust(mn),
    協(xié)方差矩陣是nn,
    選取的k個特征向量組成的矩陣為EigenVectors(nk)。
    那么投影后的數(shù)據(jù)FinalData為FinalData(101)
    = DataAdjust(10*2矩陣) x 特征向量(-0.677873399, -0.735178656)T
    得到的結(jié)果是下圖

    降維完成,同時又達(dá)到保真性
  • 我們回答思考一:為什么數(shù)據(jù)要減去均值

    簡單來說把數(shù)據(jù)中心化,減少過度擬合的可能性。如果有喜歡探索為什么的同學(xué)可以參看附錄一

    我們回答思考二:為什么選取k的特征值越大越好?

    最大方差理論: 前輩結(jié)論:最好的k維特征是將n維樣本點(diǎn)轉(zhuǎn)換為k維后,每一維上的樣本方差都很大。
    why?
    因?yàn)橥队昂蟮臉颖军c(diǎn)之間方差最大(也可以說是投影的絕對值之和最大)
    把二維降為一維如果方差不大那么就會在主方向軸投影點(diǎn)會重疊,損失信息很大,并且丟失的向量是很重要的。看下圖4,5吧!(圖4,5數(shù)據(jù)過原點(diǎn)已經(jīng)數(shù)據(jù)中心化)圖四的左半部分是最優(yōu)的
    在u>x,u為主向量時。我們可以看到點(diǎn)在u上的投影和u和u的正交向量有關(guān)。顯然圖4左邊的投影面比右邊的大并且投影點(diǎn)之間的方差大。圖五是圖四的單個點(diǎn)細(xì)節(jié)圖。


    我們總結(jié)一下:

    特征值在線性代數(shù)里面我們求過無數(shù)次了,對一個n*n的對稱矩陣進(jìn)行分解,我們可以求出它的特征值和特征向量,就會產(chǎn)生n個n維的正交基,每個正交基會對應(yīng)一個特征值。然后把矩陣投影到這N個基上,此時特征值的模就表示矩陣在該基的投影長度。
    特征值越大,說明矩陣在對應(yīng)的特征向量上的方差越大,樣本點(diǎn)越離散,越容易區(qū)分,信息量也就越多。因此,特征值最大的對應(yīng)的特征向量方向上所包含的信息量就越多,如果某幾個特征值很小,那么就說明在該方向的信息量非常少,我們就可以刪除小特征值對應(yīng)方向的數(shù)據(jù),只保留大特征值方向?qū)?yīng)的數(shù)據(jù),這樣做以后數(shù)據(jù)量減小,但有用的信息量都保留下來了。PCA就是這個原理。

    我們回答思考三:在n維中選多少個k最合適?
    當(dāng)然,k(特征向量)取得越多越好,k越多熵越大,樣本不確定性越大,越接近真實(shí)數(shù)據(jù)。如果k越大就達(dá)不到我們說的降維效果了。所以這是個經(jīng)驗(yàn)之談
    有些研究工作表明,所選的主軸總長度占所有主軸長度之和的大約85% 即可,其實(shí),這只是一個大體的說法,具體選多少個,要看實(shí)際情況而定。如下圖公式。注:n為樣本數(shù),k為我們選的維數(shù)。

    總結(jié)

    步驟回顧

  • 去除平均值
  • 計算協(xié)方差矩陣
  • 計算協(xié)方差矩陣的特征值和特征向量
  • 特征值從大到小排序
  • 保留最上面k個特征向量
  • 將數(shù)據(jù)轉(zhuǎn)換到k個向量構(gòu)件的新空間中
  • n維矩陣*k維特征向量=k維矩陣
    降維完成!!!
  • 附錄一:
    為了說明什么是數(shù)據(jù)的主成分,先從數(shù)據(jù)降維說起。數(shù)據(jù)降維是怎么回事兒?假設(shè)三維空間中有一系列點(diǎn),這些點(diǎn)分布在一個過原點(diǎn)的斜面上,如果你用自然坐標(biāo)系x,y,z這三個軸來表示這組數(shù)據(jù)的話,需要使用三個維度,而事實(shí)上,這些點(diǎn)的分布僅僅是在一個二維的平面上,問題出在哪里?把x,y,z坐標(biāo)系旋轉(zhuǎn)一下,使數(shù)據(jù)所在平面與x,y平面重合。如果把旋轉(zhuǎn)后的坐標(biāo)系記為x’,y’,z’,那么這組數(shù)據(jù)的表示只用x’和y’兩個維度表示即可!當(dāng)然了,如果想恢復(fù)原來的表示方式,那就得把這兩個坐標(biāo)之間的變換矩陣存下來。這樣就能把數(shù)據(jù)維度降下來了!看下圖進(jìn)行理解這段話

    但是,我們要看到這個過程的本質(zhì),如果把這些數(shù)據(jù)按行或者按列排成一個矩陣,那么這個矩陣的秩就是2!這些數(shù)據(jù)之間是有相關(guān)性(有非零解)的,這些數(shù)據(jù)構(gòu)成的過原點(diǎn)的向量的最大線性無關(guān)組包含2個向量,這就需要平面過原點(diǎn)的!這就是數(shù)據(jù)中心化的緣故!將坐標(biāo)原點(diǎn)平移到數(shù)據(jù)中心,這樣原本不相關(guān)的數(shù)據(jù)在這個新坐標(biāo)系中就有相關(guān)性了!增加基向量的正交性。有趣的是,三點(diǎn)一定共面,也就是說三維空間中任意三點(diǎn)中心化后都是線性相關(guān)的,一般來講n維空間中的n個點(diǎn)一定能在一個n-1維子空間中分析!n維歐氏空間中余維度等于一的線性子空間,也就是必須是(n-1)維度。這是平面中的直線、空間中的平面之推廣。

    與50位技術(shù)專家面對面20年技術(shù)見證,附贈技術(shù)全景圖

    總結(jié)

    以上是生活随笔為你收集整理的PCA降维代码实现的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。

    主站蜘蛛池模板: 91网址入口 | 女厕厕露p撒尿八个少妇 | 蜜臀av性久久久久蜜臀aⅴ涩爱 | 国产无码精品合集 | 亚洲一区综合 | 能看毛片的网站 | 日韩不卡视频在线观看 | 精品熟妇视频一区二区三区 | se综合| 日本少妇激情视频 | 卡一卡二卡三 | 东方av在线播放 | 色图综合 | 国产精品s色| 一区二区三区久久精品 | 日本小视频网站 | 日日夜夜狠狠爱 | 成年人免费在线观看 | 91网站在线免费观看 | 黑森林福利视频导航 | 亚洲午夜国产 | 亚洲美女偷拍 | 黄色午夜视频 | 日韩你懂的 | 精品国产免费视频 | 白石茉莉奈中文字幕在 | 制服丝袜第一页在线观看 | 国模一区二区三区 | 成人黄色一区二区 | 久久久久久久一区二区 | wwwxxxx欧美 | 免费av入口 | 欧美一区二区视频在线观看 | 亚洲欧洲精品在线 | www五月婷婷 | 欧美福利视频在线观看 | 姐姐av| 国产国语对白 | av88av| 91日本视频 | 奇米影视四色777 | 我们的2018中文免费看 | 国产刺激视频 | 99福利在线 | 久久伊人一区二区 | 亚洲色成人www永久在线观看 | 亚洲黄色免费视频 | 久久久久成人精品免费播放动漫 | 亚洲一级片在线观看 | 国产美女主播在线 | 国产99在线观看 | 国产五月天婷婷 | 亚洲精品国产精品乱码 | 97超碰总站| jizz性欧美2 视频在线日韩 | 欧美三级午夜理伦三级中视频 | 日本a一级片 | 色无极亚洲影院 | 大黑人交交护士xxxxhd | 亚洲欧美日本在线 | 亚洲在线视频一区 | 亚洲av人无码激艳猛片服务器 | 精品无码人妻一区二区免费蜜桃 | 在线视频观看一区 | 婷婷视频 | 超碰午夜 | 青青草原在线免费观看视频 | 2019自拍偷拍 | 欧美精品一二区 | 天天视频色 | 亚州av综合色区无码一区 | 国产成人精品免高潮在线观看 | 久久免费看 | 亚洲青青操| 国产中文在线视频 | 久久一二 | 中文字幕在线视频一区二区三区 | 亚洲日本韩国在线 | 波多野结衣一区二区三区免费视频 | 少妇精品久久久久久久久久 | 男女激情av | 日本免费网站在线观看 | 亚洲高清在线观看视频 | 97精品一区二区 | 不卡av免费在线观看 | 日韩欧美视频免费在线观看 | 日韩激情国产 | 色女人天堂| 欧美成人国产va精品日本一级 | 三级做爰第一次 | 亚洲性图av| 91精品国产综合久久久蜜臀九色 | 麻豆69| 好吊色欧美一区二区三区视频 | 午夜精品成人毛片非洲 | 色av导航 | 青青青手机在线视频 | 三级网站在线看 | 国产黄色网络 |