【发布时间】:2019-07-21 12:52:53
【问题描述】:
我尝试使用 PCA 技术进行集群。
在我的情况下,我有 n 部电影的用户进行了评论。 我以这种方式创建了一个表用户 x 电影:
User Movie
0 1 2 3 4
0 2 0 5 0 0
1 0 1 1 0 0
2 0 5 5 5 0
如果用户不评论电影,则为 0,如果他评论 1 到 5 星,则为 1-5。 形状为 (6040, 3706)
我规范化数据和之后 我将此代码用于 PCA(来自 sklearn)
pca = PCA(0.7)
pca_result = pca.fit_transform(X_std)
a = pca_result[:,0]
b = pca_result[:,1]
所以对我来说是非常具有代表性的价值 0.7 我的新形状是 (6040, 650)
在我看到尺寸后会以这种方式绘制(但我认为不是很重要)
fig = plt.figure(figsize = (20,16))
ax = fig.add_subplot(111)
ax.scatter(a,b, alpha = 1)
plt.title('Method: PCA')
plt.show()
但是通过这种方式,我将 A 放在 X 轴上,将 B 放在 Y 轴上,所以我认为只使用二维(因为我看到所有示例都是二维的)。
所以我的问题是我没有绘制所有维度? (在我的情况下,还有 650 个维度?) 我做错了什么?
也许我的问题可能很愚蠢,但我正在努力理解这个话题。
【问题讨论】:
-
您针对 650 个“幸存”因素绘制了
a值与b值。我希望您上面的图有 650 个数据点。或者也许这是所有 3706 个点的变量图,接近 0 的点是最不重要的。我不知道,因为你没有包含足够的代码来遵循算法。 -
对我来说 a 和 b 是 6040 的 2 个向量 @Prune 我没有更多代码,在此代码之前我只是使用 sklearn 的归一化并为电影创建一个矩阵用户......没什么很多
标签: python matplotlib pca dimensionality-reduction