欧美三区_成人在线免费观看视频_欧美极品少妇xxxxⅹ免费视频_a级毛片免费播放_鲁一鲁中文字幕久久_亚洲一级特黄

從頭實現(xiàn)主成分分析(PCA)--Python

系統(tǒng) 1927 0

主成分分析是一種常用的降維方法,多見于數(shù)據(jù)預處理階段,其偽代碼如下:


輸入:樣本數(shù)據(jù)集D={x1,x2,x3,x4},低空間維度數(shù)d'

過程:

  • 1 對所有樣本進行中心化(每個特征維度都減去其均值)

  • 2 計算所有樣本的協(xié)方差矩陣

  • 3 對協(xié)方差矩陣進行特征分解

  • 4 取最大的d'個特征值的對應特征向量w1,w2,w3

輸出: 投影矩陣W*=(w1,w2,wd')


下面是其代碼實現(xiàn):

首先是產(chǎn)生數(shù)據(jù),我們使用sklearn的make_blobs方法產(chǎn)生三類數(shù)據(jù),每類有三個特征。數(shù)據(jù)結(jié)構(gòu)是(n_samples, n_features)

圖片如下:

從頭實現(xiàn)主成分分析(PCA)--Python_第1張圖片

從頭實現(xiàn)主成分分析(PCA)--Python_第2張圖片

?

可以看到,三維空間下的三類數(shù)據(jù)分的很開,在二維結(jié)構(gòu)下,只有圖(1)分的較開,從這一角度來看,我們的feature1和feature2是比較好的特征。

?

            
              import numpy as np
from sklearn.datasets import make_blobs
import matplotlib.pyplot as plt
from mpl_toolkits.mplot3d import Axes3D


np.random.seed(123)
if __name__ == '__main__':
    # 產(chǎn)生三類數(shù)據(jù)
    x, y = make_blobs(n_samples=600, n_features=3, centers=3)
    # 繪制三維圖像
    fig = plt.figure(figsize=(8, 6))
    ax = Axes3D(fig)
    ax.scatter(x[:, 0], x[:, 1], x[:, 2], c='r')
    plt.savefig('3-D distribution of Datapoints')
    plt.show()
    #  # 繪制二維圖像
    fig = plt.figure(figsize=(8, 6))
    ax1 = fig.add_subplot(2, 2, 1)
    ax1.scatter(x[:, 0], x[:, 1], c=y)
    ax2 = fig.add_subplot(2, 2, 2)
    ax2.scatter(x[:, 1], x[:, 2], c=y)
    ax3 = fig.add_subplot(2, 2, 3)
    ax3.scatter(x[:, 0], x[:, 2], c=y)
    plt.savefig('2-D distribution of Datapoints')
    plt.show()

    #  step1 中心化
    x_mean = np.mean(x, axis=0)
    x_center = x - x_mean
    #  step2 計算協(xié)方差矩陣
    covX = np.cov(x_center.T)
    #  step3 對協(xié)方差矩陣進行特征分解
    featureValue, featureVector = np.linalg.eig(covX)
    #  step4 取最大的幾個特征值
    index = np.argsort(-featureValue)
    selectVec = featureVector.T[index[:2]]
    print(selectVec.shape)
    final_matrix = np.dot(x_center, selectVec.T)
    print(final_matrix.shape)

    # 繪制最終二維圖像
    fig = plt.figure(figsize=(8, 6))
    plt.scatter(final_matrix[:, 0], final_matrix[:, 1], c=y)
    plt.title('2-D distribution after PCA')
    plt.savefig('2-D distribution of Datapoints after PCA')
    plt.show()
            
          

?

PCA的結(jié)果如下圖所示,可以看到,效果明顯:

從頭實現(xiàn)主成分分析(PCA)--Python_第3張圖片

?

總結(jié)分析:為什么PCA有效

分析:PCA的目標是通過某種線性投影方法,將高維的數(shù)據(jù)映射到較低維的空間中,并期望在所投影的維度上數(shù)據(jù)的信息量最大(方差最大,通過協(xié)方差矩陣的特征實現(xiàn)),具體內(nèi)容可看博客:PCA主成分分析 詳細解釋


更多文章、技術(shù)交流、商務合作、聯(lián)系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號聯(lián)系: 360901061

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對您有幫助就好】

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長會非常 感謝您的哦!?。?/p>

發(fā)表我的評論
最新評論 總共0條評論
主站蜘蛛池模板: 一级特黄aa大片欧美 | 国内精品免费 | 久久久久久久久久久久久久久久久久久 | 日本大片在线观看免费视频 | 国产一级毛片高清视频完整版 | 久久久久国产视频 | 激情综合五月亚洲婷婷 | 亚洲欧美中文日韩综合 | 天天操妹子 | 久久久久久99 | 亚洲福利 | 亚洲偷图色综合色就色 | 婷婷香蕉 | 日本一本久道 | 国产精品视频播放 | 久久久久久天天夜夜天天 | 久久国产精品亚洲 | 久久精品亚洲成在人线av网址 | 国产福利不卡视频在免费播放 | 欧美交换乱理伦片120秒 | 久久视频这里只要精品 | 日本夜爽爽一区二区三区 | 久久亚洲国产精品五月天婷 | 久久久久国产精品一区 | 久久精品国产清自在天天线 | 奇米影视4444 | 国产二区在线播放 | 久久久久国产成人精品亚洲午夜 | 亚洲国产综合精品中文第一区 | 午夜色视频在线观看 | 91嫩草国产线免费观看 | 天天做天天爱天天操 | 福利色 | 日本一区二区精品视频 | 日韩成人性视频 | 新版天堂资源中文在线 | 午夜精品久久久久久久99黑人 | 久久精品视在线观看2 | 日韩视频在线观看免费视频 | 亚州精品天堂中文字幕 | 午夜影院观看 |