sklearn - PCA 的标签点

Posted

技术标签:

【中文标题】sklearn - PCA 的标签点【英文标题】:sklearn - label points of PCA 【发布时间】:2018-09-13 02:46:54 【问题描述】:

我正在生成一个使用 scikitlearn、numpy 和 matplotlib 的 PCA。我想知道如何标记每个点(我的数据中的行)。我在 matplotlib 中找到了“注释”,但这似乎是为了标记特定坐标,或者只是按照它们出现的顺序将文本放在任意点上。我试图从中抽象出来,但由于出现在 matplot 内容之前的 PCA 部分而苦苦挣扎。有没有办法可以用 sklearn 做到这一点,而我仍在生成情节,所以我不会失去它与我从中得到它的行的联系? 这是我的代码:

# Create a Randomized PCA model that takes two components
randomized_pca = decomposition.RandomizedPCA(n_components=2) 

# Fit and transform the data to the model
reduced_data_rpca = randomized_pca.fit_transform(x)

# Create a regular PCA model 
pca = decomposition.PCA(n_components=2)

# Fit and transform the data to the model
reduced_data_pca = pca.fit_transform(x)

# Inspect the shape
reduced_data_pca.shape

# Print out the data
print(reduced_data_rpca)
print(reduced_data_pca)
def rand_jitter(arr):
    stdev = .01*(max(arr)-min(arr))
    return arr + np.random.randn(len(arr)) * stdev
colors = ['red', 'blue']
for i in range(len(colors)):
    w = reduced_data_pca[:, 0][y == i]
    z = reduced_data_pca[:, 1][y == i]
    plt.scatter(w, z, c=colors[i])
targ_names = ["Negative", "Positive"]
plt.legend(targ_names, bbox_to_anchor=(1.05, 1), loc=2, borderaxespad=0.)
plt.xlabel('First Principal Component')
plt.ylabel('Second Principal Component')
plt.title("PCA Scatter Plot")
plt.show()

【问题讨论】:

【参考方案1】:

PCA 是投影,而不是聚类(您将其标记为聚类)。

PCA 中没有标签的概念。

您可以在散点图上绘制文本,但通常它会变得过于拥挤。你已经可以在 *** 上找到 answers 了。

【讨论】:

以上是关于sklearn - PCA 的标签点的主要内容,如果未能解决你的问题,请参考以下文章

在 sklearn 中绘制 PCA 加载和双图加载(如 R 的自动绘图)

sklearn中的PCA

sklearn的PCA

Sklearn.KMeans() :获取类质心标签并引用数据集

Sklearn -PCA 人脸识别 百度网盘sklearn学习API

使用 sklearn 提取 PCA 组件