ToB企服应用市场:ToB评测及商务社交产业平台

标题: 主身分分析 [打印本页]

作者: 一给    时间: 2024-6-11 09:11
标题: 主身分分析
主身分分析(Principal Component Analysis,简称PCA)是一种统计方法,它通过正交变换将一组可能相干的变量转换成一组线性不相干的变量,这些不相干变量称为主身分。PCA常用于降维、数据压缩和模式识别等范畴。
PCA的主要目标:


PCA的工作原理:

PCA的应用场景:


注意事项:


实当代码

  1. # 导入matplotlib的pyplot模块,用于数据可视化
  2. import matplotlib.pyplot as plt
  3. # 从sklearn库中导入PCA算法,用于数据降维
  4. from sklearn.decomposition import PCA
  5. # 从sklearn.datasets模块导入iris数据集
  6. from sklearn.datasets import load_iris
  7. # 加载iris数据集,并将特征数据和标签分别赋值给x和y
  8. data = load_iris()
  9. y = data.target  # 标签数据,表示不同种类的鸢尾花
  10. x = data.data    # 特征数据,包含鸢尾花的测量数据
复制代码


  1. # 初始化PCA对象,设置降维后保留的主成分数目为2
  2. pca = PCA(n_components=2)
  3. # 使用PCA算法对原始数据x进行降维处理,并将降维后的数据存储在reduced_x中
  4. reduced_x = pca.fit_transform(x)
  5. # 初始化三个列表,用于存储不同类别数据在降维后的坐标
  6. red_x, red_y = [], []  # 用于存储类别0的数据
  7. blue_x, blue_y = [], []  # 用于存储类别1的数据
  8. green_x, green_y = [], []  # 用于存储类别2的数据
  9. # 遍历降维后的数据,根据标签y的值,将数据分配到对应的列表中
  10. for i in range(len(reduced_x)):
  11.     if y[i] == 0:  # 如果标签为0
  12.         red_x.append(reduced_x[i][0])  # 将第一个主成分的值添加到red_x
  13.         red_y.append(reduced_x[i][1])  # 将第二个主成分的值添加到red_y
  14.     elif y[i] == 1:  # 如果标签为1
  15.         blue_x.append(reduced_x[i][0])  # 将第一个主成分的值添加到blue_x
  16.         blue_y.append(reduced_x[i][1])  # 将第二个主成分的值添加到blue_y
  17.     else:  # 标签为2的情况
  18.         green_x.append(reduced_x[i][0])  # 将第一个主成分的值添加到green_x
  19.         green_y.append(reduced_x[i][1])  # 将第二个主成分的值添加到green_y
  20. # 使用matplotlib的scatter函数绘制散点图,可视化降维后的数据
  21. # 不同类别的数据使用不同的颜色和标记进行区分
  22. plt.scatter(red_x, red_y, c='r', marker='x')  # 类别0的数据用红色'x'标记
  23. plt.scatter(blue_x, blue_y, c='b', marker='D')  # 类别1的数据用蓝色'D'标记
  24. plt.scatter(green_x, green_y, c='g', marker='.')  # 类别2的数据用绿色'.'标记
  25. # 显示图表
  26. plt.show()
复制代码
以上代码展示了怎样使用主身分分析(PCA)对数据进行降维,并使用matplotlib库进行数据可视化。

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。




欢迎光临 ToB企服应用市场:ToB评测及商务社交产业平台 (https://dis.qidao123.com/) Powered by Discuz! X3.4