にはどうすれば適切に私のアルゴリズムのトレーニングと検証を終えた後、「ワンホットエンコードされた」機能の名称を表示することができますか?私は、それぞれの特徴の名前とその重要性をきちんと表示したい。以下は、私が試したものです:表示名
表示機能の重要性:
grid_search.best_estimator_.feature_importances_
array([ 7.67359589e-02, 7.20731884e-02, 4.38667330e-02,
1.69222269e-02, 1.51816327e-02, 1.66947835e-02,
1.56858183e-02, 3.43347923e-01, 5.95555727e-02,
7.65422356e-02, 1.11224727e-01, 1.02677088e-02,
1.32720377e-01, 1.06447326e-04, 4.45207929e-03,
4.62258699e-03])
ゲットワンホットカテゴリ名:
cat_one_hot_attribs = list(encoder.classes_)
print(cat_one_hot_attribs)
['<1H OCEAN', 'INLAND', 'ISLAND', 'NEAR BAY', 'NEAR OCEAN']
名前の残りの部分(他のカテゴリ)を取得します:
num_attribs = list(X_train)
['longitude',
'latitude',
'housing_median_age',
'total_rooms',
'total_bedrooms',
'population',
'households',
'median_income',
'rooms_per_household',
'bedrooms_per_household',
'population_per_household',
0,
1,
2,
3,
4]
は、今私は、次の操作を行います。
attributes = num_attribs + cat_one_hot_attribs
print(pd.DataFrame(sorted(zip(feature_importance, attributes), reverse=True)))
しかし、私は、次を得る:私は他の方法を試してみましたが、すべてが失敗した
0 1
0 0.343348 median_income
1 0.132720 1
2 0.111225 population_per_household
3 0.076736 longitude
4 0.076542 bedrooms_per_household
5 0.072073 latitude
6 0.059556 rooms_per_household
7 0.043867 housing_median_age
8 0.016922 total_rooms
9 0.016695 population
10 0.015686 households
11 0.015182 total_bedrooms
12 0.010268 0
13 0.004623 4
14 0.004452 3
15 0.000106 2
。
これを正しく表示する方法をお勧めしますか?ありがとうございました。
編集:
@cᴏʟᴅsᴘᴇᴇᴅの答えから、私は次のことを試してみました:
feature_importance = grid_search.best_estimator_.feature_importances_
cat_one_hot_attribs = list(encoder.classes_)
num_attribs = list(X_train)
attributes = num_attribs + cat_one_hot_attribs
vals = sorted(zip(feature_importance, attributes), key=lambda x: x[0], reverse=True)
df = pd.DataFrame(vals)
print(df)
はまだ上記のような出力を得ます。
は、どのようにそれをソートしたいですか? –
最高から最高までが最高です。 – JohnWayne360