我在pandas数据帧(X)上运行sk-learn分类器。由于缺少一些数据,我使用sk learn的插补器如下:
imp=Imputer(strategy='mean',axis=0)
X=imp.fit_transform(X)
但是,这样做之后,我的特征数量减少了,大概是因为填充器只获得空列的rid。在
这很好,只是填充器将我的数据帧转换为numpy ndarray,因此我丢失了列/特性名。稍后我需要它们来识别重要特性(使用clf.feature_importances_
)。在
如何知道中功能的名称clf.特性重要性_,如果输入程序删除了我的初始数据帧的某些列?在
您可以这样做:
现在您有了有效列的旧索引(这些列在矩阵X中的索引)。您可以通过这些索引从旧X的特性名称列表中获取特性名称
这比它应该做的更困难。答案是SimpleImputer应该得到一个参数add_indicator=True。然后,试穿后,简单_输入指示器获取该类型的另一个转换器的值sklearn.impute.MissingIndicator公司. 这又将有一个变量features_u,其中包含这些特性。在
大致如下:
我在SimpleImputer上实现了一个瘦包装器,名为SimpleImputerWithFeatureNames,它为您提供特性名称。它在github上提供。在
^{pr2}$相关问题 更多 >
编程相关推荐