加载中...
数据降维--因子分析
发表于:2022-10-01 | 分类: 数学建模
字数统计: 2.1k | 阅读时长: 7分钟 |

参考:https://www.heywhale.com/mw/project/5e4fc6580e2b66002c1fac1b

因子分析(factor analysis)

可以通过spss进行因子分析
是指研究从变量群中提取共性因子的统计技术。 因子分析是简化、分析高维数据的一种统计方法。
因子分析又存在两个方向,一个是探索性因子分析(exploratory factor analysis)。另一个是验证性因子分析(confirmatory factor analysis)。

探索性因子分析是先不假定一堆自变量背后到底有几个因子以及关系,而是我们通过这个方法去寻找因子及关系。

验证性因子分析是假设一堆自变量背后有几个因子,试图验证这种假设是否正确。

因子分析有两个核心问题,一是如何构造因子变量,二是如何对因子变量进行命名解释。

因子分析的一般步骤

  1. 将原始数据标准化处理 X

  2. 计算相关矩阵C

  3. 计算相关矩阵C的特征值 r 和特征向量 U

4.确定公共因子个数k

  1. 构造初始因子载荷矩阵,其中U为r的特征向量

  2. 建立因子模型

  3. 对初始因子载荷矩阵A进行旋转变换,旋转变换是使初始因子载荷矩阵结构简化,关系明确,使得因子变量更具有可解释性,如果初始因子不相关,可以用方差极大正交旋转,如果初始因子间相关,可以用斜交旋转,进过旋转后得到比较理想的新的因子载荷矩阵A’.

  4. 将因子表示成变量的线性组合,其中的系数可以通过最小二乘法得到.

  5. 计算因子得分.

参考代码 https://www.heywhale.com/mw/project/5ec1913cfb82740098cfce44

随机森林降维度


随机森林可以降维度
还要用Pearson 相关分析逐一剔除相关性较强的 10 组变量,最后取前 20 个特征作为主要变量。

3.3 数据降维 参考文献

3.3.1 皮尔逊相关分析
皮尔逊相关也称为积差相关(或积矩相关)是英国统计学家皮尔逊于 20 世纪提出的 一种计算直线相关的方法。
假设有两个变量 X、Y,皮尔逊相关系数则用于度量 X 和 Y 之间的线性相关程度,其 值介于-1 与 1 之间。这种线性相关直观表述为:随着 X 增大,Y 是否同时增大或者减小; 当二者分布在一条直线上时,皮尔逊相关系数等于 1 或-1;两个变量之间没有线性关系时, 皮尔逊相关系数为 0。
那么两变量间的皮尔逊相关系数可通过以下公式(1)计算:
$\rho(X, Y)=\frac{\operatorname{cov}(X, Y)}{\sigma_X \sigma_Y}=\frac{E\left[\left(X-\mu_X\right)\left(Y-\mu_Y\right)\right]}{\sqrt{\sum_{i=1}^n\left(X_i-\mu_X\right)^2} \sqrt{\sum_{i=1}^n\left(Y_i-\mu_Y\right)}}$
\begin{equation}
\rho(X, Y)=\frac{\operatorname{cov}(X, Y)}{\sigma_X \sigma_Y}=\frac{E\left[\left(X-\mu_X\right)\left(Y-\mu_Y\right)\right]}{\sqrt{\sum_{i=1}^n\left(X_i-\mu_X\right)^2} \sqrt{\sum_{i=1}^n\left(Y_i-\mu_Y\right)}}
\end{equation}
\rho(X, Y)=\frac{\operatorname{cov}(X, Y)}{\sigma_X \sigma_Y}=\frac{E\left[\left(X-\mu_X\right)\left(Y-\mu_Y\right)\right]}{\sqrt{\sum_{i=1}^n\left(X_i-\mu_X\right)^2} \sqrt{\sum_{i=1}^n\left(Y_i-\mu_Y\right)}}
$\rho(X, Y)=\frac{\operatorname{cov}(X, Y)}{\sigma_X \sigma_Y}=\frac{E\left[\left(X-\mu_X\right)\left(Y-\mu_Y\right)\right]}{\sqrt{\sum_{i=1}^n\left(X_i-\mu_X\right)^2} \sqrt{\sum_{i=1}^n\left(Y_i-\mu_Y\right)}}$

