2015-10-15 130 views
1

我在熊猫数据框(X)上运行sk-learn分类器。因为有些数据丢失,我使用SK-学习的imputer这样的:知道插补后的功能名称

imp=Imputer(strategy='mean',axis=0) 
X=imp.fit_transform(X) 

这样做,但是,我的功能数量减少,大概是因为刚刚imputer得到空列的RID后。

这很好,除了imputer将我的数据框转换为numpy ndarray,因此我失去了列/功能名称。我稍后需要它们来确定重要功能(使用clf.feature_importances_)。

如何知道clf.feature_importances_中功能的名称,如果我的初始数据框的某些列已被注释器删除?

回答

2

,你可以这样做:

invalid_mask = np.isnan(imp.statistics_) 
valid_mask = np.logical_not(invalid_mask) 
valid_idx, = np.where(valid_mask) 

现在你有旧索引(索引,这些列矩阵X有)为有效列。您可以通过旧X的功能名称列表中的这些索引获取功能名称。