使用 Python 进行主成分分析 (PCA) 筛选变量

本教程将使用 Python 编写一个主成分分析 (PCA) 算法来筛选影响因素,并提供数据可视化。

步骤:

  1. 读取 Excel 表格:第 0 列为因变量,其余列为影响因素。
  2. 进行主成分分析 (PCA) 算法。
  3. 输出筛选得到的变量。
  4. 进行 PCA 算法常见的图形可视化展示。

代码:

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

# 读取 Excel 表格
data = pd.read_excel('data.xlsx')
y = data.iloc[:, 0]  # 因变量
x = data.iloc[:, 1:]  # 影响因素

# 数据标准化
scaler = StandardScaler()
x = scaler.fit_transform(x)

# 主成分分析
pca = PCA()
pca.fit(x)
explained_var = pca.explained_variance_ratio_
n_components = len(explained_var)
cumulative_var = np.cumsum(explained_var)

# 输出筛选得到的变量
print('筛选得到的变量有:')
for i in range(n_components):
    if cumulative_var[i] >= 0.8:
        print(f'主成分{i+1}')

# 可视化展示
plt.figure(figsize=(8, 6))
plt.plot(range(1, n_components+1), cumulative_var, label='Cumulative explained variance')
plt.bar(range(1, n_components+1), explained_var, alpha=0.5, align='center', label='Explained variance')
plt.axhline(y=0.8, color='r', linestyle='--', label='80% explained variance')
plt.xlabel('Principal components')
plt.ylabel('Explained variance')
plt.legend(loc='best')
plt.show()

解释:

  • 代码首先导入必要的库,包括 pandas、numpy、matplotlib、sklearn.decomposition 和 sklearn.preprocessing。
  • 然后读取 Excel 表格,并使用 iloc 属性将数据分为因变量 (y) 和影响因素 (x)。
  • 使用 StandardScaler 对数据进行标准化,确保每个变量具有相同的尺度。
  • 使用 PCA 对象进行主成分分析,并计算每个主成分的方差解释率。
  • 筛选主成分:代码设置一个阈值 (0.8),如果累积方差解释率达到或超过该阈值,则表示该主成分已被选中。
  • 使用 matplotlib 库生成可视化图形,展示每个主成分的方差解释率和累积方差解释率。

注意:

  • 代码中 data.xlsx 为 Excel 文件名,请根据实际情况修改。
  • 阈值 0.8 可以根据实际需求进行调整。
  • 此代码仅用于演示目的,实际应用中可能需要进行进一步的调整和优化。

通过以上步骤,您可以使用 Python 编写一个主成分分析算法,筛选出重要的影响因素,并通过可视化图形更好地理解结果。

Python 主成分分析 (PCA) 筛选变量:从 Excel 数据到可视化

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

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