熵值法降维


熵是热力学的一个物理概念,是系统混乱度(或无序度)的量度。熵越大说明系统越
混乱,携带的信息越少,熵越小说明系统越有序,携带的信息越多。根据熵的特性,可以
通过计算熵值来表示一个随机系统的无序程度,也可以用熵值来判断一个指标的离散程
度。
熵值法的一般步骤可以表述为:数据标准化、数据预处理、计算熵值和计算权重。
我们采用熵值法降维的方法对附件“Molecular_Descriptor.xlsx”和“ERα_activity.xlsx” 中的特征进行权值计算,结果如下图 3-4 所示:
由图示可以看出,特征值的权重逐渐下降,权值是指加权平均数中的每个数的频数, 因此,在 1974 个化合物的 729 个分子描述符信息中,前 30 个特征的权值较大,说明对生 物活性的影响较大,具有一定的代表性,因此,采用 python 语言对熵值法的前 30 个特征 选择进行实现,结果如下图 3-4 所示
如上图 3-5 所示,在熵值法降维中,前 30 个对生物活性具有显著影响的分子描述符(即 变量)之间的正相关性较强,普遍呈现绿色(绿色表示正相关性,本身之间的相关性为 1), 负相关性的表示比较弱,代表性不是很强。另外,熵值法降维缺乏各对特征之间的横向比 较,且各特征的权数随样本的变化而变化,权数依赖于样本,在应用上受到一定的限制。 因此采用随机森林降维法弥补该缺点。

随机森林降维


参考代码:https://zhuanlan.zhihu.com/p/416520778?utm_medium=social&utm_oi=629375409599549440
随机森林(Random Forest,简称 RF),是一种新兴起的、高度灵活的、基于树的机 器学习算法,该算法利用多棵树的力量来进行决策。森林中的每棵树并不一样,每棵树都 是被随机创造的,每棵树中的每一个节点都是待选特征的一个随机子集,所有树的输出结 果整合起来就是森林最后的输出结果。
随机森林重点是“随机”两个字,它包括两个方面:
训练数据的随机选取。即用于训练单棵树的数据应该是随机、有放回的从全部数据中
选取和原始数据集相同的数据量。此要求是为了防止每棵树用于训练的数据一致导致训练
出来的每棵树都一样,这样就丢失了构建多棵树的意义。
选特征的随机选取。使得森林中的各棵树都能够彼此不同,提示系统的多样性,从
而提升分类性能。
采用随机森林降维法对附件“Molecular_Descriptor.xlsx”和“ERα_activity.xlsx”中的 特征进行处理,并根据变量对生物活性影响的重要性(贡献率)进行排序,排序后每个特 征贡献率所占百分比如下图 3-6 所示:

图 3-6 所示,对附件“Molecular_Descriptor.xlsx”和“ERα_activity.xlsx”所给的特 征,进行特征贡献率计算并做好排序,在 1974 个化合物的 729 个分子描述符信息中,前 30 个特征对生物活性的贡献率较大,后面的特征贡献率小于 0.006,影响因子较小。

用 python 语言对随机森林的前 30 个特征选择与降维进行实现,结果如上图 3-7 所示, 该图较好的呈现出了各特征之间的相关性,绿色部分表示各特征之间的正相关,红色部分 表示各特征之间的负相关,颜色程度越深表示相关性越强,RF 降维法的结果显示相关性分 布比较均匀。

主成分分析降维


方案对比


由图 3-5 和 3-7 的对比,熵值法整体偏正相关,并且该方法在筛选变量过程中和因变 量 pIC50 无关。综合这两点可知熵值法挑选的 30 组特征不具有代表性,而随机森林特征 选择避免了这两个缺点,因此使用随机森林挑选的 30 个特征更具有代表性。在此基础之 上,本文对随机森林的 30 组变量进行相关性分析,逐一删除了图 3-7 中 30 个特征中相关 性大于 0.85 的 10 个对特征中的一个,最终选择出了 20 组特征作为主要变量。

上一篇:
测试
下一篇:
算法-问题求解
本文目录
本文目录