首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >随机Forrest feature_importance,如何回溯源?

随机Forrest feature_importance,如何回溯源?
EN

Stack Overflow用户
提问于 2022-01-30 18:53:13
回答 1查看 38关注 0票数 1

情况

我有一个sklearn.ensemble.RandomForestRegressor模型,希望找到最重要的特性。

米维

代码语言:javascript
运行
复制
from sklearn.preprocessing import MinMaxScaler
from sklearn.preprocessing import OneHotEncoder
from sklearn.compose import ColumnTransformer

import pandas as pd

df = pd.DataFrame({
    "ColA":[1,2,3,4,5,6,7,8,9,10],
    "ColB":["CharA","CharB","CharC","CharD","CharE","CharF","CharG","CharH","CharI","CharJ"],
    "ColC":[132,1000,5,20,165,852,403,680,481,6],
    "ColD":[1,2,3,4,5,6,7,1,2,3],
    "ColE":[2,26,5,7,1,2,3,12,65,12]
})

num_attribs=["ColA", "ColC"]
cat_attribs=["ColB", "ColD", "ColE"]

full_pipeline = ColumnTransformer([
    ("num", MinMaxScaler(), num_attribs), 
    ("cat", OneHotEncoder(), cat_attribs) 
])

prep_df = full_pipeline.fit_transform(df)

prep_df.toarray()[0]

输出:

代码语言:javascript
运行
复制
array([0.        , 0.12763819, 1.        , 0.        , 0.        ,
       0.        , 0.        , 0.        , 0.        , 0.        ,
       0.        , 0.        , 1.        , 0.        , 0.        ,
       0.        , 0.        , 0.        , 0.        , 0.        ,
       1.        , 0.        , 0.        , 0.        , 0.        ,
       0.        , 0.        ])

请注意:这只是演示代码,我知道如果我省略了toarray,这将很容易,但在我的实际数据(~1兆行,~70 70cols)它的结果是这种格式。

问题

我想追溯到最初的专栏,但我在ColumnTransformer中使用了ColumnTransformer。所以没有inverse_transform函数,而且我比编码前有更多的列。

问题

如果model.feature_importances_.argmax()说-> 15,我如何才能找出哪个源列是?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-01-30 20:50:32

您可以在列转换器的转换器上使用get_feature_names_out()并将其索引到该数组中。对于你的例子来说,这读起来就像

代码语言:javascript
运行
复制
idx = model.feature_importances_.argmax()
cols = [col for t in full_pipeline.transformers_ for col in t[1].get_feature_names_out()]
name = col[idx]

请注意,对于一个热门列,您将得到像columnname_categoryname这样的名称,这可能比列名本身更有趣。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/70917884

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档