从 python 的 sklearn PCA 结果制作散点图

Posted

技术标签:

【中文标题】从 python 的 sklearn PCA 结果制作散点图【英文标题】:Make a scatterplot from sklearn PCA result for python 【发布时间】:2017-11-28 04:39:37 【问题描述】:

我正在尝试显示我使用来自sklearnPCA 函数制作的二维数据集的散点图。我的数据返回如下:

array([[ -3.18592855e+04,  -2.13479310e+00],
       [ -3.29633003e+04,   1.40801796e+01],
       [ -3.25352942e+04,   7.36921088e+00],
...

我预计以下代码会起作用:

import pylab
import matplotlib.pyplot as plt
from sklearn.decomposition import PCA

pca = PCA(n_components=2).fit(instances)
pca_2d = pca.transform(instances)

fig = plt.figure(figsize=(8,3))
plt.scatter(pca_2d[0],pca_2d[1])
plt.show()

但这返回了一个不正确的数字,只显示了前两个值。我需要进行哪些更改才能启动并运行它?

【问题讨论】:

执行此操作 plt.scatter(pca_2d[:, 0], pca_2d[:, 1 ]) ,它在 x 轴上绘制第一个特征(第 0 列),在 y 轴上绘制第二个特征。 【参考方案1】:

您提供了 2 行而不是 2 列 pca_2d 来构建散点图。

做:

import matplotlib.pyplot as plt
from sklearn.decomposition import PCA
import numpy as np

instances = np.array([[ 1,  2],
                      [ 3,  4],
                      [ 5,  6]])
pca = PCA(n_components=2).fit(instances)
pca_2d = pca.transform(instances)

fig = plt.figure(figsize=(8,3))
plt.scatter(pca_2d[:,0],pca_2d[:,1])
plt.show()

给好3分:

【讨论】:

这仅显示前两个值,而不是完整的数据集(例如,我限制为 3 个)

以上是关于从 python 的 sklearn PCA 结果制作散点图的主要内容,如果未能解决你的问题,请参考以下文章

使用 sklearn 进行 PCA 预测和错误

Python机器学习:5.9 sklearn中的核PCA

Python PCA sklearn

[python机器学习及实践]Sklearn实现主成分分析(PCA)

Python 3.5 尝试使用 sklearn 和 matplotlib 绘制 PCA

sklearn 上的 PCA - 如何解释 pca.components_