我一直在测试 PCA 和 LDA 在分类我想要自动识别的 3 种不同类型的图像标签方面的效果。在我的代码中,X 是我的数据矩阵,其中每一行是图像中的像素,y 是一维数组,说明每一行的分类。
import matplotlib.pyplot as plt
from sklearn import datasets
from sklearn.decomposition import PCA
from sklearn.lda import LDA
pca = PCA(n_components=2)
X_r = pca.fit(X).transform(X)
plt.figure(figsize = (35, 20))
plt.scatter(X_r[:, 0], X_r[:, 1], c=y, s=200)
lda = LDA(n_components=2)
X_lda = lda.fit(X, y).transform(X)
plt.figure(figsize = (35, 20))
plt.scatter(X_lda[:, 0], X_lda[:, 1], c=y, s=200)
使用 LDA,我最终得到了 3 个清晰可辨的集群,它们之间只有轻微的重叠。现在,如果我有一个要分类的新图像,一旦将其转换为一维数组,我如何预测它应该落入哪个簇,如果它离中心太远,我怎么能说分类是“不确定的” “?我也很好奇“.transform(X)”函数在我适应它后对我的数据做了什么。