我基本上有一个python脚本,它尝试了各种降维技术和各种分类器相结合。我试图为每个分类器收集信息量最大的特征:
if 'forest' in type(classifier).__name__.lower():
importances = classifier.feature_importances_
coefs_with_fns = numpy.argsort(importances)[::-1]
else:
coefs_with_fns = sorted(zip(classifier.coef_, reduced_training.columns))
虽然这在原则上是有效的,但输出只是一系列整数,(我假设)对应于分类器之前特征数组中的列号。这给我带来了一个问题:这个数组是一维降维方法的直接结果,它扔掉了所有先前附加的列标签。
所以我的问题是:有没有一种方法可以追溯降维的结果到原始数据集中的实际列/标签?
你不能。
当你做降维(如PCA)时,你得到的是一些新的向量,而不是原始特征集的子集。在这个过程中你会丢失信息。将原始特征集的特征从高维空间投影到新的(较低的)空间。你回不去了。
注意Dimensionality Reduction
或Feature Extraction
不同于Feature Selection
。在Feature Selection
中,您选择原始功能集的一个子集。
编辑:如果你决定使用特征选择技术,看看这个答案,以便做你想做的。