一文了解可视化的主成分分析(附教程)

图片

主成分分析 (PCA) 是一种无监督的机器学习技术。也许主成分分析最流行的用途是降维。但是,除了使用 PCA 作为数据准备技术之外,我们还可以使用它来帮助可视化数据。一张图片胜过千言万语。通过可视化数据,我们更容易获得一些见解并决定机器学习模型的下一步。

小普发布本次文章后,您将了解如何使用 PCA 将数据可视化,以及如何使用可视化来帮助确定降维参数。先赞后看是个好习惯。

完成本教程后,您将了解:

  • 如何使用可视化高维数据
  • 什么是PCA中的解释方差
  • 从高维数据的PCA结果中直观地观察解释方差

让我们开始吧!

教程概述

本教程分为两部分;他们是:

  • 高维数据散点图
  • 可视化解释方差

高维数据散点图

可视化是从数据中获取洞察力的关键步骤。我们可以从可视化中了解到是否可以观察到模式,从而估计哪种机器学习模型是合适的。

用二维来描绘事物是很容易的。通常,带有 x 轴和 y 轴的散点图是二维的。用三维来描绘事物有点挑战性,但并非不可能。例如,在 matplotlib 中,可以绘制 3D。唯一的问题是在纸上或屏幕上,我们一次只能在一个视口或投影上查看 3D 绘图。在 matplotlib 中,这是由仰角和方位角控制的。用四、五个维度来描绘事物是不可能的,因为我们生活在一个三维世界,不知道这么高维度的事物会是什么样子。

这就是 PCA 等降维技术发挥作用的地方。我们可以将维度减少到两个或三个,以便我们可以对其进行可视化。让我们从一个例子开始。

我们从wine dataset开始,它是一个具有 13 个特征(即数据集为 13 维)和 3 个类的分类数据集。有 178 个样本:

from sklearn.datasets import load_wine
winedata = load_wine()
X, y = winedata['data'], winedata['target']
print(X.shape)
print(y.shape)

(178, 13)
(178,)

在 13 个特征中,我们可以选择任意两个并使用 matplotlib 绘制(我们使用c参数对不同的类进行颜色编码):

...
import matplotlib.pyplot as plt
plt.scatter(X[:,1], X[:,2], c=y)
plt.show()

或者我们也可以选择任意三个并以 3D 方式显示:

...
ax = fig.add_subplot(projection='3d')
ax.scatter(X[:,1], X[:,2], X[:,3], c=y)
plt.show()

但这并没有揭示数据的大部分内容,因为大多数特征都没有显示。我们现在求助于主成分分析:

...
from sklearn.decomposition import PCA
pca = PCA()
Xt = pca.fit_transform(X)
plot = plt.scatter(Xt[:,0], Xt[:,1], c=y)
plt.legend(handles=plot.legend_elements()[0], labels=list(winedata['target_names']))
plt.show()

这里我们X通过 PCA将输入数据转换为Xt.我们只考虑包含最多信息的前两列,并以二维方式对其进行绘制。我们可以看到紫色类是比较有特色的,但是还是有一些重叠的。如果我们在 PCA 之前缩放数据,结果会有所不同:

...
from sklearn.preprocessing import StandardScaler
from sklearn.pipeline import Pipeline
pca = PCA()
pipe = Pipeline([('scaler', StandardScaler()), ('pca', pca)])
Xt = pipe.fit_transform(X)
plot = plt.scatter(Xt[:,0], Xt[:,1], c=y)
plt.legend(handles=p
  • 0
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值