大数跨境
0
0

Python | sklearn库进行主成分分析(PCA)

Python | sklearn库进行主成分分析(PCA) 谁说菜鸟不会数据分析
2024-05-27
0
导读:内含代码,速来!

小伙伴们好!今天继续更新sklearn库系列,为啥这个库介绍了好几篇文章?因为确实太宝藏啦!

想复习的同学可以点击:

Python | sklearn库聚类分析手把手教会!还有详细代码!

Python | sklearn库回归分析详解!内含代码

主成分分析(PCA)是一种统计方法,用于在保留数据集中最重要的特征的同时,降低数据的维度PCA通过正交变换将原始数据转换为一组称为主成分的新变量,这些新变量是原始变量的线性组合。
PCA在数据分析、特征提取、数据压缩、图像处理和模式识别等领域有着广泛的应用。通过PCA降维后的数据更容易理解和可视化,并且能减少计算成本,同时保留数据中的主要信息。
PCA是无监督学习算法,不需要标签数据。PCA假设数据的主要特征是通过方差(即数据的分散程度)来体现的,因此它更适合处理数值型数据对于非数值型数据(定性、类别等),可能需要先进行适当的预处理(哑变量、编码)。

简单了解PCA的功能后,我们接下来就用Python sklearn库来进行PCA代码演示:

  • 第一步,导入必要的库。
需要导入sklearn中的PCA类和NumPy或Pandas等数据处理库。
from sklearn.decomposition import PCA  import numpy as np  import pandas as pd
  • 第二步,数据准备。

确保你的数据是NumPy数组或Pandas DataFrame格式,并且进行了适当的预处理(如缺失值填充、标准化等)。PCA通常对标准化后的数据表现更好,因为标准化可以消除不同特征之间的影响。

# 假设X是你的数据  # 如果数据未标准化,可以使用sklearn的StandardScaler进行标准化  from sklearn.preprocessing import StandardScaler  scaler = StandardScaler()  X_scaled = scaler.fit_transform(X)
  • 第三步,进行PCA分析。保留主成分的个数是我们事先就知道,需要保留两个主成分。如果拿不准需要保留的个数,请继续往下看~

pca = PCA(n_components=2)
  • 第四步,拟合并转换数据。

使用PCA对象的fit_transform方法拟合数据并转换到低维空间。这个方法会返回转换后的数据。

X_pca = pca.fit_transform(X_scaled)
  • 第五步,查看结果。

PCA对象提供了许多属性来查看结果。例如,explained_variance_ratio_属性给出了每个主成分解释的方差比例,这可以帮助你确定保留多少个主成分。
explained_variance_ratio = pca.explained_variance_ratio_  print(explained_variance_ratio)
  • 第六步,可视化。
如果PCA用于降维,以便可视化(例如从高维空间降到2D或3D),咱们可以使用matplotlib等库绘制结果。
import matplotlib.pyplot as plt    plt.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) + 1  print(f"Number of components to keep: {n_components_to_keep}")

这就是今天想要跟大家介绍的sklearn主成分分析的详细内容,觉得有用的话,别忘了分享给更多的小伙伴!

推荐阅读
Python | sklearn库聚类分析手把手教会!还有详细代码!
Python | sklearn库回归分析详解!内含代码
Python | sklearn库太强大了!
数据分析交流群请添加小助理VX




【声明】内容源于网络
0
0
谁说菜鸟不会数据分析
以大数据分析为驱动,spss/R/python/数据分析交流技术分享,实用教程干货,敬请期待,B站UP主:谁说菜鸟不会数据分析 有更多在线实操视频。
内容 498
粉丝 0
谁说菜鸟不会数据分析 以大数据分析为驱动,spss/R/python/数据分析交流技术分享,实用教程干货,敬请期待,B站UP主:谁说菜鸟不会数据分析 有更多在线实操视频。
总阅读45
粉丝0
内容498