数学建模常用模型(八) :主成分分析法

数学建模常用模型(八) :主成分分析法

主成分分析(Principal Component Analysis,PCA)是一种常用的降维技术和数据分析方法。它通过线性变换将原始数据映射到一个新的坐标系中,新的坐标系由一组称为主成分的正交向量组成。主成分按照其对原始数据方差的贡献程度排序,可以选择保留最重要的主成分,从而实现数据降维和特征提取的目的。

这是我自己总结的一些代码和资料(本文中的代码以及参考书籍等),放在github上供大家参考:https://github.com/HuaandQi/Mathematical-modeling.git

1.主成分分析的要求

**要求:**指标之间相关性比较高,一般需要对数据的相关性或者主成分分析的结果进行分析后,如果效果比较好,再使用主成分分析,如果效果不好,那就不要使用主成分分析:切记。

主成分说白了就是在评价的时候有很多指标,因为指标太多了,并且各个指标之间相互有影响,为了消除指标之间的影响,单纯从数据的角度寻找各个指标具有公共特征,这些公共的特征就是主成分,也就是常说的第一主成分,

第二主成分,第N主成分。具体的第一主成分第二主成分以及累计贡献率(要保证所有主成分累计对原始数据的贡献达到80%)是如何计算出的,可以不用掌握,且在比赛的时候也没必要写在论文上,只需要给出主要的结果即可。

2.程序实例

下面是使用Python中的sklearn库进行主成分分析的示例代码:

import numpy as np
from sklearn.decomposition import PCA

# 原始数据
X = np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9], [10, 11, 12]])

# 创建PCA对象
pca = PCA(n_components=2)  # 指定保留的主成分个数为2

# 进行主成分分析
pca.fit(X)

# 获得主成分
components = pca.components_

# 获得降维后的数据
transformed_data = pca.transform(X)

# 打印结果
print("原始数据:")
print(X)
print("主成分:")
print(components)
print("降维后的数据:")
print(transformed_data)

在上述代码中,我们首先定义了原始数据矩阵X,然后创建了一个PCA对象并指定保留的主成分个数为2。接下来,我们使用fit()方法进行主成分分析,并使用components_属性获取主成分。最后,使用transform()方法将原始数据映射到主成分空间,得到降维后的数据。
请根据实际情况调整原始数据和保留的主成分个数,并根据需要对结果进行解释和分析。

3.运行结果

原始数据:
[[ 1  2  3]
 [ 4  5  6]
 [ 7  8  9]
 [10 11 12]]
主成分:
[[ 0.57735027  0.57735027  0.57735027]
 [ 0.         -0.70710678  0.70710678]]
降维后的数据:
[[-7.79422863e+00 -1.66533454e-15]
 [-2.59807621e+00 -5.55111512e-16]
 [ 2.59807621e+00  5.55111512e-16]
 [ 7.79422863e+00  1.66533454e-15]]

你可能感兴趣的:(数学建模,数学建模,python)