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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

主成分分析以及应用:企业综合实力排序

發布時間:2023/12/2 编程问答 37 豆豆
生活随笔 收集整理的這篇文章主要介紹了 主成分分析以及应用:企业综合实力排序 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

這段時間一直在學習數據挖掘的一些算法,今天通過不斷查閱資料,學習整理了一下主成分分析這個數據降維算法。并且結合一個實例進行matlab編程實現。

  • 主成分基本原理

    在數據挖掘中,經常會遇到一個問題就是一個問題出現了n多個變量,而且變量之間還可能會存在各種復雜的相互聯系,變量之間并不是獨立的。那么主成分分析就是將多個變量綜合為少數幾個代表性的變量,而且這些主要的變量僅能夠代表原始變量的絕大多數信息又互不相關的一種數據降維算法。

    主成分分析采取一種數據降維思想,其所要做的就是設法就原來眾多的具有一定相關性的變量,重新組合為一種新的相互無關的綜合變量來代表原來的眾多個變量。它借助于一個正交變換,將其分量相關的原隨機向量轉化成其分量不相關的新隨機向量,這在代數上表現為將原隨機向量的協方差陣變換成對角形陣,在幾何上表現為將原坐標系變換成新的正交坐標系,使之指向樣本點散布最開的p 個正交方向,然后對多維變量系統進行降維處理,使之能以一個較高的精度轉換成低維變量系統,再通過構造適當的價值函數,進一步把低維系統轉化成一維系統。

    主成分分析的原理是設法將原來變量重新組合成一組新的相互無關的幾個綜合變量,同時根據實際需要從中可以取出幾個較少的總和變量盡可能多地反映原來變量的信息的統計方法叫做主成分分析或稱主分量分析,也是數學上處理降維的一種方法。主成分分析是設法將原來眾多具有一定相關性(比如P個指標),重新組合成一組新的互相無關的綜合指標來代替原來的指標。通常數學上的處理就是將原來P個指標作線性組合,作為新的綜合指標。最經典的做法就是用F1(選取的第一個線性組合,即第一個綜合指標)的方差來表達,即Var(F1)越大,表示F1包含的信息越多。因此在所有的線性組合中選取的F1應該是方差最大的,故稱F1為第一主成分。如果第一主成分不足以代表原來P個指標的信息,再考慮選取F2即選第二個線性組合,為了有效地反映原來信息,F1已有的信息就不需要再出現再F2中,用數學語言表達就是要求:
    CovF1,F2=0
    則稱F2為第二主成分,依此類推可以構造出第三、第四,……,第P個主成分。

  • PCA方法計算步驟
    (1)首先對于原始數據進行標準化處理。
    X=

    x11x21?xn1x12x22?xn2????x1px2p?xnp
    那么就可以將X按照列進行Z?score標準化.其轉化函數為:
    x?=x?μσ
    其中μ為按照列計算得到的樣本數據均值,σ 位按照列計算得到的樣本數據的標準差。
    (2)計算經過標準化處理后得到的數據的相關性矩陣。
    R=
    r11r21?rn1r12r22?rn2????r1pr2p?rnp
    其中:rij=Cov(xi,xj)var(xi)var(xj)=k=nk=1(xki?xˉi)(xkj?xˉj)k=nk=1(xki?xˉi)k=nk=1(xkj?xˉj)n>1.
    (3)計算相關系數矩陣R特征值(λ1,λ2,?,λp 和相應的特性向量ai=(ai1,ai2,?,ai3)
    (4)對特征值進行降序排列。
    (5)計算降序排列后的特征值的貢獻率以及累計貢獻率
    contributionRate=λipi=1λi
    accumulativeContributionRate=ki=1λipi=1λi,kp.
    (6)計算主成分得分矩陣
    根據標準化的原始數據,按照各個樣品,分別帶入主成分表達式,就可以得到各個主成分下的各個樣品的新數據,即主成分的得分。具體形式為:
    F11F21?Fn1F12F22?Fn2????F1kF1k?Fnk
    其中,Fij=aj1xi1+aj2xi2+?+ajpxip,i=1,2,?,n,j=1,2,?,k

  • Matlab程序實現

  • clc clear close all %% %數據導入 coporationEvaluation=xlsread('Coporation_evaluation.xlsx','B2:I16'); %% %數據預處理 %利用size函數得到數據集中的公司數量以及變量數量 [corporationNumber,variableNumber]=size(coporationEvaluation); %預先定義標準化后的數據矩陣 normalizedcorporationEvaluation=zeros(corporationNumber,variableNumber); %利用Z-score方法進行數據標準化 for i=1:variableNumbernormalizedcorporationEvaluation(:,i)=(coporationEvaluation(:,i)-...mean(coporationEvaluation(:,i)))./std(coporationEvaluation(:,i)); end %% %數據相關系數矩陣求解以及相關系數矩陣的對應的特征值以及特征向量求解。 %計算標準化后的數據集的相關系數矩陣relativeCoefficientMatrix=corrcoef(normalizedcorporationEvaluation);%計算相關系數矩陣的特征向量以及特征值矩陣, [eigenVector,eigenValueDig]=eig(relativeCoefficientMatrix); %因為使用eig函數計算得到的特征值為一個variable*variable的對角陣, %因此需要處理一下將特征值矩陣存放在一個行向量里面 eigenValue=zeros(variableNumber,1); for j=1:variableNumbereigenValue(j,1)=eigenValueDig(j,j); end %將特征值進行降序排列 eigenValue=sort(eigenValue,'descend'); %% %計算排序后的主成分的貢獻率以及累計貢獻率 for k=1:variableNumbercontributionRateOfEachEigenValue=eigenValue(k,1)/sum(eigenValue);accumulativeContributionRate(k,1)=sum(eigenValue(1:k,1))/sum(eigenValue); end %設置主成分信息保留率 pcaInformationRetensionRatio=0.9; %統計在滿足主成分保留率的主成分的數量。 for l=1:variableNumberif accumulativeContributionRate(l,1)>pcaInformationRetensionRatio;mainComponentNumber=l;break;end end %截取主成分對應的特征向量 for ii=1:mainComponentNumbermainComponentBasedVector(:,ii)=eigenVector(:,variableNumber+1-ii); end %% %計算打分矩陣 scoreMatrix=normalizedcorporationEvaluation*mainComponentBasedVector; %計算最終的公司的總打分,finalScoreMatrix的第一列為打分值,第二列為公司序號。 for jj=1:corporationNumberfinalScoreMatrix(jj,1)=sum(scoreMatrix(jj,:));finalScoreMatrix(jj,2)=jj; end %對打分矩陣按照分數那一列進行降序排列 finalScoreMatrix=sortrows(finalScoreMatrix,-1); disp('the tope 5 corperations is: ') %輸出排名前5的公司序號 for kk=1:5finalScoreMatrix(kk,2) end

    4 . 結果

    1)特征值貢獻率以及累計貢獻率:

    特征值貢獻率累計貢獻率
    5.72610.71700.7170
    1.09720.13720.8547
    0.58960.07370.9279
    0.28580.03570.9636
    0.14560.01820.9818
    0.13690.01710.9989
    0.00600.000750.9997
    0.00270.0020341.0000

    2)公司打分以及排名

    特征值貢獻率
    4.2359
    3.9711
    2.3678
    1.9706
    1.7985
    1.10313
    0.75215
    0.16814
    -0.2922
    -1.00710
    -1.5237
    -2.0544
    -2.51311
    -3.6433
    -5.33212

    可依據打分結果得出,綜合實力最強的是序號為9的那家公司。

    5 . Matlab自帶主成分分析函數pca對比驗證
    為了表明計算的準確性,我再采用了matlab自帶的主成分函數pca進行了一個對比驗證。

    [COEFF,SCORE,latent]=pca(zscore(coporationEvaluation))

    返回的latent是一個向量,它是X所對應的協方差矩陣的特征值向量。
    我們主要看latent矩陣得到結果

    特征值
    5.7261
    1.0972
    0.5896
    0.2858
    0.1456
    0.1369
    0.0060
    0.0027

    發現計算結果是一樣的。

    6 . 主成分分析法優缺點
    優點:

      ①可消除評估指標之間的相關影響。因為主成分分析法在對原始數據指標變量進行變換后形成了彼此相互獨立的主成分,而且實踐證明指標間相關程度越高,主成分分析效果越好。

      ②可減少指標選擇的工作量,對于其他評估方法,由于難以消除評估指標間的相關影響,所以選擇指標時要花費不少精力,而主成分分析法由于可以消除這種相關影響,所以在指標選擇上相對容易些。

      ③主成分分析中各主成分是按方差大小依次排列順序的,在分析問題時,可以舍棄一部分主成分,只取前面方差較大的幾個主成分來代表原變量,從而減少了計算工作量。用主成分分析法作綜合評估時,由于選擇的原則是累計貢獻率≥85%,不至于因為節省了工作量卻把關鍵指標漏掉而影響評估結果。

      缺點:

      ①在主成分分析中,我們首先應保證所提取的前幾個主成分的累計貢獻率達到一個較高的水平(即變量降維后的信息量須保持在一個較高水平上),其次對這些被提取的主成分必須都能夠給出符合實際背景和意義的解釋(否則主成分將空有信息量而無實際含義)。

      ②主成分的解釋其含義一般多少帶有點模糊性,不像原始變量的含義那么清楚、確切,這是變量降維過程中不得不付出的代價。因此,提取的主成分個數m通常應明顯小于原始變量個數p(除非p本身較小),否則維數降低的“利”可能抵不過主成分含義不如原始變量清楚的“弊”。

      ③當主成分的因子負荷的符號有正有負時,綜合評價函數意義就不明確。

    總結

    以上是生活随笔為你收集整理的主成分分析以及应用:企业综合实力排序的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。