主成分分析常用于社会科学、市场调研和使用大型数据集的其他行业数据建模分析中处理数据,用来从大数据集形成较小数量的不相关变量。在一系列数据分析中,通常将主成分分析作为其中的一个步骤。主成分分析的目的是为了使用最少数量的主成分来解释最大量的方差。可以使用主成分分析减少变量数目并避免多重共线性,也可以在相对于观测值数目而言有太多预测变量时使用主成分分析。
►算法思想
主成分分析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机器学习平台流程运行结果如下所示: