在降维后获得最具信息性的特征

时间:2016-09-30 09:33:53

标签: python machine-learning scikit-learn

我基本上有一个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))

虽然这在原理上起作用,但输出只是一系列整数,(我假设)对应于分类器之前的特征数组中的列号。这让我想到了这个问题:这个数组是一个降维方法的直接结果,它抛弃了所有以前附加的列标签。

所以我的问题是:有没有办法将维数减少的结果追溯到原始数据集中的实际列/标签?

1 个答案:

答案 0 :(得分:1)

你不能。

当您进行降维(如PCA)时,您得到的是一些新的向量而不是原始要素集的子集。在这个过程中你会失去信息。您可以投影原始要素集的要素,从高维空间到新(较低)空间。你不能回去。

请注意,Dimensionality ReductionFeature ExtractionFeature Selection不同。在Feature Selection中,您可以选择原始要素集的子集。

编辑:如果您决定使用特征选择技术,请查看this answer以执行您想要的操作。