从 python 的 sklearn PCA 结果制作散点图
Posted
技术标签:
【中文标题】从 python 的 sklearn PCA 结果制作散点图【英文标题】:Make a scatterplot from sklearn PCA result for python 【发布时间】:2017-11-28 04:39:37 【问题描述】:我正在尝试显示我使用来自sklearn
的PCA
函数制作的二维数据集的散点图。我的数据返回如下:
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 结果制作散点图的主要内容,如果未能解决你的问题,请参考以下文章
[python机器学习及实践]Sklearn实现主成分分析(PCA)