Scikit-Learnから分散スレッショルドを実行した後、いくつかのフィーチャが削除されます。私は何かシンプルで愚かなことをしていると感じていますが、残っている機能の名前を残したいと思います。以下のコード:Scikitフィーチャ選択後のフィーチャ名の保持
def VarianceThreshold_selector(data):
selector = VarianceThreshold(.5)
selector.fit(data)
selector = (pd.DataFrame(selector.transform(data)))
return selector
x = VarianceThreshold_selector(data)
print(x)
は、次のデータを変更する(これは、行のほんの一部である):これに
Survived Pclass Sex Age SibSp Parch Nonsense
0 3 1 22 1 0 0
1 1 2 38 1 0 0
1 3 2 26 0 0 0
(行の再度だけ小さなサブセット)
0 1 2 3
0 3 22.0 1 0
1 1 38.0 1 0
2 3 26.0 0 0
get_supportメソッドを使用すると、これらはPclass、Age、Sibsp、およびParchであることがわかります。したがって、私はむしろこのようなものを返します。
Pclass Age Sibsp Parch
0 3 22.0 1 0
1 1 38.0 1 0
2 3 26.0 0 0
これを行う簡単な方法はありますか?私はScikit Learnで非常に新しいので、おそらくちょうど何かばかげている。
Scikit自体には、指定したカラム等と 'pandas'データ型をサポートしていませんので、あなたはscikitオブジェクトの' .transform'方法のようなものを使用して、いつでも、あなたはそのすべてを失うことになるだろう情報。別々にトラッキングすることができれば(つまり、記述したように列名を取得する)、新しいDataFrameを再作成した後に新しい列名を指定して戻すことができます。 – BrenBarn