Commit 2af0dccd authored by Guolin Ke's avatar Guolin Ke
Browse files

use real feature index in feature importance.

parent c45d1d99
...@@ -84,7 +84,7 @@ public: ...@@ -84,7 +84,7 @@ public:
inline int leaf_depth(int leaf_idx) const { return leaf_depth_[leaf_idx]; } inline int leaf_depth(int leaf_idx) const { return leaf_depth_[leaf_idx]; }
/*! \brief Get feature of specific split*/ /*! \brief Get feature of specific split*/
inline int split_feature(int split_idx) const { return split_feature_[split_idx]; } inline int split_feature_real(int split_idx) const { return split_feature_real_[split_idx]; }
/*! /*!
* \brief Shrinkage for the tree's output * \brief Shrinkage for the tree's output
......
...@@ -223,7 +223,7 @@ void GBDT::Train() { ...@@ -223,7 +223,7 @@ void GBDT::Train() {
} }
fflush(output_model_file); fflush(output_model_file);
} }
FeatureImportance(models_.size()); FeatureImportance(static_cast<int>(models_.size()));
fclose(output_model_file); fclose(output_model_file);
} }
...@@ -355,7 +355,7 @@ void GBDT::FeatureImportance(const int last_iter) { ...@@ -355,7 +355,7 @@ void GBDT::FeatureImportance(const int last_iter) {
size_t* feature_importances = new size_t[max_feature_idx_ + 1]{0}; size_t* feature_importances = new size_t[max_feature_idx_ + 1]{0};
for (int iter = 0; iter < last_iter; ++iter) { for (int iter = 0; iter < last_iter; ++iter) {
for (int split_idx = 0; split_idx < models_.at(iter)->num_leaves() - 1; ++split_idx) { for (int split_idx = 0; split_idx < models_.at(iter)->num_leaves() - 1; ++split_idx) {
++feature_importances[models_.at(iter)->split_feature(split_idx)]; ++feature_importances[models_.at(iter)->split_feature_real(split_idx)];
} }
} }
std::string ret = Common::ArrayToString(feature_importances, max_feature_idx_ + 1, ' '); std::string ret = Common::ArrayToString(feature_importances, max_feature_idx_ + 1, ' ');
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment