使用 Python 进行主成分分析 (PCA) 并可视化结果

本教程将使用 Python 代码示例,演示如何利用主成分分析 (PCA) 对数据进行降维,并通过不同的可视化方法展示降维后的结果。

代码示例:

import pandas as pd
from sklearn.decomposition import PCA
import matplotlib.pyplot as plt
import numpy as np

# 读取Excel表格
data = pd.read_excel('C:\Users\lenovo\Desktop\HIV\GSE6740GSE50011基因降低\data1.xlsx')
X = data.iloc[:, 1:].values # 影响因素
y = data.iloc[:, 0].values # 因变量

# 主成分分析算法
pca = PCA(n_components=10)
pca.fit(X)
X_pca = pca.transform(X)


# 散点图
plt.scatter(X_pca[:, 0], X_pca[:, 1])
plt.title('PCA Scatter Plot')
plt.xlabel('PC1')
plt.ylabel('PC2')
plt.show()

# 热力图
corr = np.corrcoef(X_pca.T)
plt.imshow(corr, cmap='hot', interpolation='nearest')
plt.title('PCA Heatmap')
plt.colorbar()
plt.show()

# 3D图
from mpl_toolkits.mplot3d import Axes3D
fig = plt.figure()
ax = Axes3D(fig)
ax.scatter(X_pca[:, 0], X_pca[:, 1], X_pca[:, 2])
ax.set_xlabel('PC1')
ax.set_ylabel('PC2')
ax.set_zlabel('PC3')
plt.title('PCA 3D Plot')
plt.show()

# 折线图
plt.plot(X_pca)
plt.title('PCA Line Plot')
plt.xlabel('Samples')
plt.ylabel('Feature Values')
plt.show()

# 柱状图
plt.bar(range(len(pca.explained_variance_ratio_)), pca.explained_variance_ratio_)
plt.title('PCA Explained Variance Ratio')
plt.xlabel('Principal Component')
plt.ylabel('Variance Ratio')
plt.show()

# 输出方差贡献率和累计贡献率
print('Explained Variance Ratio:')
print(pca.explained_variance_ratio_)
print('Cumulative Explained Variance Ratio:')
print(np.cumsum(pca.explained_variance_ratio_))

# 绘制累计贡献率的折线图
plt.plot(np.cumsum(pca.explained_variance_ratio_))
plt.title('PCA Cumulative Explained Variance Ratio')
plt.xlabel('Principal Component')
plt.ylabel('Cumulative Variance Ratio')
plt.show()

# 输出影响因素的重要性
important_features = pd.DataFrame(pca.components_, columns=data.columns[1:])
important_features = important_features.abs().sum(axis=0).sort_values(ascending=False)
print('Feature Importance:')
print(important_features)

热力图解读:

热力图展示的是主成分之间的相关性,可以通过颜色的深浅来表示相关性的强弱。颜色越深表示相关性越强,颜色越浅表示相关性越弱。同时,可以查看颜色条旁边的数字,它们表示相关系数的大小。如果相关系数接近于1或-1,则表示主成分之间高度相关或负相关。如果相关系数接近于0,则表示主成分之间基本没有相关性。

其他可视化方法:

除了热力图,代码还包含其他可视化方法,例如散点图、3D 图、折线图和柱状图。这些方法可以帮助我们更直观地理解 PCA 的结果。

特征重要性分析:

代码最后部分还展示了如何分析特征重要性。通过计算每个特征在主成分中的权重,我们可以了解哪些特征对降维结果的影响最大。

总结:

本教程介绍了如何使用 Python 进行 PCA 并可视化结果,并详细解释了热力图的解读方法和特征重要性分析。希望本教程能帮助您更好地理解和应用 PCA。

主成分分析 (PCA) 可视化:从散点图到热力图,一文详解

原文地址: https://www.cveoy.top/t/topic/l1mw 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录