一维数组映射到2D图,而3D数组映射到2D图

时间:2020-07-13 17:49:14

标签: python matplotlib multidimensional-array pca

我正在将PCA和SVM应用于Sci-Kit Learn的load_digits数据集。

这是一段代码:

from sklearn.datasets import load_digits
from sklearn.decomposition import PCA
from sklearn.preprocessing import scale
from sklearn.svm import SVC

X_digits, y_digits = load_digits(return_X_y=True)
data = scale(X_digits)
reduced_data = PCA(n_components=2).fit_transform(data)

clf = SVC(kernel='rbf', C=1e6)
clf.fit(reduced_data, y_digits)

在上面的代码中,reduced_data是2D numpy数组,而y_digits是1D numpy数组。

但是,当我编写以下代码时,我得到了两行的二维图:

plt.plot(y_digits,'o') 
plt.plot(reduced_data,y_digits,'o')

第一行不会出现错误(因为y_digits是1D,而matplotlib无法绘制1D

曲线),以及第二行的3D图,因为有reduced_data和两个输入变量

output的变量y_digits?我对应该如何使用matplotlib和解释结果感到困惑

1 个答案:

答案 0 :(得分:0)

我不是专家,但是我相信y_digits数组的等效形式是使用reshape(-1,1)重塑一维数组,因此我相信matplotlib会从值的位置解释ay。数组。这就是为什么当您调用y_digits.shape时输出为(1797,)逗号表示值在列中的原因。

如果您想要3D图,则应特别称呼它:

nodes