小伙伴们好!今天继续更新sklearn库系列,为啥这个库介绍了好几篇文章?因为确实太宝藏啦!
想复习的同学可以点击:
Python | sklearn库聚类分析手把手教会!还有详细代码!
简单了解PCA的功能后,我们接下来就用Python sklearn库来进行PCA代码演示:
-
第一步,导入必要的库。
from sklearn.decomposition import PCAimport numpy as npimport pandas as pd
第二步,数据准备。
确保你的数据是NumPy数组或Pandas DataFrame格式,并且进行了适当的预处理(如缺失值填充、标准化等)。PCA通常对标准化后的数据表现更好,因为标准化可以消除不同特征之间的影响。
# 假设X是你的数据# 如果数据未标准化,可以使用sklearn的StandardScaler进行标准化from sklearn.preprocessing import StandardScalerscaler = StandardScaler()X_scaled = scaler.fit_transform(X)
第三步,进行PCA分析。保留主成分的个数是我们事先就知道,需要保留两个主成分。如果拿不准需要保留的个数,请继续往下看~
pca = PCA(n_components=2)
第四步,拟合并转换数据。
使用PCA对象的fit_transform方法拟合数据并转换到低维空间。这个方法会返回转换后的数据。
X_pca = pca.fit_transform(X_scaled)
第五步,查看结果。
explained_variance_ratio = pca.explained_variance_ratio_print(explained_variance_ratio)
-
第六步,可视化。
import matplotlib.pyplot as pltplt.figure(figsize=(8, 6))plt.scatter(X_pca[:, 0], X_pca[:, 1], alpha=0.5)plt.xlabel('Principal Component 1')plt.ylabel('Principal Component 2')plt.show()
可选的这一步,选择主成分数量。
如果你之前没有指定n_components参数,或者拿不准数据应该包括几个主成分,你可以根据explained_variance_ratio_选择适当的数量。通常,你可以选择一个阈值(如0.95),然后保留足够多的主成分,使它们解释的方差总和超过这个阈值。
# 假设我们想要保留足够多的主成分以解释95%的方差total_variance = np.sum(explained_variance_ratio)n_components_to_keep = np.argmax(np.cumsum(explained_variance_ratio) >= 0.95) + 1print(f"Number of components to keep: {n_components_to_keep}")
这就是今天想要跟大家介绍的sklearn主成分分析的详细内容,觉得有用的话,别忘了分享给更多的小伙伴!


