回覆列表
  • 1 # 無痕6157

    1、在對資料進行主成分分析時,需要對資料標準化處理,以消除量綱的影響,如圖所示,使用程式碼x=zscore(A);對資料進行標準化。原則是原資料減去均值後,除以標準差。

    2、標準化後,使用matlab自帶主成分分析函式[coeff,score,latent,tsquare]=princomp(x);如圖所示

    3、其中,coeff是各個主成分的係數也就是轉換矩陣,score是各個主成分的得分,latent是X的特徵值,tsquare是每個資料的統計值。這裡主要看的coeff、latent。如圖所示

    4、接下來計算每個特徵的貢獻率,輸入程式碼latent’;、y=(100*latent/sum(latent))"; 如圖所示

    5、提取主成分的方法是依據前N個特徵值的累計貢獻率為準則,若累計貢獻率為85%以上,則說明這前N個特徵可以代表去不資料的絕大部分資訊。如圖所示(將每個特徵的貢獻率複製到Excel相加,累計達到85%)前99個特徵。

    6、由於前99個特徵的累計貢獻率達到85%。故可以使用此前99個特徵的資訊表示大部分的原始資訊。取前99個特徵的特徵向量作為轉換矩陣,即coeff(:,1:99);

    降維後的資料B=x*coeff(:,1:99);如圖所示,新資料只能99個特徵(原資料有841個特徵)達到降維的結果。

  • 2 # Sunday呀

    1.在對資料進行主成分分析時,需要對資料標準化處理,以消除量綱的影響,如圖所示,使用程式碼x=zscore(A);對資料進行標準化。原則是原資料減去均值後,除以標準差。

    2.標準化後,使用matlab自帶主成分分析函式[coeff,score,latent,tsquare]=princomp(x);如圖所示。

    3.其中,coeff是各個主成分的係數也就是轉換矩陣,score是各個主成分的得分,latent是X的特徵值,tsquare是每個資料的統計值。這裡主要看的coeff、latent。如圖所示。

    4.接下來計算每個特徵的貢獻率,輸入程式碼latent’;、y=(100*latent/sum(latent))"; 如圖所示。

    5.提取主成分的方法是依據前N個特徵值的累計貢獻率為準則,若累計貢獻率為85%以上,則說明這前N個特徵可以代表去不資料的絕大部分資訊。如圖所示(將每個特徵的貢獻率複製到Excel相加,累計達到85%)前99個特徵。

    6.由於前99個特徵的累計貢獻率達到85%。故可以使用此前99個特徵的資訊表示大部分的原始資訊。取前99個特徵的特徵向量作為轉換矩陣,即coeff(:,1:99)。降維後的資料B=x*coeff(:,1:99);如圖所示,新資料只能99個特徵(原資料有841個特徵)達到降維的結果。

  • 中秋節和大豐收的關聯?
  • 翻斗車安裝了滑板怎麼還沾土啊?