def selected_features(self):
"""Get the number of times a feature was selected
"""
if len(self.best_estimator_):
# Get selected features from the best estimator :
iterator = product(range(self._rep), range(self._nfolds))
fselected = []
featrange = np.arange(self._nfeat)[np.newaxis, ...]
for k, i in iterator:
estimator = self.best_estimator_[k][i].get_params()['features']
fselected.extend(list(estimator.transform(featrange).ravel().astype(int)))
# Get the count for each feature :
bins = np.bincount(np.array(fselected))
selectedBins = np.zeros((self._nfeat,), dtype=int)
selectedBins[np.arange(len(bins))] = bins
# Put everything in a Dataframe :
resum = pd.DataFrame({'Name':self._name, 'Count':selectedBins,
'Percent':100*selectedBins/selectedBins.sum()}, columns=['Name', 'Count', 'Percent'])
return resum
else:
print('You must run the fit() method before')
评论列表
文章目录