web-dev-qa-db-ja.com

Sklearnを使用した1つのホットエンコーディングの後に列名を付けますか?

これが私の質問です、私は誰かが私がそれを理解するのを助けることができることを願っています。

説明するために、私のデータセットには10​​以上のカテゴリカラムがあり、それぞれが200~300カテゴリがあります。それらをバイナリ値に変換したいです。そのために、最初のラベルエンコーダを使用して文字列カテゴリを数値に変換しました。ラベルエンコーダコードと出力を以下に示します。

https://i.stack.imgur.com/MIVHV.png

ラベルエンコーダの後、私はScikit-Learnから1つのホットエンコーダを使用しました、そしてそれはうまくいきます。しかし、問題は、1つのホットエンコーダの後に列名が必要です。たとえば、エンコード前のカテゴリ値を持つA列A。 A = [1,2,3,4,..] _

エンコード後のそのようなものであるべきです。

A-1、A-2、A-3

1つのホットエンコーディングの後に列名を(古い列名 - 値の名前または番号)に割り当てる方法がわかります。これが私の1つのホットエンコーディングとそれが出力です。

https://i.stack.imgur.com/kgrNa.png

私はAnnを訓練したので名前の付いた列が必要ですが、データが表示されるたびに、過去のすべてのデータを再度変換することはできません。だから、私は毎回新しいものだけを追加したいです。とにかくありがとう..

10
Aditya Pratama

.get_feature_names()属性を使用して列名を取得できます。

>>> ohenc.get_feature_names()
>>> x_cat_df.columns = ohenc.get_feature_names()
 _

詳細な例は ここ です。

6
Venkatachalam