Move feature_importances_ to base XGBModel for XGBRegressor access (#1591)

This commit is contained in:
ccphillippi 2016-12-01 13:17:37 -05:00 committed by Tianqi Chen
parent 6f16f0ef58
commit dd477ac903

View File

@ -328,6 +328,20 @@ class XGBModel(XGBModelBase):
return evals_result
@property
def feature_importances_(self):
"""
Returns
-------
feature_importances_ : array of shape = [n_features]
"""
b = self.booster()
fs = b.get_fscore()
all_features = [fs.get(f, 0.) for f in b.feature_names]
all_features = np.array(all_features, dtype=np.float32)
return all_features / all_features.sum()
class XGBClassifier(XGBModel, XGBClassifierBase):
# pylint: disable=missing-docstring,too-many-arguments,invalid-name
@ -518,20 +532,6 @@ class XGBClassifier(XGBModel, XGBClassifierBase):
return evals_result
@property
def feature_importances_(self):
"""
Returns
-------
feature_importances_ : array of shape = [n_features]
"""
b = self.booster()
fs = b.get_fscore()
all_features = [fs.get(f, 0.) for f in b.feature_names]
all_features = np.array(all_features, dtype=np.float32)
return all_features / all_features.sum()
class XGBRegressor(XGBModel, XGBRegressorBase):
# pylint: disable=missing-docstring