2016-09-30 7 views
-2

私は基本的に、様々な分類子と組み合わせたさまざまな次元削減技法を試みる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

できません。

次元削減(PCAなど)を行うと、元のフィーチャセットの一部ではなく、新しいベクトルがいくつか得られます。そしてその過程で情報を失う。元のフィーチャセットのフィーチャを高次元の空間から新しい(より低い)空間に投影します。あなたは元に戻ることはできません。

Dimensionality ReductionまたはFeature Extractionは、Feature Selectionとは異なります。 Feature Selectionでは、元のフィーチャセットのサブセットを選択します。

編集:機能選択テクニックを使用する場合は、this answerをご覧ください。

関連する問題