| 246 | } |
| 247 | |
| 248 | std::string Tree::ToJSON() const { |
| 249 | std::stringstream str_buf; |
| 250 | str_buf << std::setprecision(std::numeric_limits<double>::digits10 + 2); |
| 251 | str_buf << "\"num_leaves\":" << num_leaves_ << "," << '\n'; |
| 252 | str_buf << "\"num_cat\":" << num_cat_ << "," << '\n'; |
| 253 | str_buf << "\"shrinkage\":" << shrinkage_ << "," << '\n'; |
| 254 | if (num_leaves_ == 1) { |
| 255 | str_buf << "\"tree_structure\":{" << "\"leaf_value\":" << leaf_value_[0] << "}" << '\n'; |
| 256 | } else { |
| 257 | str_buf << "\"tree_structure\":" << NodeToJSON(0) << '\n'; |
| 258 | } |
| 259 | |
| 260 | return str_buf.str(); |
| 261 | } |
| 262 | |
| 263 | std::string Tree::NodeToJSON(int index) const { |
| 264 | std::stringstream str_buf; |