让X∈Rn×m成为您的数据和Z=XT∈Rn×k是 PCA 转换的数据。
我们可以使用“pca 特征选择”进行监督分类吗?当我们使用降维时,标签会发生什么?
是的。它通常用于特征选择和线性降维。标签没有任何反应。一开始你有训练对(xi,yi), 在 PCA 之后你有(zi,yi)反而。
如果我理解正确,当我们使用 pca 进行特征提取之后,我们有旧特征但在新维度中,那么我们可以说这些是新特征还是混合特征?
您有新功能,这些新功能只是旧功能的线性组合。另一种查看方式是,您在数据空间中选择了一组新的(正交)轴(可能会丢弃其中的一些),然后将数据投影到这个新的子空间上。所以Z是(字面上)来自的特征的混合X.
“特征提取”与 pca 中的“特征选择”不同吗?我的意思是它们是用不同的方式做的两件事。
它可以是两者或其中之一。对我来说,特征提取意味着从原始数据中获取潜在描述符。因此,如果 PCA 在原始数据上运行,那么它就是在进行特征提取。否则,它不是。至于特征选择,我想说,每当您删除任何主成分(即执行线性降维)时,您就是在进行特征选择,因为您选择了一些特征而不是其他特征。
如何使用 pca 选择有效的特征?互联网上有很多参考资料,但我找不到任何关于 pca 特征选择的 MATLAB 示例代码或视频(在 youtube 上),我的意思是理论上不是,我正在寻找任何语言的示例代码(Paython,Matlab ,ETC)。
人们倾向于(a)根据归一化奇异值选择一个固定的方差来解释(例如,解释了原始方差的 90%)或(b)处理所选特征的数量(k) 作为超参数,并使用它在验证集上进行交叉验证。关于解释方差及其与重构误差的联系的一些讨论在这里或这里。
至于实用的代码示例,scikit-learn 库有一些简单的示例:
from sklearn import decomposition, datasets
k = 3
iris = datasets.load_iris()
X = iris.data
Y = iris.target
pca = decomposition.PCA(n_components=k)
pca.fit(X)
Z = pca.transform(X)