2015-10-15 93 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的功能名稱列表中的這些索引獲取功能名稱。