【问题标题】:Make a scatterplot from sklearn PCA result for python从 python 的 sklearn PCA 结果制作散点图
【发布时间】: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 轴上绘制第二个特征。

标签: python matplotlib scikit-learn sklearn-pandas


【解决方案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 个)
猜你喜欢
  • 2016-02-05
  • 1970-01-01
  • 2021-03-24
  • 2018-11-06
  • 2018-09-13
  • 1970-01-01
  • 2018-09-24
  • 1970-01-01
  • 2019-04-03
相关资源
最近更新 更多