【數據建模工具】數據處理算法講解之主成分分析
2022-09-23 14:54:55
次
主成分分析常用于社會科學、市場調研和使用大型數據集的其他行業數據建模分析中處理數據,用來從大數據集形成較小數量的不相關變量。在一系列數據分析中,通常將主成分分析作為其中的一個步驟。主成分分析的目的是為了使用最少數量的主成分來解釋最大量的方差。可以使用主成分分析減少變量數目并避免多重共線性,也可以在相對于觀測值數目而言有太多預測變量時使用主成分分析。
?算法思想
主成分分析PCA(Principal Component Analysis)是一種常用的機器學習數據預處理的分析方法,給定原始特征空間,通過線性變換找到更低維度空間的線性映射,常用于高維數據的降維,PCA具備保守方差最大和重構誤差最小的優良特性。PCA算法步驟為:
(1)數據0均值化:
將每一列數據減去對應的均值得到0均值矩陣方便下一步的協方差矩陣求解。
(2)計算協方差矩陣:
以矩陣X(0均值化處理)為例:
由于X經過0均值化處理,所以可以求出方差和協方差:
由此可得:
那么,由 可得 協方差矩陣為:
(3)計算協方差矩陣的特征向量:
對協方差矩陣做奇異值分解,找到矩陣 滿足 為對角陣,那么 對角值為協方差矩陣的特征值, 為特征值對應的特征向量。對特征值進行降序排列,選取特征值前n(主成分個數)個對應特征向量構建矩陣為成分矩陣。
(4)數據降維
根據成分矩陣 可以將原始數據 進行降維操作:
?數據格式
?參數說明
參數 |
類型 |
描述 |
選擇變量 |
列表框 |
用戶指定需要進行主成分分析的屬性列,需要指定大于1個的變量作為主成分分析的對象 |
提取方法 |
下拉框 |
按照因子數、累積貢獻度的方式進行主成分分析。 |
因子數 |
文本框 |
當提取方法為因子數時,用戶直接指定需要分解的因子數。默認為1。 |
累積貢獻度 |
文本框 |
當提取方法為累積貢獻度時,用戶直接指定需要貢獻度的大小。默認為90%。 |
?結果說明
屬性列“pre_vector”為需要進行主成分分析的原始列集合;
屬性列“Pca_Vector”為經過主成分分析后的變換列;
?演示實例
利用Tempo機器學習平臺構建如下流程:
【文件輸入】節點配置如下:
【主成分分析】節點配置如下:
Tempo機器學習平臺流程運行結果如下所示: