楼主: casey_c
1680 3

[程序分享] Scikit-Learn 主成分分析 [推广有奖]

  • 0关注
  • 10粉丝

博士生

92%

还不是VIP/贵宾

-

威望
0
论坛币
96 个
通用积分
2.1003
学术水平
2 点
热心指数
15 点
信用等级
2 点
经验
11502 点
帖子
278
精华
0
在线时间
94 小时
注册时间
2016-11-22
最后登录
2022-5-2

楼主
casey_c 发表于 2017-6-30 16:51:25 |AI写论文

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

求职就业群
赵安豆老师微信:zhaoandou666

经管之家联合CDA

送您一个全额奖学金名额~ !

感谢您参与论坛问题回答

经管之家送您两个论坛币!

+2 论坛币



以下内容转自 数析学院,只节选了部分,有需要的同学可以直接查看原文


主成分分析是数据科学中常见的降维方法,今天将向大家介绍在 Python 中利用 Scikit-Learn 工具包进行主成分分析的方法与技巧。


首先导入相关的可视化库,并构建示例数据:


  1. %matplotlib inline
  2. import numpy as np
  3. import matplotlib.pyplot as plt
  4. import seaborn as sns; sns.set()
复制代码
  1. rng = np.random.RandomState(1)
  2. X = np.dot(rng.rand(2, 2), rng.randn(2, 200)).T
  3. plt.scatter(X[:, 0], X[:, 1])
  4. plt.axis('equal');
复制代码


1.jpg

如上所示,第一组示例数据为一组样本量为200的随机的二维数组。接下来我们导入 Scikit-Learn 中用于主成分分析的 PCA 模块,构建一个主成分分析模型对象,并进行训练。在这次构建中,我们设定 PCA 函数的参数 n_components 为2,这意味这我们将得到特征值最大的两个特征向量:


  1. from sklearn.decomposition import PCA
  2. pca = PCA(n_components=2)
  3. pca.fit(X)
复制代码
PCA(copy=True, n_components=2, whiten=False)
模型训练完成后, components_ 属性可以查看主成分分解的特征向量:
  1. print(pca.components_)
复制代码
[[ 0.94446029  0.32862557] [ 0.32862557 -0.94446029]]
explained_variance_ 属性可以中查看各个主成分的解释方差:
  1. print(pca.explained_variance_)
复制代码
[ 0.75871884  0.01838551]
我们可以通过如下方式将主成分分析中的特征向量描绘出来,下图中向量的起点为样本数据的均值向量:
  1. def draw_vector(v0, v1, ax=None):
  2.     ax = ax or plt.gca()
  3.     arrowprops=dict(arrowstyle='->',
  4.                     linewidth=2,
  5.                     shrinkA=0, shrinkB=0)
  6.     ax.annotate('', v1, v0, arrowprops=arrowprops)

  7. # 描绘数据
  8. plt.scatter(X[:, 0], X[:, 1], alpha=0.2)
  9. for length, vector in zip(pca.explained_variance_, pca.components_):
  10.     v = vector * 3 * np.sqrt(length)
  11.     draw_vector(pca.mean_, pca.mean_ + v)
  12. plt.axis('equal');
复制代码
2.jpg

以上内容节选自 数析学院,后文还有介绍 参数调整、图像降维实例等,内容较多,先搬运到这,有需要的同学可以先直接到 数析学院 查看原文
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

关键词:scikit-learn 主成分分析 Learn Earn ear

已有 1 人评分经验 收起 理由
残阳_等待 + 60 精彩帖子

总评分: 经验 + 60   查看全部评分

沙发
残阳_等待 发表于 2017-7-1 09:48:15
感谢分享好资源!

藤椅
ydc129 发表于 2017-7-3 00:40:06
谢谢分享

板凳
casey_c 发表于 2017-7-4 10:30:44

您需要登录后才可以回帖 登录 | 我要注册

本版微信群
加好友,备注cda
拉您进交流群
GMT+8, 2026-1-9 06:46