Commit 044f79aa authored by Guolin Ke's avatar Guolin Ke
Browse files

support int64_t for CSR/CSR's indptr

parent 31b19afc
...@@ -26,6 +26,11 @@ ...@@ -26,6 +26,11 @@
typedef void* DatesetHandle; typedef void* DatesetHandle;
typedef void* BoosterHandle; typedef void* BoosterHandle;
#define dtype_float32 (0)
#define dtype_float64 (1)
#define dtype_int32 (2)
#define dtype_int64 (3)
/*! /*!
* \brief get string message of the last error * \brief get string message of the last error
* all function in this file will return 0 when success * all function in this file will return 0 when success
...@@ -62,9 +67,10 @@ DllExport int LGBM_CreateDatasetFromBinaryFile(const char* filename, ...@@ -62,9 +67,10 @@ DllExport int LGBM_CreateDatasetFromBinaryFile(const char* filename,
/*! /*!
* \brief create a dataset from CSR format * \brief create a dataset from CSR format
* \param indptr pointer to row headers * \param indptr pointer to row headers
* \param indptr_type 0:int_32 1:int_64
* \param indices findex * \param indices findex
* \param data fvalue * \param data fvalue
* \param float_type 0 for float_32 1 for float_64 * \param data_type 0 for float_32 1 for float_64
* \param nindptr number of rows in the matix + 1 * \param nindptr number of rows in the matix + 1
* \param nelem number of nonzero elements in the matrix * \param nelem number of nonzero elements in the matrix
* \param num_col number of columns; when it's set to 0, then guess from data * \param num_col number of columns; when it's set to 0, then guess from data
...@@ -73,13 +79,14 @@ DllExport int LGBM_CreateDatasetFromBinaryFile(const char* filename, ...@@ -73,13 +79,14 @@ DllExport int LGBM_CreateDatasetFromBinaryFile(const char* filename,
* \param out created dataset * \param out created dataset
* \return 0 when success, -1 when failure happens * \return 0 when success, -1 when failure happens
*/ */
DllExport int LGBM_CreateDatasetFromCSR(const int32_t* indptr, DllExport int LGBM_CreateDatasetFromCSR(const void* indptr,
int indptr_type,
const int32_t* indices, const int32_t* indices,
const void* data, const void* data,
int float_type, int data_type,
uint64_t nindptr, int64_t nindptr,
uint64_t nelem, int64_t nelem,
uint64_t num_col, int64_t num_col,
const char* parameters, const char* parameters,
const DatesetHandle* reference, const DatesetHandle* reference,
DatesetHandle* out); DatesetHandle* out);
...@@ -87,9 +94,10 @@ DllExport int LGBM_CreateDatasetFromCSR(const int32_t* indptr, ...@@ -87,9 +94,10 @@ DllExport int LGBM_CreateDatasetFromCSR(const int32_t* indptr,
/*! /*!
* \brief create a dataset from CSC format * \brief create a dataset from CSC format
* \param col_ptr pointer to col headers * \param col_ptr pointer to col headers
* \param col_ptr_type 0:int_32 1:int_64
* \param indices findex * \param indices findex
* \param data fvalue * \param data fvalue
* \param float_type 0 for float_32 1 for float_64 * \param data_type 0 for float_32 1 for float_64
* \param ncol_ptr number of rows in the matix + 1 * \param ncol_ptr number of rows in the matix + 1
* \param nelem number of nonzero elements in the matrix * \param nelem number of nonzero elements in the matrix
* \param num_row number of rows; when it's set to 0, then guess from data * \param num_row number of rows; when it's set to 0, then guess from data
...@@ -98,13 +106,14 @@ DllExport int LGBM_CreateDatasetFromCSR(const int32_t* indptr, ...@@ -98,13 +106,14 @@ DllExport int LGBM_CreateDatasetFromCSR(const int32_t* indptr,
* \param out created dataset * \param out created dataset
* \return 0 when success, -1 when failure happens * \return 0 when success, -1 when failure happens
*/ */
DllExport int LGBM_CreateDatasetFromCSC(const int32_t* col_ptr, DllExport int LGBM_CreateDatasetFromCSC(const void* col_ptr,
int col_ptr_type,
const int32_t* indices, const int32_t* indices,
const void* data, const void* data,
int float_type, int data_type,
uint64_t ncol_ptr, int64_t ncol_ptr,
uint64_t nelem, int64_t nelem,
uint64_t num_row, int64_t num_row,
const char* parameters, const char* parameters,
const DatesetHandle* reference, const DatesetHandle* reference,
DatesetHandle* out); DatesetHandle* out);
...@@ -112,7 +121,7 @@ DllExport int LGBM_CreateDatasetFromCSC(const int32_t* col_ptr, ...@@ -112,7 +121,7 @@ DllExport int LGBM_CreateDatasetFromCSC(const int32_t* col_ptr,
/*! /*!
* \brief create dataset from dense matrix * \brief create dataset from dense matrix
* \param data pointer to the data space * \param data pointer to the data space
* \param float_type 0 for float_32 1 for float_64 * \param data_type 0 for float_32 1 for float_64
* \param nrow number of rows * \param nrow number of rows
* \param ncol number columns * \param ncol number columns
* \param is_row_major 1 for row major, 0 for column major * \param is_row_major 1 for row major, 0 for column major
...@@ -122,7 +131,7 @@ DllExport int LGBM_CreateDatasetFromCSC(const int32_t* col_ptr, ...@@ -122,7 +131,7 @@ DllExport int LGBM_CreateDatasetFromCSC(const int32_t* col_ptr,
* \return 0 when success, -1 when failure happens * \return 0 when success, -1 when failure happens
*/ */
DllExport int LGBM_CreateDatasetFromMat(const void* data, DllExport int LGBM_CreateDatasetFromMat(const void* data,
int float_type, int data_type,
int32_t nrow, int32_t nrow,
int32_t ncol, int32_t ncol,
int is_row_major, int is_row_major,
...@@ -151,13 +160,13 @@ DllExport int LGBM_DatasetSaveBinary(DatesetHandle handle, ...@@ -151,13 +160,13 @@ DllExport int LGBM_DatasetSaveBinary(DatesetHandle handle,
* \param field_name field name, can be label, weight, group * \param field_name field name, can be label, weight, group
* \param field_data pointer to vector * \param field_data pointer to vector
* \param num_element number of element in field_data * \param num_element number of element in field_data
* \param type float_32:0, uint32_t:1 * \param type float_32:0, int32_t:1
* \return 0 when success, -1 when failure happens * \return 0 when success, -1 when failure happens
*/ */
DllExport int LGBM_DatasetSetField(DatesetHandle handle, DllExport int LGBM_DatasetSetField(DatesetHandle handle,
const char* field_name, const char* field_name,
const void* field_data, const void* field_data,
uint64_t num_element, int64_t num_element,
int type); int type);
/*! /*!
...@@ -166,12 +175,12 @@ DllExport int LGBM_DatasetSetField(DatesetHandle handle, ...@@ -166,12 +175,12 @@ DllExport int LGBM_DatasetSetField(DatesetHandle handle,
* \param field_name field name * \param field_name field name
* \param out_len used to set result length * \param out_len used to set result length
* \param out_ptr pointer to the result * \param out_ptr pointer to the result
* \param out_type float_32:0, uint32_t:1 * \param out_type float_32:0, int32_t:1
* \return 0 when success, -1 when failure happens * \return 0 when success, -1 when failure happens
*/ */
DllExport int LGBM_DatasetGetField(DatesetHandle handle, DllExport int LGBM_DatasetGetField(DatesetHandle handle,
const char* field_name, const char* field_name,
uint64_t* out_len, int64_t* out_len,
const void** out_ptr, const void** out_ptr,
int* out_type); int* out_type);
...@@ -182,7 +191,7 @@ DllExport int LGBM_DatasetGetField(DatesetHandle handle, ...@@ -182,7 +191,7 @@ DllExport int LGBM_DatasetGetField(DatesetHandle handle,
* \return 0 when success, -1 when failure happens * \return 0 when success, -1 when failure happens
*/ */
DllExport int LGBM_DatasetGetNumData(DatesetHandle handle, DllExport int LGBM_DatasetGetNumData(DatesetHandle handle,
uint64_t* out); int64_t* out);
/*! /*!
* \brief get number of features * \brief get number of features
...@@ -191,7 +200,7 @@ DllExport int LGBM_DatasetGetNumData(DatesetHandle handle, ...@@ -191,7 +200,7 @@ DllExport int LGBM_DatasetGetNumData(DatesetHandle handle,
* \return 0 when success, -1 when failure happens * \return 0 when success, -1 when failure happens
*/ */
DllExport int LGBM_DatasetGetNumFeature(DatesetHandle handle, DllExport int LGBM_DatasetGetNumFeature(DatesetHandle handle,
uint64_t* out); int64_t* out);
// --- start Booster interfaces // --- start Booster interfaces
...@@ -261,7 +270,7 @@ DllExport int LGBM_BoosterUpdateOneIterCustom(BoosterHandle handle, ...@@ -261,7 +270,7 @@ DllExport int LGBM_BoosterUpdateOneIterCustom(BoosterHandle handle,
*/ */
DllExport int LGBM_BoosterEval(BoosterHandle handle, DllExport int LGBM_BoosterEval(BoosterHandle handle,
int data, int data,
uint64_t* out_len, int64_t* out_len,
float* out_results); float* out_results);
/*! /*!
...@@ -272,7 +281,7 @@ DllExport int LGBM_BoosterEval(BoosterHandle handle, ...@@ -272,7 +281,7 @@ DllExport int LGBM_BoosterEval(BoosterHandle handle,
* \return 0 when success, -1 when failure happens * \return 0 when success, -1 when failure happens
*/ */
DllExport int LGBM_BoosterGetScore(BoosterHandle handle, DllExport int LGBM_BoosterGetScore(BoosterHandle handle,
uint64_t* out_len, int64_t* out_len,
const float** out_result); const float** out_result);
/*! /*!
...@@ -286,16 +295,17 @@ this can be used to support customized eval function ...@@ -286,16 +295,17 @@ this can be used to support customized eval function
*/ */
DllExport int LGBM_BoosterGetPredict(BoosterHandle handle, DllExport int LGBM_BoosterGetPredict(BoosterHandle handle,
int data, int data,
uint64_t* out_len, int64_t* out_len,
float* out_result); float* out_result);
/*! /*!
* \brief make prediction for an new data set * \brief make prediction for an new data set
* \param handle handle * \param handle handle
* \param indptr pointer to row headers * \param indptr pointer to row headers
* \param indptr_type 0:int_32 1:int_64
* \param indices findex * \param indices findex
* \param data fvalue * \param data fvalue
* \param float_type 0:float_32 1:float64 * \param data_type 0:float_32 1:float64
* \param nindptr number of rows in the matix + 1 * \param nindptr number of rows in the matix + 1
* \param nelem number of nonzero elements in the matrix * \param nelem number of nonzero elements in the matrix
* \param num_col number of columns; when it's set to 0, then guess from data * \param num_col number of columns; when it's set to 0, then guess from data
...@@ -308,22 +318,23 @@ DllExport int LGBM_BoosterGetPredict(BoosterHandle handle, ...@@ -308,22 +318,23 @@ DllExport int LGBM_BoosterGetPredict(BoosterHandle handle,
* \return 0 when success, -1 when failure happens * \return 0 when success, -1 when failure happens
*/ */
DllExport int LGBM_BoosterPredictForCSR(BoosterHandle handle, DllExport int LGBM_BoosterPredictForCSR(BoosterHandle handle,
const int32_t* indptr, const void* indptr,
int indptr_type,
const int32_t* indices, const int32_t* indices,
const void* data, const void* data,
int float_type, int data_type,
uint64_t nindptr, int64_t nindptr,
uint64_t nelem, int64_t nelem,
uint64_t num_col, int64_t num_col,
int predict_type, int predict_type,
uint64_t n_used_trees, int64_t n_used_trees,
double* out_result); double* out_result);
/*! /*!
* \brief make prediction for an new data set * \brief make prediction for an new data set
* \param handle handle * \param handle handle
* \param data pointer to the data space * \param data pointer to the data space
* \param float_type 0:float_32 1:float64 * \param data_type 0:float_32 1:float64
* \param nrow number of rows * \param nrow number of rows
* \param ncol number columns * \param ncol number columns
* \param is_row_major 1 for row major, 0 for column major * \param is_row_major 1 for row major, 0 for column major
...@@ -337,12 +348,12 @@ DllExport int LGBM_BoosterPredictForCSR(BoosterHandle handle, ...@@ -337,12 +348,12 @@ DllExport int LGBM_BoosterPredictForCSR(BoosterHandle handle,
*/ */
DllExport int LGBM_BoosterPredictForMat(BoosterHandle handle, DllExport int LGBM_BoosterPredictForMat(BoosterHandle handle,
const void* data, const void* data,
int float_type, int data_type,
int32_t nrow, int32_t nrow,
int32_t ncol, int32_t ncol,
int is_row_major, int is_row_major,
int predict_type, int predict_type,
uint64_t n_used_trees, int64_t n_used_trees,
double* out_result); double* out_result);
/*! /*!
...@@ -356,4 +367,23 @@ DllExport int LGBM_BoosterSaveModel(BoosterHandle handle, ...@@ -356,4 +367,23 @@ DllExport int LGBM_BoosterSaveModel(BoosterHandle handle,
int num_used_model, int num_used_model,
const char* filename); const char* filename);
std::function<std::vector<double>(int row_idx)>
RowFunctionFromDenseMatric(const void* data, int num_row, int num_col, int data_type, int is_row_major);
std::function<std::vector<std::pair<int, double>>(int row_idx)>
RowPairFunctionFromDenseMatric(const void* data, int num_row, int num_col, int data_type, int is_row_major);
std::function<std::vector<std::pair<int, double>>(int idx)>
RowFunctionFromCSR(const void* indptr, int indptr_type, const int32_t* indices,
const void* data, int data_type, int64_t nindptr, int64_t nelem);
std::function<std::vector<std::pair<int, double>>(int idx)>
ColumnFunctionFromCSC(const void* col_ptr, int col_ptr_type, const int32_t* indices,
const void* data, int data_type, int64_t ncol_ptr, int64_t nelem);
std::vector<double>
SampleFromOneColumn(const std::vector<std::pair<int, double>>& data, const std::vector<size_t>& indices);
#endif // LIGHTGBM_C_API_H_ #endif // LIGHTGBM_C_API_H_
...@@ -277,9 +277,13 @@ public: ...@@ -277,9 +277,13 @@ public:
void FinishLoad(); void FinishLoad();
void SetField(const char* field_name, const void* field_data, data_size_t num_element, int type); bool SetFloatField(const char* field_name, const float* field_data, data_size_t num_element);
void GetField(const char* field_name, uint64_t* out_len, const void** out_ptr, int* out_type); bool SetIntField(const char* field_name, const int* field_data, data_size_t num_element);
bool GetFloatField(const char* field_name, int64_t* out_len, const float** out_ptr);
bool GetIntField(const char* field_name, int64_t* out_len, const int** out_ptr);
/*! /*!
* \brief Save current dataset into binary file, will save to "filename.bin" * \brief Save current dataset into binary file, will save to "filename.bin"
......
...@@ -393,181 +393,6 @@ inline void SortForPair(std::vector<T1>& keys, std::vector<T2>& values, size_t s ...@@ -393,181 +393,6 @@ inline void SortForPair(std::vector<T1>& keys, std::vector<T2>& values, size_t s
} }
inline std::function<std::vector<double>(int row_idx)>
RowFunctionFromDenseMatric(const void* data, int num_row, int num_col, int float_type, int is_row_major) {
if (float_type == 0) {
const float* data_ptr = reinterpret_cast<const float*>(data);
if (is_row_major) {
return [data_ptr, num_col, num_row](int row_idx) {
CHECK(row_idx < num_row);
std::vector<double> ret;
auto tmp_ptr = data_ptr + num_col * row_idx;
for (int i = 0; i < num_col; ++i) {
ret.push_back(static_cast<double>(*(tmp_ptr + i)));
}
return ret;
};
} else {
return [data_ptr, num_col, num_row](int row_idx) {
CHECK(row_idx < num_row);
std::vector<double> ret;
for (int i = 0; i < num_col; ++i) {
ret.push_back(static_cast<double>(*(data_ptr + num_row * i + row_idx)));
}
return ret;
};
}
} else {
const double* data_ptr = reinterpret_cast<const double*>(data);
if (is_row_major) {
return [data_ptr, num_col, num_row](int row_idx) {
CHECK(row_idx < num_row);
std::vector<double> ret;
auto tmp_ptr = data_ptr + num_col * row_idx;
for (int i = 0; i < num_col; ++i) {
ret.push_back(static_cast<double>(*(tmp_ptr + i)));
}
return ret;
};
} else {
return [data_ptr, num_col, num_row](int row_idx) {
CHECK(row_idx < num_row);
std::vector<double> ret;
for (int i = 0; i < num_col; ++i) {
ret.push_back(static_cast<double>(*(data_ptr + num_row * i + row_idx)));
}
return ret;
};
}
}
}
inline std::function<std::vector<std::pair<int, double>>(int row_idx)>
RowPairFunctionFromDenseMatric(const void* data, int num_row, int num_col, int float_type, int is_row_major) {
if (float_type == 0) {
const float* data_ptr = reinterpret_cast<const float*>(data);
if (is_row_major) {
return [data_ptr, num_col, num_row](int row_idx) {
CHECK(row_idx < num_row);
std::vector<std::pair<int, double>> ret;
auto tmp_ptr = data_ptr + num_col * row_idx;
for (int i = 0; i < num_col; ++i) {
ret.emplace_back(i, static_cast<double>(*(tmp_ptr + i)));
}
return ret;
};
} else {
return [data_ptr, num_col, num_row](int row_idx) {
CHECK(row_idx < num_row);
std::vector<std::pair<int, double>> ret;
for (int i = 0; i < num_col; ++i) {
ret.emplace_back(i, static_cast<double>(*(data_ptr + num_row * i + row_idx)));
}
return ret;
};
}
} else {
const double* data_ptr = reinterpret_cast<const double*>(data);
if (is_row_major) {
return [data_ptr, num_col, num_row](int row_idx) {
CHECK(row_idx < num_row);
std::vector<std::pair<int, double>> ret;
auto tmp_ptr = data_ptr + num_col * row_idx;
for (int i = 0; i < num_col; ++i) {
ret.emplace_back(i, static_cast<double>(*(tmp_ptr + i)));
}
return ret;
};
} else {
return [data_ptr, num_col, num_row](int row_idx) {
CHECK(row_idx < num_row);
std::vector<std::pair<int, double>> ret;
for (int i = 0; i < num_col; ++i) {
ret.emplace_back(i, static_cast<double>(*(data_ptr + num_row * i + row_idx)));
}
return ret;
};
}
}
}
inline std::function<std::vector<std::pair<int, double>>(int idx)>
RowFunctionFromCSR(const int32_t* indptr, const int32_t* indices, const void* data, int float_type, uint64_t nindptr, uint64_t nelem) {
if (float_type == 0) {
const float* data_ptr = reinterpret_cast<const float*>(data);
return [indptr, indices, data_ptr, nindptr, nelem](int idx) {
CHECK(idx + 1 < nindptr);
std::vector<std::pair<int, double>> ret;
int32_t start = indptr[idx];
int32_t end = indptr[idx + 1];
CHECK(start >= 0 && end < nelem);
for (int32_t i = start; i <= end; ++i) {
ret.emplace_back(indices[i], data_ptr[i]);
}
return ret;
};
} else {
const double* data_ptr = reinterpret_cast<const double*>(data);
return [indptr, indices, data_ptr, nindptr, nelem](int idx) {
CHECK(idx + 1 < nindptr);
std::vector<std::pair<int, double>> ret;
int32_t start = indptr[idx];
int32_t end = indptr[idx + 1];
CHECK(start >= 0 && end <= nelem);
for (int32_t i = start; i < end; ++i) {
ret.emplace_back(indices[i], data_ptr[i]);
}
return ret;
};
}
}
inline std::function<std::vector<std::pair<int, double>>(int idx)>
ColumnFunctionFromCSC(const int32_t* col_ptr, const int32_t* indices, const void* data, int float_type, uint64_t ncol_ptr, uint64_t nelem) {
if (float_type == 0) {
const float* data_ptr = reinterpret_cast<const float*>(data);
return [col_ptr, indices, data_ptr, ncol_ptr, nelem](int idx) {
CHECK(idx + 1 < ncol_ptr);
std::vector<std::pair<int, double>> ret;
int32_t start = col_ptr[idx];
int32_t end = col_ptr[idx + 1];
CHECK(start >= 0 && end <= nelem);
for (int32_t i = start; i < end; ++i) {
ret.emplace_back(indices[i], data_ptr[i]);
}
return ret;
};
} else {
const double* data_ptr = reinterpret_cast<const double*>(data);
return [col_ptr, indices, data_ptr, ncol_ptr, nelem](int idx) {
CHECK(idx + 1 < ncol_ptr);
std::vector<std::pair<int, double>> ret;
int32_t start = col_ptr[idx];
int32_t end = col_ptr[idx + 1];
CHECK(start >= 0 && end <= nelem);
for (int32_t i = start; i < end; ++i) {
ret.emplace_back(indices[i], data_ptr[i]);
}
return ret;
};
}
}
inline std::vector<double> SampleFromOneColumn(const std::vector<std::pair<int, double>>& data, const std::vector<size_t>& indices) {
size_t j = 0;
std::vector<double> ret;
for (auto row_idx : indices) {
while (j < data.size() && data[j].first < row_idx) {
++j;
}
if (j < data.size() && data[j].first == row_idx) {
ret.push_back(data[j].second);
} else {
ret.push_back(0);
}
}
return ret;
}
} // namespace Common } // namespace Common
......
gbdt
num_class=1
label_index=0
max_feature_idx=27
sigmoid=1
Tree=0
num_leaves=31
split_feature=25 26 27 25 25 25 5 26 22 24 27 27 24 27 5 22 25 25 22 3 22 21 24 9 25 27 27 24 26 8
split_gain=323.274 172.669 161.444 63.5242 59.7581 58.4657 42.3384 41.1274 38.7844 83.353 34.2467 33.4865 34.8204 27.7654 25.0331 18.443 16.296 15.2477 14.8161 14.2556 14.1083 13.9722 13.806 13.395 13.3459 12.7317 12.6624 11.062 10.9597 10.6446
threshold=1.258 0.7935 0.8895 1.0155 0.6975 0.6255 0.8165 0.8705 1.0255 1.0515 0.8015 0.8895 1.2295 0.8015 0.8755 1.0685 0.9485 0.5315 0.9635 1.2575 1.0255 1.0105 1.1285 0.9925 0.8525 1.1155 1.0405 0.7385 1.3435 1.63
left_child=1 6 3 4 17 15 27 10 9 26 24 18 20 23 -5 22 -11 -3 -2 -14 -13 25 -4 -8 -6 -10 -7 -1 -22 -18
right_child=11 2 5 14 7 8 13 -9 21 16 -12 12 19 -15 -16 -17 29 -19 -20 -21 28 -23 -24 -25 -26 -27 -28 -29 -30 -31
leaf_parent=27 18 17 22 14 24 26 23 7 25 16 10 20 19 13 14 15 29 17 18 19 28 21 22 23 24 25 26 27 28 29
leaf_value=-0.0140845 -0.0282609 0.000552486 -0.0697479 -0.0182796 0.0706161 -0.0222798 0.0104 0.077221 0.0613208 0.0396104 -0.0106796 -0.0721519 -0.007173 -0.0333333 0.0375887 -0 -0.02 0.0373737 0.0144828 -0.0454545 -0.02 0.0202429 -0.0210526 0.0508197 0.0296875 0.0192661 -0.0617021 -0.0359841 -0.0618321 0.0217949
Tree=1
num_leaves=31
split_feature=25 26 27 5 22 24 25 5 25 27 24 26 27 27 25 25 25 25 22 22 3 25 5 21 5 9 27 21 24 11
split_gain=262.499 140.244 131.487 59.0112 47.4766 77.5193 41.0359 34.3244 28.2251 27.2895 28.496 24.0347 22.5148 21.0124 20.5652 12.9557 12.6074 19.1012 12.0103 11.6114 11.5913 11.2654 11.3893 11.1306 12.1953 10.9032 9.90073 9.3901 8.99114 8.98656
threshold=1.258 0.7935 0.8895 0.8755 1.0685 1.0515 1.0155 0.8165 0.6255 0.8895 1.2295 0.8705 0.8015 0.7765 0.6255 0.6975 0.6975 0.9485 0.9635 1.0255 1.2575 1.0155 0.8165 1.0105 1.1595 0.9925 1.1155 0.9075 0.7385 0.5755
left_child=1 7 3 6 5 26 8 28 -3 18 19 13 25 -10 -7 -6 -5 -18 -2 -11 -12 22 -16 -17 -25 -9 27 -4 29 -1
right_child=9 2 4 16 15 14 -8 12 11 10 20 -13 -14 -15 21 23 17 -19 -20 -21 -22 -23 -24 24 -26 -27 -28 -29 -30 -31
leaf_parent=29 18 8 27 16 15 14 6 25 13 19 20 11 12 13 22 23 17 17 18 19 20 21 22 24 24 25 26 27 28 29
leaf_value=-0.00299902 -0.0254559 -0.000635171 -0.0433215 0.0379715 0.00251514 -0.021192 -0.0164573 0.00936105 0.0433754 -0.0652879 -0.00645604 0.058106 -0.0300346 -0.0079561 0.0100664 0.0482247 0.07678 0.0428371 0.0130373 -0.037736 -0.0409968 0.00207257 0.0441918 0.0077831 0.0432166 0.0458603 -0.0621846 -0.0101954 -0.0324292 -0.0344763
Tree=2
num_leaves=31
split_feature=25 25 25 26 27 26 5 27 24 0 13 27 24 3 22 26 27 9 5 25 27 5 25 22 26 5 22 22 3 26
split_gain=213.981 118.36 77.4382 70.49 61.0345 39.504 35.9959 31.5067 29.3239 26.7482 25.4754 22.449 23.6855 17.7805 17.4327 16.851 24.5734 16.1392 14.3749 13.4762 13.2462 12.7853 14.4944 11.9538 11.8497 10.1947 9.85056 9.7484 9.48474 9.05357
threshold=1.258 0.6255 0.9485 0.7935 0.8895 0.8705 0.8165 0.9295 1.1285 1.624 0.9435 0.8895 1.2295 1.6055 0.9895 0.8705 0.8015 1.1685 0.8755 0.7585 0.8895 0.8165 0.8075 0.7695 0.7385 0.7555 1.0255 0.9635 1.2575 1.3435
left_child=1 10 3 6 15 25 24 18 14 13 17 27 26 21 -9 16 -5 23 -7 -17 -12 22 -6 -1 -3 -4 -13 -2 -14 -28
right_child=11 2 5 4 9 7 -8 8 -10 -11 20 12 28 -15 -16 19 -18 -19 -20 -21 -22 -23 -24 -25 -26 -27 29 -29 -30 -31
leaf_parent=23 27 24 25 16 22 18 6 14 8 9 20 26 28 13 14 19 16 17 18 19 20 21 22 23 24 25 29 27 28 29
leaf_value=-0.00224187 -0.0229605 -0.0318271 -0.0486103 0.0518834 -0.00862919 0.0123235 0.0362477 -0.0562241 0.0152451 -0.0178404 0.0220013 -0.0596057 -0.00581125 6.1226e-005 -0.003962 0.0386211 -0.00180855 0.0141107 0.0469138 0.0699541 -0.0131327 0.0461554 0.0416686 -0.0315822 0.00496198 -0.0114242 -0.0142803 0.0117403 -0.0371068 -0.0524243
Tree=3
num_leaves=31
split_feature=25 25 5 27 26 27 25 26 24 13 25 0 24 9 26 3 22 27 25 25 3 5 25 25 11 21 12 5 27 3
split_gain=176.304 115.046 69.2943 53.6743 52.0111 34.3232 33.5997 21.9406 21.0834 20.6789 18.118 16.1715 14.6949 14.0245 12.957 11.0566 11.4083 10.7377 10.5604 10.4174 10.3208 11.1713 10.0118 9.71273 9.32358 9.03531 8.84163 8.16498 9.14738 7.2913
threshold=1.1095 0.6255 0.8165 0.9295 0.7935 0.8895 1.4645 0.9005 0.9885 0.9435 0.9005 1.624 0.7385 0.9925 0.8705 1.6055 1.0685 0.8895 0.9485 0.7585 1.6055 1.4405 0.8525 0.8525 -0.5815 0.8835 1.661 0.9985 1.0405 1.4035
left_child=1 9 4 14 -3 7 8 10 12 13 -6 20 -2 26 22 16 -8 25 23 -16 21 -5 -4 -7 -14 -11 29 -10 -29 -1
right_child=6 2 3 11 5 18 15 -9 27 17 -12 -13 24 -15 19 -17 -18 -19 -20 -21 -22 -23 -24 -25 -26 -27 -28 28 -30 -31
leaf_parent=29 12 4 22 21 10 23 16 7 27 25 10 11 24 13 19 15 16 17 18 19 20 21 22 23 24 25 26 28 28 29
leaf_value=-0.0102565 0.0112214 -0.0216109 0.0464138 0.0212218 0.0308874 -0.00450292 -0.0401776 0.0543194 -0.00645824 -0.00293595 -0.0151679 -0.0139679 -0.0527242 0.00439354 0.0311966 -0.0642726 -0.0145579 -0.011836 -0.023971 0.0619605 0.000557955 0.0567113 0.0161531 0.0316052 -0.0202576 0.0343087 -0.0399944 0.0432825 0.00198491 -0.0388338
Tree=4
num_leaves=31
split_feature=25 25 5 27 26 27 25 22 27 5 9 13 0 27 3 26 26 25 25 22 24 26 24 24 9 3 5 26 21 21
split_gain=144.021 94.2894 57.2115 45.2891 42.437 29.0692 27.7705 18.5611 17.1766 17.8709 17.0613 15.3589 13.1617 12.9277 13.6377 13.9612 12.6463 13.9297 12.4941 11.083 21.1668 10.4516 11.0839 9.43765 8.73879 8.44871 9.29112 8.34803 8.60264 8.05018
threshold=1.1095 0.6255 0.8165 0.9295 0.7935 0.8565 1.4645 1.0255 1.0405 0.8755 1.1685 1.3325 1.624 0.8565 0.3925 0.7385 0.9005 0.9005 1.0155 1.0685 0.8975 1.0055 0.9405 0.9405 1.0735 1.6055 1.4405 1.0565 0.9295 0.7995
left_child=1 10 4 18 -3 16 7 8 9 -2 11 13 25 14 -1 29 17 -6 -4 20 -7 -8 -23 -11 -9 26 -5 28 -15 -16
right_child=6 2 3 12 5 19 21 24 -10 23 -12 -13 -14 27 15 -17 -18 -19 -20 -21 -22 22 -24 -25 -26 -27 -28 -29 -30 -31
leaf_parent=14 9 4 18 26 17 20 21 24 8 23 10 11 12 28 29 15 16 17 18 19 20 22 22 23 24 25 26 27 28 29
leaf_value=0.0238414 -0.0294616 -0.0195238 0.047956 0.0191692 0.033243 -0.0481014 -0.00460668 -0.00309729 -0.0481984 -0.0128688 0.0154952 0.0215174 -0.0125708 -0.0616867 -0.0503881 0.00296415 0.0526895 -0.00902545 0.0146371 0.020155 0.00522963 -0.0533932 -0.0282136 0.0275562 0.0304412 0.000502172 0.0516999 -0.0106254 -0.0226866 -0.0184528
Tree=5
num_leaves=31
split_feature=25 26 27 22 24 25 5 24 27 24 22 27 26 25 24 17 25 16 27 23 25 0 22 10 13 22 3 25 8 22
split_gain=119.022 68.549 73.2756 34.8576 50.9073 31.7403 24.0113 19.837 16.9187 16.8742 16.1194 14.9559 14.9146 14.5546 14.4139 13.0388 11.8096 11.7217 11.9564 10.3741 9.77481 9.74515 9.68649 9.05019 8.89145 9.17691 8.65695 7.47203 7.43426 7.20892
threshold=1.258 0.7935 0.8565 1.0685 0.9885 1.1095 0.8755 0.7385 1.0405 1.1285 1.0685 0.9775 0.8705 0.6255 0.7385 0.6435 0.9485 1.911 0.9295 1.1215 0.8075 0.9025 1.0685 0.6235 0.7375 0.8835 1.2575 0.8525 1.63 1.0255
left_child=1 7 5 4 14 6 12 10 22 29 15 -5 27 -6 -4 -1 -15 18 -16 -9 -13 -17 23 24 -2 -26 -11 -3 -18 -10
right_child=8 2 3 11 13 -7 -8 19 9 26 -12 20 -14 16 17 21 28 -19 -20 -21 -22 -23 -24 -25 25 -27 -28 -29 -30 -31
leaf_parent=15 24 27 14 11 13 5 6 19 29 26 10 20 12 16 18 21 28 17 18 19 20 21 22 23 25 25 26 27 28 29
leaf_value=-0.0245115 -0.0333325 0.020865 0.00227824 0.0399096 -0.0170291 -0.0142496 0.0504148 -0.0265621 -0.0652603 -0.00586055 0.0367924 -0.00349679 0.0385644 0.0268839 -0.00138505 -0.00540888 -0.015044 -0.0620005 -0.0438522 0.00546248 0.0217548 0.0274788 0.0154091 -0.0397297 0.024704 -0.0127678 -0.037493 -0.00804698 0.0149072 -0.0351614
Tree=6
num_leaves=31
split_feature=25 25 5 26 27 25 21 22 9 13 14 27 26 0 5 0 0 27 3 24 27 24 22 18 27 24 1 22 13 0
split_gain=100.05 82.5816 41.7296 32.0114 29.8877 26.6351 18.4232 22.3613 16.1939 15.0679 13.9498 12.9483 16.4358 11.4287 10.7444 9.85957 9.2124 10.9815 8.74089 8.67297 15.8847 8.55599 8.2049 7.29007 7.28385 7.22323 7.19565 7.01242 6.9174 6.73332
threshold=1.0155 0.6255 0.8165 0.7385 0.9775 1.4645 1.1015 1.0685 0.9175 0.9435 0.6495 0.8895 0.9005 1.624 0.8755 1.2245 0.9025 0.9295 1.6055 0.9885 0.9295 0.7385 0.8195 -0.0915 0.8565 1.1285 -0.6935 1.0685 0.8715 1.3985
left_child=1 9 3 -3 29 8 7 10 14 16 11 12 -5 18 28 27 21 22 -6 20 -10 -1 -18 -24 -11 -17 -21 -7 -2 -4
right_child=5 2 4 6 13 15 -8 -9 19 24 -12 -13 -14 -15 -16 25 17 -19 -20 26 -22 -23 23 -25 -26 -27 -28 -29 -30 -31
leaf_parent=21 28 3 29 12 18 27 6 7 20 24 10 11 12 13 14 25 22 17 18 26 20 21 23 23 24 25 26 27 28 29
leaf_value=-0.00976396 -0.0465271 -0.0253059 0.043986 0.00323327 0.0274047 -0.0290872 -0.0138644 0.0562662 0.0110496 0.0181642 0.0353717 -0.0172585 0.046746 -0.0181082 -0.00394616 -0.0650495 0.0228122 -0.0334056 -0.0041313 0.0373672 -0.0355051 -0.0373681 -0.0272676 0.00725277 -0.00755341 -0.0275081 0.00695339 -0.00743634 -0.0168998 0.0244808
Tree=7
num_leaves=31
split_feature=25 25 5 26 27 25 25 5 5 7 3 21 27 21 1 0 27 22 22 3 0 9 16 9 26 25 9 17 22 8
split_gain=81.9184 67.9637 34.8051 26.1654 25.5884 22.1004 15.2491 14.3165 13.3163 13.9677 12.7116 12.8344 12.3385 12.4784 13.3158 12.1877 10.7112 19.3025 10.4007 9.3799 9.01406 8.90988 8.82601 8.32501 8.02298 12.5842 7.88082 7.84469 7.46074 7.36843
threshold=1.0155 0.6255 0.8165 0.7385 0.9295 1.4645 0.9485 1.4405 0.8755 1.2855 1.2575 1.1015 0.8565 0.7995 0.8945 1.624 1.0405 1.0255 1.0685 1.6055 1.2245 0.9925 0.637 0.9925 0.8705 0.7585 0.9175 0.8375 1.0685 1.63
left_child=1 7 3 -3 24 8 10 12 23 16 11 18 13 -1 21 29 26 -18 -5 20 28 27 -14 -2 -4 -26 -10 -15 -7 -6
right_child=5 2 4 6 15 19 -8 -9 9 -11 -12 -13 22 14 -16 -17 17 -19 -20 -21 -22 -23 -24 -25 25 -27 -28 -29 -30 -31
leaf_parent=13 23 3 24 18 29 28 6 7 26 9 10 11 22 27 14 15 17 17 18 19 20 21 22 23 25 25 26 27 28 29
leaf_value=-0.022544 -0.0245526 -0.0229507 0.0278261 0.0246981 0.0108267 -0.0232526 -0.0155356 0.0239189 -0.00458596 0.0380105 -0.0016528 -0.0059575 -0.0122252 -0.0102581 -0.0253558 -0.0154922 -0.0470605 0.00849476 0.0599904 -0.0523079 -0.0412748 0.0351007 -0.041822 0.000250508 0.0174068 0.0529566 0.0234939 0.0196665 0.00085252 0.0348119
Tree=8
num_leaves=31
split_feature=25 26 27 22 24 5 25 24 27 24 19 24 25 27 9 8 22 16 5 14 27 23 7 26 23 25 22 18 2 21
split_gain=67.98 46.1404 50.4914 25.8785 41.2487 22.5164 15.7975 15.1888 13.2181 16.3541 12.8494 11.5512 11.3269 10.9898 10.0761 10.2769 13.38 9.05289 8.98748 8.68681 8.40043 8.01296 7.35512 7.33379 7.19762 6.74207 6.6563 6.52562 6.43573 6.13487
threshold=1.258 0.7935 0.8565 1.0685 0.9885 0.8755 0.9485 0.7385 0.8895 1.2295 0.7985 0.7385 0.6975 0.9775 1.0735 1.63 0.8555 1.911 0.9985 -0.0735 0.9295 1.1215 -0.3245 0.8705 1.0625 0.8075 0.9635 -0.0915 -0.1025 0.9075
left_child=1 7 5 4 11 6 12 10 26 24 18 -4 -3 -5 15 -6 -17 20 -1 -8 -13 29 -16 27 -10 28 -2 -14 -15 -9
right_child=8 2 3 13 14 -7 19 21 9 -11 -12 17 23 25 22 16 -18 -19 -20 -21 -22 -23 -24 -25 -26 -27 -28 -29 -30 -31
leaf_parent=18 26 12 11 13 15 5 19 29 24 9 10 20 27 28 22 16 16 17 18 19 20 21 22 23 24 25 26 27 28 29
leaf_value=0.00443907 -0.0131167 0.00605957 0.00104754 0.033938 -0.0134115 0.0402241 0.0152855 -0.0321564 -0.0398666 -0.00764737 -0.0189501 -0.00384703 0.00075612 -0.0217649 0.00476813 0.0398389 -0.00295764 -0.0567186 0.0383328 -0.0246064 -0.0397922 0.00466636 0.0356502 0.0450424 -0.0125358 0.0178537 0.0157772 0.0358017 0.0110298 -0.0108117
Tree=9
num_leaves=31
split_feature=25 25 5 27 26 27 22 5 21 22 14 13 3 8 24 21 11 9 22 0 0 12 3 9 3 22 26 27 21 26
split_gain=58.4538 51.2347 27.0084 19.7724 18.7028 15.3784 17.9673 17.0279 12.9292 16.31 11.8327 11.4622 10.2804 9.60097 9.19837 9.13789 9.20132 7.62406 7.28202 7.9246 7.08348 6.76486 6.59772 6.54416 6.4086 6.28296 8.15983 7.46915 9.66397 5.95828
threshold=1.0155 0.6255 0.8165 0.9775 0.7385 1.0405 1.0255 1.2695 1.1015 1.0685 0.6495 0.9435 1.2575 0.5435 1.0515 1.1015 -0.5815 0.9925 0.8195 0.9025 1.624 0.5535 1.6055 0.9175 1.4035 0.9895 0.8705 0.8565 0.9075 0.8365
left_child=1 11 4 25 -3 7 14 15 9 10 12 17 29 -8 -7 16 23 18 19 -1 22 -20 -5 -2 -16 27 -27 -4 -29 -6
right_child=5 2 3 20 8 6 13 -9 -10 -11 -12 -13 -14 -15 24 -17 -18 -19 21 -21 -22 -23 -24 -25 -26 26 -28 28 -30 -31
leaf_parent=19 23 4 27 22 29 14 13 7 8 9 10 11 12 13 24 15 16 17 21 19 20 21 22 23 24 26 26 28 28 29
leaf_value=-0.0238409 -0.0403688 -0.0196904 0.033778 0.0224002 -0.00573677 -0.0534946 0.0111749 0.0247103 -0.0127154 0.0477083 0.0305536 0.00650994 -0.0195641 -0.0183541 -0.0108756 0.0144572 -0.00523713 0.00399408 -0.0143174 0.0142295 -0.0144033 -0.0375864 -0.00513332 -0.0112777 -0.0441266 0.0248502 0.0541898 -0.00903056 0.0344482 0.0190326
Tree=10
num_leaves=31
split_feature=25 5 27 9 24 22 25 26 27 26 25 25 24 26 24 3 17 5 22 22 5 27 3 5 14 26 24 7 0 7
split_gain=48.1983 35.5551 37.1655 20.261 18.2313 25.0737 14.3418 20.8997 18.7556 13.1415 10.1983 9.97285 8.28039 10.5584 7.98749 7.96596 8.04202 8.97838 7.82158 7.80651 7.75078 10.8237 9.92889 7.69543 7.59759 9.71099 6.74643 6.54955 6.23992 6.15222
threshold=1.4645 0.8755 0.9295 1.2935 0.9885 1.0255 0.9485 0.7385 0.8565 0.7935 0.5315 0.8525 0.7385 0.8705 0.8225 1.6055 1.316 1.2695 0.9895 0.7005 1.1595 1.0405 1.6055 1.0705 -0.0735 0.9305 0.7385 0.6025 1.2245 0.1395
left_child=1 3 9 6 5 -4 7 26 10 23 -9 27 -12 -14 -7 16 28 -18 19 -11 -6 -22 29 -3 -8 -26 -1 -10 -2 -23
right_child=15 2 4 -5 20 14 24 8 11 18 12 -13 13 -15 -16 -17 17 -19 -20 -21 21 22 -24 -25 25 -27 -28 -29 -30 -31
leaf_parent=26 28 23 5 3 20 14 24 10 27 19 12 11 13 13 14 15 17 17 18 19 21 29 22 23 25 25 26 27 28 29
leaf_value=-0.00639877 -0.0168829 -0.00802862 -0.0393675 0.0264612 -0.000847763 0.0275355 -0.00585458 -0.00994181 -0.00568468 0.04755 0.0417699 0.0169475 0.00422212 0.0319546 -0.010349 -0.0460752 -0.0196896 0.0236922 0.041715 0.0194743 0.045968 0.00748954 -0.0158895 0.0220061 -0.0438614 -0.0110494 -0.0275464 -0.0311088 -0.0426261 0.0397934
Tree=11
num_leaves=31
split_feature=25 25 5 27 9 0 22 22 27 26 3 3 5 27 21 1 0 24 21 22 21 16 8 2 0 1 10 21 24 19
split_gain=41.7514 38.687 21.3121 16.8464 15.1297 11.7694 11.7547 17.6154 16.1242 10.4311 10.0797 9.87564 9.72021 9.51132 9.5699 10.3167 9.38317 8.04092 7.73918 8.40473 8.01689 7.27489 6.94646 10.6513 7.46526 6.68083 6.66531 7.35441 6.29562 6.23293
threshold=1.0155 0.6255 0.8755 0.8565 1.2935 1.624 0.7695 1.0255 1.0405 0.7385 1.6055 0.9335 1.4405 0.8565 0.7995 0.8945 1.2245 1.2295 0.6895 0.8555 0.9605 0.637 1.63 0.8325 0.6175 -0.912 -0.6665 0.9295 0.9885 0.7985
left_child=1 12 4 -4 9 10 -2 8 18 -3 25 16 13 14 -1 29 -11 -10 -8 -20 -21 -15 23 -9 -24 -5 -13 -28 -18 -16
right_child=6 2 3 5 -6 -7 7 22 17 11 -12 26 -14 21 15 -17 28 -19 19 20 -22 -23 24 -25 -26 -27 27 -29 -30 -31
leaf_parent=14 6 9 3 25 4 5 18 23 17 16 10 26 12 21 29 15 28 17 19 20 20 21 24 23 24 25 27 27 28 29
leaf_value=-0.0192057 0.0150549 -0.0154825 0.0362075 0.00611037 0.0395118 -0.0114172 0.010072 -0.000507157 -0.0508167 0.024118 -0.00269033 -0.0202047 0.0199599 -0.00981 0.018066 -0.0218099 -0.0190314 -0.0206854 0.00578955 -0.0295945 -0.00149657 -0.036966 -0.030371 0.0364254 -0.000659141 0.0333003 0.0150144 -0.0125715 0.0165398 -0.00776788
Tree=12
num_leaves=31
split_feature=25 26 27 22 24 22 5 5 16 5 27 3 13 18 27 24 15 13 9 22 27 26 21 5 27 26 12 21 21 23
split_gain=34.8445 28.4888 37.1148 15.9844 28.2297 11.4135 12.4962 10.5438 9.16067 9.46866 9.02176 8.86514 9.44222 10.4004 8.8213 13.4228 8.15813 7.91177 7.47059 7.11858 7.77858 10.6965 6.52421 6.37826 5.79457 6.65335 6.69178 5.74678 5.63924 5.38124
threshold=1.258 0.8365 0.8565 1.0255 1.0515 0.7005 1.0705 0.6385 1.911 0.8755 0.9775 0.7615 1.1115 0.0915 0.8895 0.9405 -0.331 0.9435 1.2935 0.7695 1.2465 0.9645 1.3005 1.0705 0.7505 0.7385 1.661 0.8835 0.8835 1.0625
left_child=1 5 7 4 8 -1 11 -3 9 -4 27 24 13 29 -2 -16 -15 23 -12 -6 21 -21 -20 -9 25 26 -7 -5 -8 -13
right_child=14 2 3 10 19 6 28 17 -10 -11 18 12 -14 16 15 -17 -18 -19 22 20 -22 -23 -24 -25 -26 -27 -28 -29 -30 -31
leaf_parent=5 14 7 9 27 19 26 28 23 8 9 18 29 12 16 15 15 16 17 22 21 20 21 22 23 24 25 26 27 28 29
leaf_value=0.0224037 0.00127405 0.00709806 -0.0332269 0.047127 0.027471 0.00385062 -0.00257662 0.0157187 -0.0446479 0.000628241 -0.00066426 -0.0443175 0.00525897 0.0109657 -0.035654 -0.00979532 -0.0254504 0.0414629 0.0410775 -0.0209026 -0.0220967 0.0159012 0.00693634 0.0396908 -0.0177348 0.0171422 -0.0281491 0.0176078 0.028816 -0.0162163
Tree=13
num_leaves=31
split_feature=25 25 26 27 22 27 27 24 25 27 5 26 24 14 26 27 9 26 22 3 0 20 18 25 9 9 2 27 0 15
split_gain=30.94 36.889 16.8398 23.3891 14.2694 17.9082 11.8191 11.2567 10.8164 11.2906 19.1374 11.8571 10.2678 9.96546 9.51595 8.69391 11.0544 9.02225 8.31996 7.8046 7.59561 7.81584 7.07255 7.06946 6.86631 6.86172 6.5025 7.86991 6.88659 6.34385
threshold=0.9485 0.7585 0.8705 0.8895 1.0685 1.1155 0.8015 1.0515 0.5315 0.8565 1.0705 0.7385 1.2295 0.858 0.7935 0.9295 0.9925 0.9005 0.8835 1.1335 0.9025 0.7755 -0.6495 1.1095 0.9925 1.2935 0.1275 1.0405 0.9025 0.8035
left_child=1 8 6 -4 5 12 14 -7 24 10 11 -10 15 22 -3 16 17 -2 -14 -17 21 -13 -6 -19 29 26 28 -28 -5 -1
right_child=4 2 3 25 13 7 -8 -9 9 -11 -12 20 18 -15 -16 19 -18 23 -20 -21 -22 -23 -24 -25 -26 -27 27 -29 -30 -31
leaf_parent=29 17 14 3 28 22 7 6 7 11 9 10 21 18 13 14 19 16 23 18 19 20 21 22 23 24 25 27 27 28 29
leaf_value=-0.0205426 -0.0283219 -0.00181485 0.0431974 0.0341369 -0.00490988 -0.0568666 -0.0254706 -0.0187243 -0.0129574 -0.00650328 0.0488624 -0.0133788 0.0289869 -0.0166674 0.0284875 -0.0385165 0.00857647 0.0190603 -0.00564215 -0.0032781 0.0294554 0.0237072 0.0180729 -0.014204 0.00517302 0.0306886 0.0132824 -0.0255431 0.000618442 0.00131457
Tree=14
num_leaves=31
split_feature=25 5 27 9 24 22 22 22 21 26 17 22 24 3 17 5 1 3 23 15 2 25 25 7 3 7 14 5 27 3
split_gain=25.6606 21.1227 21.8611 12.7666 12.4703 16.8687 9.79908 9.57691 11.9137 9.33121 9.29295 9.27481 7.77184 6.88761 7.17376 7.13708 6.6147 7.95846 7.88483 7.67834 7.64132 6.56404 7.57243 6.16666 7.22567 5.80513 5.78955 5.73671 8.27469 7.50528
threshold=1.4645 0.8755 0.9295 1.2935 0.9885 0.9895 1.0685 0.8195 0.7555 0.8705 0.7065 1.2265 0.8225 1.6055 1.316 1.2695 0.8945 1.2575 0.9985 0.8035 -0.579 0.6975 1.0155 0.6025 0.6795 1.0345 0.2785 1.1595 1.0405 1.6055
left_child=1 3 9 6 5 -4 7 8 -1 23 -8 -12 -7 14 25 -16 17 18 -9 20 -18 -11 -23 24 -3 -2 -20 -6 -29 -30
right_child=13 2 4 -5 27 12 10 16 -10 21 11 -13 -14 -15 15 -17 19 -19 26 -21 -22 22 -24 -25 -26 -27 -28 28 29 -31
leaf_parent=8 25 24 5 3 27 12 10 18 8 21 11 11 12 13 15 15 20 17 26 19 20 22 22 23 24 25 26 28 29 29
leaf_value=-0.0123505 -0.012312 0.0194962 -0.0348173 0.0211189 -0.00128473 0.0237395 -0.0117041 -0.00844476 0.0161965 0.00723199 0.0308244 -0.0046056 -0.0129193 -0.0403592 -0.0140704 0.0252175 -0.0546794 -0.0224807 0.000492521 0.00108783 -0.0185537 0.0397637 0.0171904 0.0245867 -0.00780443 -0.0383118 0.0311975 0.0399327 0.0179073 -0.0144639
Tree=15
num_leaves=31
split_feature=25 25 26 27 22 27 24 24 26 23 22 21 14 15 24 22 14 9 27 17 25 22 3 21 18 0 18 21 13 3
split_gain=23.5669 28.9229 13.4045 17.1461 11.0731 14.1991 10.2371 9.59712 11.5502 11.354 9.4516 8.6807 8.28766 7.91336 8.36014 7.90264 9.15373 9.01034 7.34637 7.28301 10.0219 6.50604 6.13383 6.09109 6.05574 5.97108 5.63123 5.59925 6.0671 5.43289
threshold=0.9485 0.7585 0.8365 0.8895 1.0685 1.1155 1.0515 0.7385 0.6685 1.1215 1.0685 0.5755 0.858 -1.2635 1.2295 0.8195 0.6495 1.1685 0.8275 0.7695 1.1095 0.8555 1.0285 0.8315 -0.0915 1.624 -0.6495 0.8835 1.0255 1.6055
left_child=1 7 24 -4 5 11 -7 10 -9 15 -1 -2 26 -13 19 18 17 27 -10 20 -15 -21 -11 -23 -3 29 -6 -17 -29 -5
right_child=4 2 3 25 12 6 -8 8 9 22 -12 13 -14 14 -16 16 -18 -19 -20 21 -22 23 -24 -25 -26 -27 -28 28 -30 -31
leaf_parent=10 11 24 3 29 26 6 6 8 18 22 10 13 12 20 14 27 16 17 18 21 20 23 22 23 24 25 26 28 28 29
leaf_value=0.00280938 0.0179075 -0.0128323 0.0347119 0.020426 -0.00439688 -0.0536854 -0.016338 -0.0371373 0.0222337 -0.00249169 0.0316629 0.0120615 -0.0154667 -0.00503968 0.00578748 -0.0374824 0.00440195 0.00615939 -0.0111233 0.0101172 -0.0413678 0.00604452 0.0276984 -0.0219279 0.0126688 -0.0116669 0.0161747 -0.0264135 0.00356097 -0.00382075
Tree=16
num_leaves=31
split_feature=25 25 0 21 26 3 24 27 22 21 13 3 23 15 27 9 13 10 9 14 8 5 2 0 27 24 3 14 26 9
split_gain=19.3019 24.9929 10.3699 9.74935 13.6757 10.8523 9.68756 20.005 10.3538 7.90186 7.56607 7.51268 6.87063 6.8131 7.1708 11.4195 6.79148 6.74573 6.2231 9.40882 6.20406 6.20401 5.89692 5.85315 7.53024 5.82464 6.57722 5.72121 5.71723 5.66663
threshold=0.9485 0.6255 1.2245 1.0105 0.7935 1.1335 1.2295 1.1155 1.0685 1.1015 1.2095 1.6055 1.0625 -1.2635 0.8895 0.9925 0.9435 0.0745 0.6755 -0.6425 1.63 0.8165 -0.3345 0.9025 0.9295 0.8225 0.9335 -0.2675 0.9005 0.8545
left_child=1 16 3 4 29 22 7 8 13 -9 17 -8 25 -2 15 28 23 -10 20 -20 -4 -7 -6 -1 27 -5 -27 -25 -15 -3
right_child=6 2 18 12 5 21 11 9 10 -11 -12 -13 -14 14 -16 -17 -18 -19 19 -21 -22 -23 -24 24 -26 26 -28 -29 -30 -31
leaf_parent=23 13 29 20 25 22 21 11 9 17 9 10 11 12 28 14 15 16 17 19 19 20 21 22 27 24 26 26 27 28 29
leaf_value=-0.0182224 0.011154 -0.00551756 -0.00516423 0.0169898 0.0222468 -0.000984462 0.00980616 -0.0442966 0.0181065 -0.0122116 0.0322304 -0.0144898 0.0274482 -0.0268639 -0.0239961 0.0121643 0.00527626 -0.018083 -0.0298905 0.00351233 0.0290702 0.0250693 0.0425411 0.021381 -0.0256886 0.00724744 -0.0257995 -0.00470631 -0.00326376 0.0216934
Tree=17
num_leaves=31
split_feature=25 5 0 22 22 9 10 27 17 3 22 22 13 13 5 23 27 21 25 8 0 24 23 26 16 22 21 20 8 0
split_gain=16.4168 16.4492 18.2097 10.5776 11.0613 9.8761 8.61495 8.02338 7.6513 10.3292 11.0564 7.94955 7.51908 7.06147 6.86697 6.50926 6.34883 9.77144 8.63455 6.66709 6.28182 7.48836 6.94438 6.13658 6.29607 5.84902 5.58892 5.34958 5.38447 5.2414
threshold=1.4645 0.8755 1.3985 0.7695 0.9635 1.2935 -0.1055 0.9295 0.7065 1.4035 1.0685 0.7695 0.9435 1.0255 1.4405 0.9945 1.0405 1.0105 0.6975 1.63 1.0915 1.2295 0.9855 1.0565 0.637 1.1295 0.9075 2.3265 0.5435 1.0915
left_child=1 5 3 12 6 8 27 13 -1 10 11 -10 -3 -6 -9 -8 18 -18 -4 -20 22 -22 -2 -24 -25 -12 -7 28 -5 -13
right_child=20 2 16 4 7 26 15 14 9 -11 25 29 -14 -15 -16 -17 17 -19 19 -21 21 -23 23 24 -26 -27 -28 -29 -30 -31
leaf_parent=8 22 12 18 28 13 26 15 14 11 9 25 29 12 13 14 15 17 17 19 19 21 21 23 24 24 25 26 27 28 29
leaf_value=-0.0109331 0.0136215 0.0191015 -0.0179411 -0.0183797 0.0167286 0.0346308 0.00216751 0.00254717 0.0196363 -0.0176852 0.0406377 0.000736992 0.0536505 0.0423697 0.0282795 0.0310524 -0.0395014 0.00115394 -0.00494957 0.0280234 -0.0429934 -0.00520228 0.00802729 -0.0301028 -0.00072587 0.0105127 0.00267473 -0.0276825 0.0143973 -0.0151523
Tree=18
num_leaves=31
split_feature=25 25 26 27 27 24 27 5 14 18 24 26 23 17 18 27 13 22 11 23 9 25 2 22 14 9 27 26 7 14
split_gain=15.0443 19.9666 11.7714 16.6483 9.68192 8.22197 14.6664 9.69052 8.48087 7.98327 7.79423 9.10271 9.19875 7.75301 6.95603 7.42856 7.20914 6.84614 6.57983 6.79884 6.70809 8.34194 7.01686 5.94644 7.64111 6.89757 5.98741 5.29287 5.08983 5.08372
threshold=0.9485 0.7585 0.8705 0.8895 0.8015 0.9885 1.1155 0.8755 -0.4425 -0.0915 0.7385 0.6685 1.1215 1.1855 0.6615 0.9295 1.0255 1.0685 0.8135 0.9875 0.7915 1.4645 0.1275 0.8195 0.6495 1.1685 0.8275 0.7935 -0.5835 0.2785
left_child=1 10 4 -4 9 6 7 8 -2 -3 17 -12 23 -10 15 16 -9 -1 20 -20 22 -22 -7 26 25 -25 -13 -11 -8 -21
right_child=5 2 3 -5 -6 18 28 14 13 27 11 12 -14 -15 -16 -17 -18 -19 19 29 21 -23 -24 24 -26 -27 -28 -29 -30 -31
leaf_parent=17 8 9 3 3 4 22 28 16 13 27 11 26 12 13 14 15 16 17 19 29 21 21 22 25 24 25 26 27 28 29
leaf_value=0.00273039 0.00347414 -0.00609986 0.0361704 0.00980133 -0.0253922 0.00778703 -0.0166339 -0.00815773 -0.0350282 0.0083192 -0.0335246 0.0195603 0.0134795 -0.00137044 0.0228241 -0.0246691 0.0244023 0.0275132 0.00850319 -0.00864269 0.0199151 -0.00306767 -0.0262885 -0.022227 0.00412995 0.00477537 -0.0107359 0.0402288 -0.0497818 -0.0388942
Tree=19
num_leaves=31
split_feature=22 22 27 24 27 5 17 19 26 16 18 3 12 25 0 25 25 21 26 24 14 8 23 5 10 26 27 13 19 21
split_gain=13.7109 19.558 13.1014 26.5835 10.7967 9.82722 9.07206 8.7626 8.24454 10.2403 7.81131 7.28813 7.04298 6.89852 6.67208 6.20149 9.60308 14.2585 7.85772 7.05411 6.47061 5.99542 11.4321 7.64607 5.81645 6.13984 6.91794 5.76884 5.7648 5.66187
threshold=0.7005 0.9895 0.9295 1.0515 1.1155 0.9985 0.8375 0.7985 0.7385 0.637 0.4645 1.6055 1.661 1.0155 1.3985 0.5315 1.0155 1.0105 0.8365 0.9405 -0.2675 0.5435 0.9875 1.4405 -1.1325 0.8365 0.7765 0.7995 0.1215 0.8835
left_child=6 2 5 14 15 8 10 12 9 29 28 -5 -7 24 -4 -3 17 18 -17 -20 -18 22 -6 -24 -10 26 -26 -15 -1 -2
right_child=1 4 3 11 21 7 -8 -9 13 -11 -12 -13 -14 27 -16 16 20 -19 19 -21 -22 -23 23 -25 25 -27 -28 -29 -30 -31
leaf_parent=28 29 15 14 11 22 12 6 7 24 9 10 11 12 27 14 18 20 17 19 19 20 21 23 23 26 25 26 27 28 29
leaf_value=0.0394146 -0.0157526 -0.00455643 -0.0259292 0.00515442 0.0293448 0.0279376 0.0405498 -0.0104633 -0.0170818 -0.0304657 -0.0164696 -0.0196197 -9.71713e-005 -0.0297114 -0.0536708 0.013902 0.0168425 0.00227419 0.0496213 0.0219859 -0.00618751 -0.0121237 -0.0214205 0.013438 0.00745136 0.0149513 -0.0228241 -0.00239333 0.00326739 0.0143709
Tree=20
num_leaves=31
split_feature=3 5 0 22 22 21 21 27 24 6 9 26 23 1 13 27 26 21 13 8 9 3 7 13 23 7 24 5 25 15
split_gain=12.1685 13.2163 11.1886 9.9199 12.4413 11.0623 13.02 9.83901 11.8829 9.82049 9.71235 9.30579 8.49092 9.50716 7.9822 7.19086 14.2078 6.65813 6.60047 6.88121 6.58098 7.3991 6.78864 9.38944 6.80568 9.25836 7.36639 6.2485 6.31967 10.2114
threshold=1.6055 1.4405 1.624 0.7695 0.9635 0.5755 0.9075 0.8565 1.0515 0.4465 1.1685 1.3435 0.9915 -0.4875 1.0255 1.0405 1.0565 0.9075 0.7995 0.5435 1.2935 0.277 -0.3245 1.3325 1.0625 0.6025 0.7385 0.6385 1.1095 0.8035
left_child=1 3 18 9 5 -5 7 27 -9 17 12 20 13 -8 -13 16 -2 -1 -3 -20 21 -6 23 -23 25 -24 -27 -7 29 -29
right_child=15 2 -4 4 11 6 10 8 -10 -11 -12 14 -14 -15 -16 -17 -18 -19 19 -21 -22 22 24 -25 -26 26 -28 28 -30 -31
leaf_parent=17 16 18 2 5 21 27 13 8 8 9 10 14 12 13 14 15 16 17 19 19 20 23 25 23 24 26 26 29 28 29
leaf_value=0.0148335 -0.0116247 -8.09684e-005 -0.00776363 0.0217981 0.0262736 -0.021932 -0.0249715 -0.0436729 -0.00911814 -0.00460747 -0.021532 -0.0329336 0.0209758 0.00878854 0.00155247 -0.0204034 0.0320769 0.0452924 0.0415421 0.0130003 0.0221131 0.00448346 -0.0211718 0.0365079 0.0140497 0.0260907 -0.00597854 -0.00551199 -0.0239197 0.0336663
Tree=21
num_leaves=31
split_feature=22 22 27 26 24 24 24 17 25 17 6 13 11 20 25 26 16 17 27 18 10 13 13 14 0 17 19 4 9 11
split_gain=10.7283 15.8878 14.2805 16.307 15.6559 13.01 11.6562 10.7357 7.88073 7.46159 6.8666 8.57838 6.70084 7.35383 8.65745 6.54285 6.29223 6.28093 5.605 5.59057 5.54725 6.03002 5.34233 5.86672 5.06966 5.46735 4.89194 5.85024 4.32547 4.2055
threshold=1.0685 0.7695 0.8565 0.8365 1.0515 0.7805 0.7385 0.6435 1.1095 1.496 0.8405 0.7375 -1.0605 2.3265 1.258 0.9005 0.637 0.7695 0.7155 -0.8665 0.2455 1.1115 1.0255 0.2785 1.624 1.0875 -0.5825 0.1045 0.7375 -0.3575
left_child=1 7 3 9 6 22 -4 18 15 -3 11 -9 -6 14 16 26 -14 -10 -1 20 21 -7 23 -2 25 28 -5 -28 -8 -13
right_child=5 2 4 8 12 19 24 10 17 -11 -12 29 13 -15 -16 -17 -18 -19 -20 -21 -22 -23 -24 -25 -26 -27 27 -29 -30 -31
leaf_parent=18 23 9 6 26 12 21 28 11 17 9 10 29 16 13 14 15 16 17 18 19 20 21 22 23 24 25 27 27 28 29
leaf_value=-0.0236104 0.0262116 -0.009015 0.00482979 0.0252369 0.0147036 -0.00233171 0.00372356 0.010089 -0.0222753 0.0206694 -0.00111583 0.0255431 0.0205754 -0.0252957 -0.0181151 0.029871 -0.00561556 0.0112856 0.00550142 0.006454 0.0102102 -0.0382272 0.0380635 -0.00622199 -0.0457653 -0.0348648 0.0160335 -0.0171176 -0.0219669 0.0543634
Tree=22
num_leaves=31
split_feature=3 5 0 27 24 26 25 25 24 24 23 13 13 0 12 13 8 0 10 11 27 11 6 17 1 0 21 24 0 25
split_gain=9.91685 10.7157 9.01532 8.32287 9.59993 8.329 11.9498 12.3723 8.44507 7.46283 7.76405 6.9819 6.81807 6.77731 6.00188 5.43702 5.73777 5.17499 5.07671 7.20909 5.03761 5.31383 5.48083 5.13261 4.88789 7.65584 4.49616 8.41609 8.17058 7.34947
threshold=1.6055 1.4405 1.624 1.2465 1.3685 0.7935 1.0155 0.5315 0.7805 0.7385 1.0625 0.7375 1.1115 1.0915 0.5535 0.7995 0.5435 0.6175 0.0745 0.115 0.7505 -0.117 -0.2615 0.9155 -0.6935 0.5475 1.0105 1.0515 1.3985 0.6975
left_child=1 3 15 5 12 14 7 -7 -9 -8 -11 17 -5 -12 20 -3 -17 -2 -16 -20 21 23 -23 -1 -13 -26 28 -28 29 -10
right_child=11 2 -4 4 -6 6 9 8 26 10 13 24 -14 -15 18 16 -18 -19 19 -21 -22 22 -24 -25 25 -27 27 -29 -30 -31
leaf_parent=23 17 15 2 12 4 7 9 8 29 10 13 24 12 13 18 16 16 17 19 19 20 22 22 23 25 25 27 27 28 29
leaf_value=0.0041222 -0.0139218 -0.00014844 -0.00691308 -0.0437646 0.00596791 -0.0124814 0.0200212 0.0263892 -0.00172658 -0.0100412 0.0256099 -0.000677806 -0.0080245 -0.010131 -0.0229178 0.0380743 0.0118019 0.0141653 -0.0177869 0.0172589 -0.014893 0.0149247 -0.0148506 0.0337453 -0.0430035 -0.012571 -0.0178148 0.0147046 -0.00423442 0.0223826
Tree=23
num_leaves=31
split_feature=25 25 14 26 27 24 3 9 9 14 1 9 2 10 13 6 13 14 14 13 11 11 9 10 3 5 10 22 23 22
split_gain=9.05114 13.8203 7.8839 7.69252 9.25464 13.8984 6.86322 7.24496 9.84752 6.79702 7.89135 6.67773 6.67308 6.33138 6.16038 6.38187 6.1221 10.7327 7.08999 6.00589 5.78699 5.77145 5.92175 5.70051 5.34521 5.28464 8.18123 5.05283 4.77269 6.96757
threshold=0.9485 0.5315 0.1045 0.8705 0.9295 1.2295 1.1335 1.2935 0.6755 -0.4425 -0.1105 0.8545 -0.1025 0.8375 0.6745 0.2535 1.2095 -0.4425 -0.4425 1.494 -0.8145 -0.3575 0.9175 -0.6665 1.6055 1.1595 0.0745 0.9895 1.0625 0.8195
left_child=1 9 6 11 21 13 7 8 -3 10 -1 -2 -11 16 -10 23 18 -18 -6 28 -7 22 -5 -16 -22 26 -8 -23 29 -4
right_child=3 2 19 4 5 20 25 -9 14 12 -12 -13 -14 -15 15 -17 17 -19 -20 -21 24 27 -24 -25 -26 -27 -28 -29 -30 -31
leaf_parent=10 11 8 29 22 18 20 26 7 14 12 10 11 12 13 23 15 17 17 18 19 24 27 22 23 24 25 26 27 28 29
leaf_value=0.0169662 -0.0320936 0.017748 0.0255005 -0.0191148 -0.00974961 0.0195462 -0.0272198 0.0282852 -0.0223404 -0.0252306 -0.0176404 -0.00279086 -0.00372084 0.0029621 0.0284175 -0.0181354 -0.0380294 0.00611626 -0.0418971 0.033611 0.00385596 0.00607863 0.00966102 -0.00177444 -0.0213038 0.00955269 0.00401765 0.0276851 0.0237453 0.00317136
Tree=24
num_leaves=31
split_feature=22 22 27 24 26 24 24 17 0 9 10 25 3 20 9 19 17 25 5 25 3 23 14 18 19 0 16 13 26 6
split_gain=8.76642 12.2806 10.8893 12.4941 11.6042 10.574 10.0529 8.54817 6.79114 7.10145 6.32821 6.30677 6.21958 6.17406 8.03798 6.54991 5.71041 4.98425 5.71367 6.64584 5.14613 4.89424 6.07289 8.37247 7.79122 5.81272 7.39427 5.38641 8.4159 4.82584
threshold=1.0685 0.7695 0.8565 0.9885 0.8365 0.7385 0.7805 0.6435 1.3985 0.7375 -1.1325 1.258 1.2575 2.3265 0.7915 0.1215 1.496 1.1095 0.6385 0.8075 0.8415 0.9875 0.858 0.4645 -1.0505 1.2245 0.637 1.2095 1.1175 0.4465
left_child=1 7 4 5 16 -4 -2 -1 9 -7 -6 13 29 14 -5 -15 -3 18 -12 20 -20 27 23 24 -23 26 -26 28 -8 -9
right_child=6 2 3 11 10 8 21 12 -10 -11 17 -13 -14 15 -16 -17 -18 -19 19 -21 -22 22 -24 -25 25 -27 -28 -29 -30 -31
leaf_parent=7 6 16 5 14 10 9 28 29 8 9 18 11 12 15 14 15 16 17 20 19 20 24 22 23 26 25 26 27 28 29
leaf_value=-0.0031769 0.021069 -0.00784514 0.0039768 -0.00731145 -0.0127624 0.0023151 0.0235823 0.0340956 -0.0460894 -0.0282656 -0.000116376 -0.0154197 0.000126142 -0.029711 0.018399 0.00552801 0.0183025 0.000241638 -0.00666918 0.0369452 0.0284089 0.0198172 -0.0187167 0.020241 0.0134567 -0.033718 -0.021063 0.0248521 -0.0159871 0.00861382
Tree=25
num_leaves=31
split_feature=27 5 12 9 24 8 9 0 23 1 15 7 10 23 0 19 17 14 22 14 24 27 10 27 26 7 26 10 27 3
split_gain=8.03611 12.4203 12.197 9.12346 8.74262 8.12495 9.80363 7.91022 6.50419 6.30447 12.4307 9.23367 6.45474 6.19889 6.14734 5.67362 5.3593 6.05808 6.99423 7.29702 7.06709 8.93631 6.63965 8.23305 6.12354 5.33079 7.77762 6.58948 5.86475 5.12254
threshold=1.1155 1.0705 1.661 1.2935 0.9885 0.5435 1.0735 1.2245 0.9945 0.8945 1.0375 0.6025 -1.1325 1.0625 0.9025 0.7985 0.8375 0.6495 0.9635 -0.4425 0.7385 0.8895 -0.1055 0.8275 0.8365 0.6025 0.9305 0.0745 0.8015 0.5005
left_child=1 3 13 9 7 6 -6 -2 -8 12 11 -11 14 15 -1 29 25 18 19 -18 -20 -22 -19 -24 -21 26 -14 -28 -27 -3
right_child=4 2 -4 -5 5 -7 8 -9 -10 10 -12 -13 16 -15 -16 -17 17 22 20 24 21 -23 23 -25 -26 28 27 -29 -30 -31
leaf_parent=14 7 29 2 3 6 5 8 7 8 11 10 11 26 13 14 15 19 22 20 24 21 21 23 23 24 28 27 27 28 29
leaf_value=-0.0234942 -0.00991793 0.0389528 -0.00233835 0.0152705 -0.0115617 -0.0104233 0.0345956 -0.0431736 0.000853105 -0.00809566 0.0142121 -0.0362962 -0.0138436 0.0375633 0.00143102 -0.00176765 0.00847719 0.0416882 0.0381548 -0.0354814 0.0213436 -0.016322 0.0294978 -0.0126448 -0.00241476 0.0182124 0.0260639 -0.007943 -0.00693576 0.0141288
Tree=26
num_leaves=31
split_feature=22 22 27 24 21 22 6 20 9 3 0 25 14 9 21 27 26 25 23 15 10 22 4 22 27 6 26 25 17 6
split_gain=7.43533 10.8494 7.87034 9.68122 7.53532 10.6534 6.22196 7.17391 6.08655 5.96656 5.88968 5.88466 7.48263 8.50446 6.17268 7.6662 10.0839 7.10186 5.78864 5.36147 6.33678 5.26532 5.15778 4.87392 4.83727 5.49294 5.85157 7.55968 7.4353 6.48257
threshold=0.7005 0.9895 1.1155 1.2295 0.9075 0.8555 -0.2615 0.7755 1.0735 1.4035 0.9905 0.6975 0.6495 0.9925 0.7555 0.7765 0.9005 0.9485 1.0625 0.5745 -0.1055 0.8555 0.1045 0.8835 1.1155 -1.445 0.8705 0.8525 0.7695 1.102
left_child=8 2 4 -4 11 6 -6 -8 10 -5 -1 22 14 -14 21 -16 -17 -18 19 -7 -21 -13 -2 -19 25 -3 27 28 -27 -28
right_child=1 24 3 9 5 18 7 -9 -10 -11 -12 12 13 -15 15 16 17 23 -20 20 -22 -23 -24 -25 -26 26 29 -29 -30 -31
leaf_parent=10 22 25 3 9 6 19 7 7 8 9 10 21 13 13 15 16 17 23 18 20 20 21 22 23 24 28 29 27 28 29
leaf_value=-0.00636306 -0.00583833 -0.0158518 -0.0351766 0.0123154 0.0373744 -0.0137657 -0.00670407 0.0307829 0.0344145 -0.0226687 0.0234548 -0.00880416 1.05618e-005 0.0377847 0.00424758 -0.0516927 0.00864517 -0.00640184 0.0150155 -0.0100732 0.0252558 0.0159809 -0.0254279 -0.0382815 -0.00184306 -0.00969221 0.0168835 -0.0196945 0.019074 -0.00846125
Tree=27
num_leaves=31
split_feature=25 25 14 26 27 24 5 10 19 23 7 14 2 2 9 13 14 14 3 7 24 21 22 26 7 24 11 25 6 5
split_gain=6.6887 10.5674 6.25432 6.01275 5.88062 10.5243 5.63643 5.61896 5.56138 6.20959 8.36286 5.49298 6.43267 5.63368 5.3523 5.13608 9.09517 6.15738 5.02914 5.40092 8.11128 8.26745 7.64671 7.01106 4.93089 4.811 4.7877 4.14985 5.30683 4.46157
threshold=0.9485 0.5315 0.1045 0.8705 0.9295 1.2295 1.4405 0.8375 -0.1305 0.9875 0.6025 -0.4425 0.1275 -0.1025 0.8545 1.2095 -0.4425 -0.4425 1.1335 1.0345 1.1285 1.0105 0.9635 0.7935 -0.3245 0.8975 -0.8145 0.8525 -0.4455 0.6985
left_child=1 11 18 14 8 7 27 15 9 -5 -11 12 -1 -13 -2 17 -17 -6 19 20 21 22 23 -3 -24 -21 -7 28 -4 -29
right_child=3 2 6 4 5 26 -8 -9 -10 10 -12 13 -14 -15 -16 16 -18 -19 -20 25 -22 -23 24 -25 -26 -27 -28 29 -30 -31
leaf_parent=12 14 23 28 9 17 26 6 7 8 10 10 13 12 13 14 16 16 17 18 25 20 21 24 23 24 25 26 29 28 29
leaf_value=0.0175604 -0.0288183 -0.0173167 -0.0087736 0.0141844 -0.00796544 0.0179001 0.0340821 0.00425329 0.0135507 -0.0288872 0.0097591 -0.0231071 -0.0124067 -0.00320136 -0.00242951 -0.0349618 0.00641542 -0.0384327 -0.00660006 0.00737152 0.0321032 -0.0166001 0.0453811 0.0132937 0.0122921 -0.0260902 -0.00183236 0.0390965 0.0103321 0.0116922
Tree=28
num_leaves=31
split_feature=22 22 24 27 24 24 5 2 10 1 13 27 21 6 4 12 7 1 22 18 9 17 11 21 11 3 22 10 5 11
split_gain=6.30486 9.13125 7.73736 7.3918 9.42478 11.4127 8.98518 9.44604 7.48721 7.11473 6.44752 5.23176 6.45962 8.38586 5.18212 5.07955 5.01428 5.01165 5.60566 5.84394 5.82994 7.29405 5.82854 6.51734 4.85958 4.64949 4.44795 5.31188 4.26671 4.17548
threshold=1.0685 0.8195 0.7805 0.8895 1.0515 0.7385 0.9985 -1.044 -0.2965 0.8945 1.3325 1.0405 0.8315 -0.4455 1.0245 1.661 0.6025 0.6625 0.9635 -0.0915 0.8545 0.9155 0.8135 0.9075 0.8135 0.7615 0.9895 0.6235 0.9985 -1.2625
left_child=1 10 24 6 5 -5 9 -8 -9 17 11 12 14 -14 -1 -15 -11 18 19 25 21 -20 23 -21 -2 -3 27 28 -7 -4
right_child=2 3 29 4 -6 26 7 8 -10 16 -12 -13 13 15 -16 -17 -18 -19 20 22 -22 -23 -24 -25 -26 -27 -28 -29 -30 -31
leaf_parent=14 24 25 29 5 4 28 7 8 8 16 10 11 13 15 14 15 16 17 21 23 20 21 22 23 24 25 26 27 28 29
leaf_value=-0.00620184 0.02497 -0.00489538 -0.0132302 0.010123 -0.00287382 -0.0567806 -0.0176303 0.00224343 0.0341285 -0.00853598 0.0266528 -0.0161413 0.0390424 0.0159086 0.0190741 -0.0130216 -0.0365193 0.0214056 -0.0193782 -0.0175741 0.0226817 0.017027 0.0235272 0.0145694 -0.00131231 -0.0276234 -0.0104043 -0.0140909 -0.0289774 0.0042359
Tree=29
num_leaves=31
split_feature=25 5 13 25 1 16 18 25 26 27 8 0 3 16 26 27 18 23 9 10 11 14 12 25 20 9 25 6 18 3
split_gain=5.766 8.84801 6.47116 5.61341 5.67628 7.08758 5.67998 5.24496 7.94242 6.93481 6.77843 6.51111 8.8633 6.99671 6.16728 10.7945 6.23228 5.56571 6.97859 5.3178 4.96619 6.35155 4.89094 5.077 4.77154 4.75433 5.52728 6.52736 4.68427 4.67724
threshold=1.4645 1.4405 0.7995 0.5315 0.8945 0.637 -0.0915 0.9485 0.9305 0.9295 1.63 1.0915 1.0285 0.637 0.7385 0.8565 1.1215 1.0625 0.6075 0.6235 0.8135 -0.6425 0.5535 1.1095 0.7755 1.2935 0.8525 -0.4455 0.4645 0.5925
left_child=1 3 -3 4 5 6 -1 14 11 -10 28 12 13 -9 19 20 17 18 -17 -5 -16 -22 23 -12 -7 26 27 -20 -11 -4
right_child=-2 2 29 7 -6 24 -8 8 9 10 22 -13 -14 -15 15 16 -18 -19 25 -21 21 -23 -24 -25 -26 -27 -28 -29 -30 -31
leaf_parent=6 0 2 29 19 4 24 6 13 9 28 23 11 12 13 20 18 16 17 27 19 21 21 22 23 24 25 26 27 28 29
leaf_value=-0.00664082 -0.00803365 -0.00399437 0.0423995 -0.0146103 -0.0254476 -0.00612587 0.018559 -0.0109285 0.0132363 -0.0229234 0.0135452 -0.0342512 -0.0298015 0.0231151 0.0185821 0.0195498 -0.0202834 0.0168414 -0.0395396 0.011539 -0.0217516 0.0125267 0.0255576 -0.0187871 -0.033761 0.0119441 0.00540157 -0.00821886 0.00353 0.0151293
Tree=30
num_leaves=31
split_feature=3 5 0 12 0 11 24 9 23 0 19 24 27 7 0 0 4 21 13 19 13 25 14 13 16 14 5 26 12 19
split_gain=5.61883 6.92798 6.43404 6.24317 8.74624 7.60021 5.87657 6.3766 7.46797 16.3424 7.63434 7.49096 10.6829 5.34502 5.32931 6.60141 4.99734 4.78086 5.38004 4.70004 8.20916 4.07318 5.61201 8.41624 13.0114 7.59464 6.81994 5.59554 5.89846 4.13126
threshold=1.6055 1.4405 1.624 0.5535 0.7495 0.3425 0.7385 0.9175 1.0625 1.3985 -1.497 0.9885 0.8275 -0.3245 0.4685 1.2245 0.1045 0.8315 1.1115 0.7985 0.6745 0.9485 -0.4425 1.0255 1.911 -0.8585 0.8755 0.7385 0.5535 -1.0505
left_child=1 6 -3 4 13 -6 19 21 10 16 -9 12 -12 -2 -13 17 -10 -16 -19 -1 -21 27 25 26 -25 -23 -24 -8 29 -29
right_child=3 2 -4 -5 5 -7 7 8 9 -11 11 14 -14 -15 15 -17 -18 18 -20 20 -22 22 23 24 -26 -27 -28 28 -30 -31
leaf_parent=19 13 2 2 3 5 5 27 10 16 9 12 14 12 13 17 15 16 18 18 20 20 25 26 24 24 25 26 29 28 29
leaf_value=0.0111313 -0.0118607 0.0184493 -0.00672481 0.00205523 0.0149952 -0.0237924 -0.0161438 -0.0286671 0.0443722 -0.0187858 0.0103021 0.0322503 -0.0177079 -0.0445067 0.017221 0.0238079 0.0146593 -0.0227693 0.00723519 -0.0281112 0.00852508 -0.0139455 -0.0485157 0.0252535 -0.0254882 0.0244034 -0.0151677 0.0242993 -0.00812114 0.00331209
Tree=31
num_leaves=31
split_feature=22 22 27 24 16 24 11 0 5 27 5 2 17 18 21 0 25 14 17 19 0 7 27 25 5 22 24 9 21 7
split_gain=5.44386 7.16497 7.00602 7.66051 5.95666 9.84202 8.61649 6.89663 5.84049 5.5445 7.92978 7.27539 5.47501 6.27376 5.28033 7.77203 5.62051 6.48893 5.40244 4.8703 4.7718 4.56369 4.32435 4.25723 4.23609 4.66073 4.60489 4.19713 5.32876 5.90881
threshold=0.7005 1.0255 1.1155 1.0515 1.911 0.9885 0.8135 0.5475 0.8165 0.8275 0.6385 0.5975 0.8375 0.4645 1.0105 1.3985 1.0155 -0.6425 0.9965 0.1215 0.9905 1.2855 0.7505 0.6975 0.6385 1.0685 0.7805 0.9175 1.1015 0.1395
left_child=12 2 4 -4 21 7 8 -6 -7 10 -9 -12 13 19 15 16 17 -3 -18 -1 -5 27 -19 -24 -16 -26 -27 28 29 -2
right_child=1 14 3 20 5 6 -8 9 -10 -11 11 -13 -14 -15 24 -17 18 22 -20 -21 -22 -23 23 -25 25 26 -28 -29 -30 -31
leaf_parent=19 29 17 3 20 7 8 6 10 8 9 11 11 12 13 24 15 18 22 18 19 20 21 23 23 25 26 26 27 28 29
leaf_value=0.0332121 -7.22727e-005 0.000856484 -0.0371316 0.00302238 -0.0340264 1.84322e-005 -0.0179734 -0.0201625 0.0316413 -0.023853 -0.00477312 0.0299521 0.0296794 -0.0189462 -0.020396 -0.00982061 -0.00916834 0.00805557 0.0166918 -0.00113132 -0.0238932 0.0143052 0.0149199 0.041321 -0.0200668 0.0220241 0.000460438 0.00587227 0.0167847 -0.0163872
Tree=32
num_leaves=31
split_feature=25 13 8 5 9 27 11 27 1 2 0 6 25 17 21 6 26 5 5 5 0 3 11 6 17 27 22 4 19 6
split_gain=4.69911 6.51469 5.09779 12.8453 8.78361 9.49967 8.52037 7.04486 6.39221 8.2943 6.85865 8.98119 6.37413 6.32411 6.23179 5.8999 6.76668 5.8845 5.77727 8.22075 5.52785 5.56555 5.41936 4.98937 4.97589 4.77267 5.60461 4.91744 4.76556 6.49246
threshold=1.4645 1.494 1.63 1.0705 1.0735 0.8565 1.2975 1.1155 0.467 -1.2845 0.8245 0.0725 0.9485 1.0875 1.3005 0.4465 0.9005 0.5675 0.6985 0.8165 1.3985 0.9335 0.3425 0.0725 0.9155 0.8275 0.9375 -0.1445 1.0475 -0.0985
left_child=1 2 4 8 5 6 13 -5 9 -4 11 12 -11 28 17 24 -17 -7 -6 -20 21 -19 23 -15 -10 27 -27 -21 29 -1
right_child=-2 -3 3 7 18 14 -8 -9 15 10 -12 -13 -14 22 -16 16 -18 20 19 25 -22 -23 -24 -25 -26 26 -28 -29 -30 -31
leaf_parent=29 0 1 9 7 18 17 6 7 24 12 10 11 12 23 14 16 16 21 19 27 20 21 22 23 24 26 26 27 28 29
leaf_value=0.00685032 -0.00734697 0.0118986 0.0292005 0.0276705 0.0221295 0.00188022 0.0220774 -0.00307359 0.010101 -0.00808881 0.00925192 0.0109568 -0.0427594 0.0041392 0.00277458 -0.0400252 -0.00227428 0.00139093 -0.0245875 0.0398242 -0.0413737 -0.0261422 -0.0122678 0.0364985 -0.0174013 -0.0145515 0.00991754 0.00495516 -0.0252892 -0.0147139
Tree=33
num_leaves=31
split_feature=10 6 0 22 22 21 0 9 27 5 0 3 10 25 25 25 16 23 26 15 2 25 27 22 23 21 4 24 10 7
split_gain=4.58794 8.32905 8.20085 5.13091 5.91636 5.85634 6.7645 5.56954 5.28649 7.50037 7.13325 8.55633 6.75956 6.11551 5.68191 5.08859 4.91215 7.73968 7.5506 8.56039 5.60302 5.53882 4.17415 12.373 5.79261 5.57325 6.96262 4.71802 4.11914 4.09155
threshold=-1.4955 -0.8425 1.0915 0.7005 1.0255 1.0105 1.3985 1.0735 1.0405 1.2695 0.9905 1.2575 -0.2965 1.1095 0.9005 1.0155 1.911 0.9985 0.8705 0.5745 -0.1025 1.1095 0.8565 0.8835 1.0155 0.9605 0.7895 1.1285 -0.1055 0.6025
left_child=1 -1 -3 7 8 6 15 -2 9 16 11 13 -11 -10 -12 29 22 18 19 -18 -19 -20 25 27 28 26 -5 -24 -25 -6
right_child=3 2 -4 4 5 -7 -8 -9 10 12 14 -13 -14 -15 -16 -17 17 20 21 -21 -22 -23 23 24 -26 -27 -28 -29 -30 -31
leaf_parent=1 7 2 2 26 29 5 6 7 13 12 14 11 12 13 14 15 19 20 21 19 20 21 27 28 24 25 26 27 28 29
leaf_value=-0.0316673 0.00523293 -0.012504 0.0253352 0.00614577 0.0144228 -0.00115768 -0.00800716 0.0343077 0.0326331 -0.00676652 -0.00522677 -0.0181402 0.0268123 -0.00575013 -0.0372382 0.00431189 -0.0349395 -0.0113191 0.0118262 -0.00106867 0.0185138 -0.0202714 -0.000582726 -0.013366 0.00100973 0.0183907 -0.0153215 0.0289139 -0.041601 0.0346347
Tree=34
num_leaves=31
split_feature=3 13 5 0 24 24 0 23 3 26 4 16 22 8 27 5 11 24 4 18 20 13 7 4 25 19 13 8 3 21
split_gain=3.86724 5.4167 5.23809 4.35055 4.32523 4.48266 6.11063 6.37799 8.4144 8.04004 5.81163 5.94616 5.85144 5.15753 5.0468 4.8541 4.87595 4.1789 4.05898 4.03959 5.46402 3.98161 4.69639 5.90372 3.65367 3.56805 6.57574 4.02702 4.19816 3.86144
threshold=1.6055 0.7375 1.4405 1.624 0.7385 0.9885 1.2245 1.0625 0.8415 0.8705 0.3295 1.911 0.8835 1.63 0.8015 0.8755 0.5755 0.8605 -0.6025 0.4645 0.7755 0.7995 -0.5835 -0.3665 0.6975 0.7985 0.6745 0.5435 0.5005 0.7995
left_child=2 24 4 21 25 6 7 8 10 -9 11 17 -12 14 -8 16 -10 -6 -3 20 -20 -4 -23 -24 -2 27 -27 -1 -29 -30
right_child=1 18 3 -5 5 -7 13 9 15 -11 12 -13 -14 -15 -16 -17 -18 -19 19 -21 -22 22 23 -25 -26 26 -28 28 29 -31
leaf_parent=27 24 18 21 3 17 5 14 9 16 9 12 11 12 13 14 15 16 17 20 19 20 22 23 23 24 26 26 28 29 29
leaf_value=0.00357555 -0.00942259 -0.0256838 -0.00376873 -0.00508068 0.00689805 0.00225264 -0.00825365 -0.00433117 -0.0325751 0.0336937 0.0120136 -0.00556695 -0.0198263 -0.00251018 -0.0370897 -0.00162833 -0.00530228 0.0322812 -0.00173382 0.00843748 -0.0345406 0.0381172 0.0298685 -0.00364286 0.0146673 -0.0254575 0.00755791 0.0365312 -0.00627077 0.0224247
Tree=35
num_leaves=31
split_feature=10 0 15 27 26 0 6 6 25 0 4 5 6 22 3 22 5 27 21 25 11 2 5 21 9 9 13 18 13 27
split_gain=3.71601 7.00292 5.06754 4.32824 8.84407 7.05144 8.63297 8.13607 6.51558 11.1789 7.35219 6.23176 7.49083 5.08219 6.48536 8.19513 5.00603 4.95562 4.95016 4.93872 4.83839 4.80509 5.02177 6.08397 6.00684 5.37241 4.62263 4.58743 4.32369 5.30244
threshold=-1.4955 1.0915 0.3575 1.0405 0.8705 1.3985 0.8405 -0.6275 0.8075 1.0915 -0.6025 1.4405 1.102 0.9895 0.8415 0.7695 0.9985 0.9295 1.0105 0.9005 -0.8145 1.2875 0.6985 0.7995 0.6755 0.8545 0.7995 -0.0915 0.6745 0.8565
left_child=1 2 -1 4 8 20 7 -7 21 10 -10 12 13 14 15 -6 26 -17 28 -20 -5 22 23 -2 -25 -26 -16 -14 -15 -30
right_child=3 -3 -4 5 11 6 -8 -9 9 -11 -12 -13 27 18 16 17 -18 -19 19 -21 -22 -23 -24 24 25 -27 -28 -29 29 -31
leaf_parent=2 23 1 2 20 15 7 6 7 10 9 10 11 27 28 26 17 16 17 19 19 20 21 22 24 25 25 26 27 29 29
leaf_value=-0.00676484 -0.017582 0.0110226 -0.0348513 0.0116715 0.0213673 -0.00425103 0.0127223 -0.0389882 -0.0230706 -0.0363886 0.00502587 0.026172 -0.030597 0.0423578 -0.00642515 -0.00500402 0.0256448 -0.0316026 -0.0130852 0.0159105 -0.00385418 -0.0140722 0.0105487 0.0186766 -0.0238474 0.00955425 0.0155395 -0.00108392 0.0355821 0.0069709
Tree=36
num_leaves=31
split_feature=25 13 11 11 26 18 24 13 1 14 3 13 18 1 6 18 25 1 25 3 10 10 22 25 22 6 26 25 11 19
split_gain=3.77568 4.81947 4.07769 6.83875 11.0182 4.07425 5.48908 4.34176 4.3129 5.93944 5.64224 4.29638 5.26127 3.99628 3.99421 3.90854 7.63877 7.57137 7.16283 6.92327 6.7507 6.49104 5.7773 5.65529 5.60384 7.43012 4.56304 4.12916 4.81569 4.6307
threshold=1.4645 1.494 1.2975 0.3425 1.1975 -0.0915 1.2295 0.6745 0.467 0.1045 0.277 1.3325 -0.4555 0.0805 -0.6275 0.8775 0.9485 0.8945 0.6975 1.2575 0.0745 -0.4795 0.8195 0.9005 1.0255 0.4465 0.9005 0.6255 -1.0605 0.3385
left_child=1 5 3 -2 -5 6 8 -8 10 -10 -1 12 -12 -9 -14 16 17 22 -19 23 -21 -18 -7 24 25 -17 -25 -24 -29 -30
right_child=2 -3 -4 4 -6 15 7 13 9 -11 11 -13 14 -15 -16 19 21 18 -20 20 -22 -23 27 26 -26 -27 -28 28 29 -31
leaf_parent=10 3 1 2 4 4 22 7 13 9 9 12 11 14 13 14 25 21 18 18 20 20 21 27 26 24 25 26 28 29 29
leaf_value=0.0234289 -0.0110064 0.0103128 -0.0271435 0.0375356 -0.0103541 0.0311205 0.0253922 0.0121894 -0.0276126 -0.00388042 -0.00169599 0.0175542 -0.00180134 -0.0134658 -0.0256246 0.00389609 -0.0226028 -0.0216682 0.0122807 -0.0363064 -0.00296566 0.00345689 -0.000367633 -0.00462287 0.0149153 -0.0289004 0.0234124 -0.00381753 0.0128449 0.0379726
Tree=37
num_leaves=31
split_feature=22 17 18 22 23 0 19 10 15 9 13 27 5 27 0 10 19 14 21 25 26 25 7 16 21 25 0 22 27 3
split_gain=3.18702 4.39582 5.07039 4.08954 5.06667 9.57678 4.867 9.14332 6.00545 4.68318 6.49972 5.82805 4.56151 4.34661 5.57715 4.46163 3.95726 3.4984 3.43311 5.5928 6.29345 8.94521 6.49805 6.21105 7.52882 9.27241 7.54919 5.0864 5.00888 4.68538
threshold=0.7005 0.8375 0.4645 1.0685 0.9875 0.4685 -0.5825 -0.6665 -1.0245 1.0735 1.0255 0.8895 0.8165 1.2465 0.6175 -0.2965 0.1215 0.4535 0.5755 1.1095 0.8705 0.6975 0.1395 1.911 0.7995 0.6975 0.9025 0.8555 0.9295 0.7615
left_child=1 2 16 13 9 -6 12 -8 -9 11 -11 -5 -7 18 -15 -16 -1 -10 27 20 23 29 28 -20 -25 26 -26 -2 -23 -22
right_child=3 -3 -4 4 5 6 7 8 17 10 -12 -13 -14 14 15 -17 -18 -19 19 -21 21 22 -24 24 25 -27 -28 -29 -30 -31
leaf_parent=16 27 1 2 11 5 12 7 8 17 10 10 11 12 14 15 15 16 17 23 19 29 28 22 24 26 25 26 27 28 29
leaf_value=0.0290017 -0.00563594 0.0254342 -0.018761 0.0218199 -0.0260786 0.0329769 -0.0221843 0.030499 0.00843913 0.000440101 0.0350072 -0.00806358 0.00596985 0.00381058 -0.00594098 -0.0403755 -0.00244173 -0.0130539 0.00100881 -0.00968644 -0.0266547 0.028753 0.00185665 -0.0321642 -0.0120348 -0.0223804 0.0244632 0.0248774 0.00670073 6.52485e-005
Tree=38
num_leaves=31
split_feature=3 12 0 11 7 18 13 18 11 13 22 9 25 24 7 11 4 24 14 15 25 17 6 11 11 5 14 19 13 6
split_gain=2.93899 4.7725 7.20238 6.12577 4.74582 4.09378 4.88964 5.04742 5.21273 4.42498 5.92232 4.43469 4.35824 7.04918 6.95007 6.76047 5.22521 5.20653 4.67731 6.63551 5.62242 6.93113 4.45358 4.44898 6.50606 4.97419 4.20589 3.95958 5.1106 3.90644
threshold=1.6055 0.5535 0.7495 0.3425 -0.3245 -0.6495 1.2095 -0.2715 1.2975 0.5315 0.7695 0.7375 1.0155 1.0515 1.0345 1.2975 0.3295 0.7385 0.1045 1.0375 0.6975 0.8375 -0.4455 -0.3575 0.115 1.0705 -0.0735 -1.0505 0.6745 0.2535
left_child=5 2 4 -4 -2 9 12 26 29 11 -11 -1 13 17 16 23 -15 22 -19 20 -20 -22 -7 -14 -25 -26 -8 -3 -29 -9
right_child=1 27 3 -5 -6 6 7 8 -10 10 -12 -13 15 14 -16 -17 -18 18 19 -21 21 -23 -24 24 25 -27 -28 28 -30 -31
leaf_parent=11 4 27 3 3 4 22 26 29 8 10 10 11 23 16 14 15 16 18 20 19 21 21 22 24 25 25 26 28 28 29
leaf_value=-0.00102147 -0.00880806 0.0215502 0.0152315 -0.0202263 -0.0400853 0.0215053 0.00971734 0.015901 -0.0167727 0.019772 -0.003926 -0.0324297 -0.0108051 0.0301826 -0.0105132 -0.0302687 0.00648163 -0.0124958 -0.00419547 -0.0213259 0.0432416 0.00297441 0.00159395 0.0285721 -0.0153462 0.0135034 0.040836 0.0147581 -0.0140432 0.000450952
Tree=39
num_leaves=31
split_feature=25 5 13 22 10 8 5 7 27 26 22 24 12 0 5 13 15 16 15 11 0 17 17 21 19 20 5 2 17 18
split_gain=2.80024 4.25168 4.19577 5.02518 3.73977 3.62779 7.00337 7.71528 6.80902 8.94482 7.95382 7.55852 6.19333 5.89627 5.54685 5.50457 6.60219 5.22973 5.18336 5.06691 5.06673 4.90464 4.98709 4.77454 5.15188 4.84994 6.05344 4.75627 4.53054 4.22371
threshold=1.4645 1.4405 1.2095 0.9895 -0.2965 1.63 1.0705 0.6025 0.8275 0.7935 0.9635 1.1285 0.5535 0.8245 1.1595 1.2095 -1.2635 0.637 -0.5565 0.3425 1.0915 1.0875 0.6435 0.9605 -0.8125 0.7755 0.8165 -0.3345 1.0875 0.2795
left_child=1 5 3 -3 -4 8 13 27 9 12 11 20 -1 23 -12 16 -15 -13 -14 28 -10 22 -18 24 -7 26 -26 -8 -11 -20
right_child=-2 2 4 -5 -6 6 7 -9 10 19 14 17 18 15 -16 -17 21 -19 29 -21 -22 -23 -24 -25 25 -27 -28 -29 -30 -31
leaf_parent=12 0 3 4 3 4 24 27 7 20 28 14 17 18 16 14 15 22 17 29 19 20 21 22 23 26 25 26 27 28 29
leaf_value=0.00493892 -0.00581952 -0.0102246 0.0039605 0.0168737 0.0324228 -0.019644 -0.0138653 0.0385044 -0.0162598 0.0128127 0.00364791 0.0109534 0.00265716 0.0284865 -0.0175511 0.0284506 -0.00758519 -0.0178933 -0.0114821 0.00108262 -0.0411314 -0.0183674 0.0138326 -0.0199263 -0.0122182 0.0256255 0.0185024 0.0166444 0.0385306 -0.0389574
Tree=40
num_leaves=31
split_feature=10 6 0 21 0 5 21 26 14 5 2 19 27 4 17 26 27 0 23 26 17 19 19 5 23 25 16 10 19 20
split_gain=2.76542 6.93425 5.58706 3.56074 3.41721 9.3601 7.73637 5.31865 7.80127 4.80981 6.46226 5.48462 4.64 4.34838 4.18413 4.35242 4.10789 6.43603 4.44062 8.13162 6.06459 4.91732 6.82851 10.1087 7.5282 7.86266 6.19512 5.56081 6.71332 5.69818
threshold=-1.4955 -0.8425 1.0915 0.9075 1.3985 0.6385 0.8835 0.9005 0.4535 1.2695 -1.2845 -0.8125 0.8565 0.1045 0.9155 1.1975 1.2465 0.5475 1.0625 0.9305 0.9155 1.0475 -0.1305 0.9985 0.9875 1.1095 0.637 0.4345 -0.5825 0.7755
left_child=1 -1 3 -3 9 -6 7 -7 -9 16 -11 13 -8 -12 15 -13 18 -18 21 20 -20 22 24 -24 -2 27 -23 28 -26 -29
right_child=4 2 -4 -5 5 6 12 8 -10 10 11 14 -14 -15 -16 -17 17 -19 19 -21 -22 26 23 -25 25 -27 -28 29 -30 -31
leaf_parent=1 24 3 2 3 5 7 12 8 8 10 13 15 12 13 14 15 17 17 20 19 20 26 23 23 28 25 26 29 28 29
leaf_value=-0.0278756 0.00579046 -0.0229469 0.0224417 0.00572069 0.0166794 -0.0368636 0.0188493 -0.023741 0.0123875 -0.0147973 0.0172472 0.0230414 -0.00528716 -0.0153833 0.0285714 -0.00820666 0.00711711 -0.0241894 -0.0112136 0.0229981 0.01633 -0.000471125 0.00313627 0.0296398 -0.00323931 -0.0308117 -0.0228201 0.0227606 -0.0346302 -0.0121197
Tree=41
num_leaves=31
split_feature=24 24 27 0 26 25 10 25 11 9 22 5 1 19 13 18 14 5 10 3 1 1 26 6 9 2 15 2 1 0
split_gain=2.59575 5.34386 5.99787 7.96284 6.04229 7.82361 8.03508 10.7861 5.94551 5.69107 5.62896 5.32462 5.25848 4.93351 7.43733 8.96204 4.71558 5.26809 4.22497 8.90914 4.67213 4.20102 4.00561 3.79654 5.68545 5.10174 10.588 5.77895 5.72988 6.43763
threshold=0.7385 0.9885 0.8895 1.3985 0.8365 1.1095 1.0875 0.8075 -0.3575 0.7915 1.0685 0.7555 -0.2845 0.7985 0.8715 -0.0915 0.1045 0.8165 -0.6665 0.6795 0.0805 -0.1105 0.8365 -1.0705 0.9175 0.36 0.3575 -0.579 -0.2845 0.6175
left_child=13 2 4 9 16 6 7 12 -7 -4 21 -9 -6 18 15 -15 -2 -18 19 -1 22 -11 -20 24 -3 26 28 -28 -25 -30
right_child=1 23 3 -5 5 8 -8 11 -10 10 -12 -13 -14 14 -16 -17 17 -19 20 -21 -22 -23 -24 25 -26 -27 27 -29 29 -31
leaf_parent=19 16 24 9 3 12 8 6 11 8 21 10 11 12 15 14 15 17 17 22 19 20 21 22 28 24 25 27 27 29 29
leaf_value=0.0206691 -0.0151354 -0.00481158 0.0101698 -0.0320317 0.01073 -0.02962 0.0464859 0.0034035 0.00329652 -0.0389448 -0.00115419 0.0361901 -0.0214807 -0.0406437 0.0119033 0.00385418 -0.00633974 0.0226776 0.0133454 -0.01966 0.00428914 -0.0105672 0.0380734 0.0241405 0.0228714 -0.00555226 -0.0154569 0.00563038 -0.0164267 0.0128162
Tree=42
num_leaves=31
split_feature=3 12 0 11 8 19 15 5 16 10 17 0 16 27 19 13 18 1 19 0 15 25 22 3 8 10 3 1 9 22
split_gain=2.54796 4.26558 5.71308 5.03713 4.64386 3.26729 4.29937 3.07057 4.56842 6.4327 3.7268 3.70027 4.71738 3.96969 5.55849 4.25402 3.52203 5.00918 4.05722 7.31453 5.62958 5.24361 4.63252 5.20613 6.26503 4.18647 4.06153 4.86312 3.92915 3.23726
threshold=1.6055 0.5535 0.7495 0.3425 1.63 -1.0505 0.3575 1.4405 1.911 -0.1055 1.316 0.3865 1.911 1.2465 0.5535 1.1115 -0.0915 -1.547 0.5535 1.2245 -0.7875 0.5315 0.8195 0.9335 1.63 0.4345 0.6795 0.0805 0.6755 0.9375
left_child=7 2 4 -4 -2 -3 -7 11 10 -10 -9 12 -1 16 15 -15 18 -18 19 21 29 -13 -23 -24 -25 28 -22 -28 -21 -20
right_child=1 5 3 -5 -6 6 -8 8 9 -11 -12 13 -14 14 -16 -17 17 -19 20 25 26 22 23 24 -26 -27 27 -29 -30 -31
leaf_parent=12 4 5 3 3 4 6 6 10 9 9 10 21 12 15 14 15 17 17 29 28 26 22 23 24 24 25 27 27 28 29
leaf_value=0.0232632 -0.0412473 0.0197303 0.0131198 -0.0192439 -0.0102802 0.00668394 -0.0202175 -0.00702806 0.00259395 0.0399099 0.0151583 -0.0135571 -0.00523579 -0.0359683 0.00732141 -0.00686517 -0.0207591 0.00415822 -0.0379262 0.0117597 0.00857042 0.0250743 0.012021 -0.021599 0.0123954 -0.0321746 -0.0236657 0.00603284 -0.015866 -0.0113333
Tree=43
num_leaves=31
split_feature=25 25 26 27 27 8 23 6 24 27 4 15 5 11 2 16 2 26 15 9 27 3 26 14 24 24 23 22 1 25
split_gain=2.80023 4.58772 6.12864 7.30984 7.27672 6.33673 4.09149 4.46452 4.0324 7.48878 7.62218 6.08383 5.79434 5.59644 5.08444 4.94923 4.09525 3.96744 6.32117 5.10058 6.74703 7.1308 7.53343 4.73042 3.82961 6.70127 5.04479 4.71548 4.24854 5.64177
threshold=0.9485 0.8075 0.8705 0.8895 0.7765 0.5435 0.9945 -0.0985 1.3685 1.1155 1.0245 -1.2635 0.9365 0.8135 0.8325 0.637 -0.1025 0.9305 1.2795 0.6755 0.9295 0.9335 1.0055 -0.2675 1.2295 1.1285 0.9875 0.9635 -1.547 0.5315
left_child=1 24 4 -4 5 -3 7 -5 9 11 15 12 -2 14 -10 16 -11 -13 19 -19 21 22 -21 -22 25 28 -26 -28 -1 -30
right_child=8 2 3 6 -6 -7 -8 -9 13 10 -12 17 -14 -15 -16 -17 -18 18 -20 20 23 -23 -24 -25 26 -27 27 -29 29 -31
leaf_parent=28 12 5 3 7 4 5 6 7 14 16 10 17 12 13 14 15 16 19 18 22 23 21 22 23 26 25 27 27 29 29
leaf_value=-0.0177468 -0.00187698 -0.0149863 0.0280442 0.0272004 -0.0275815 0.0199331 -0.00672552 0.000839427 0.0204011 -0.0398705 -0.0467254 -0.0116985 0.033294 -0.0111963 -0.00669541 0.00469587 -0.00610956 0.015034 0.0211867 0.0328982 -0.00172507 -0.0197143 -0.00729921 -0.0301565 -0.0278806 0.0235698 0.0138851 -0.0168523 -0.0063443 0.00530646
Tree=44
num_leaves=31
split_feature=11 23 8 23 17 19 10 22 22 4 6 13 3 1 0 27 13 3 13 3 27 18 5 26 27 5 27 14 13 0
split_gain=2.48917 5.92336 4.83688 4.87345 4.14965 6.11163 6.75436 5.84178 6.62932 5.04482 4.69071 7.79699 4.42046 4.31763 5.34637 6.5324 5.78907 5.59871 6.53136 4.58818 4.17221 6.67882 4.81552 6.21687 4.07013 4.05167 3.80053 4.85172 7.12938 6.28702
threshold=-1.2625 0.9835 1.63 0.9985 0.6435 1.0475 -0.4795 0.7695 0.9635 -1.2775 0.8405 0.9435 0.9335 -1.1935 0.9905 0.9775 0.8715 0.7615 0.8715 1.4035 0.7765 0.0915 0.9365 1.1975 0.7765 0.8165 1.0405 -1.1055 1.2095 0.5475
left_child=1 -1 24 -4 5 9 -7 10 13 -2 11 12 -6 -9 16 17 -15 18 -16 -18 21 -11 -22 -24 -3 -26 27 -10 29 -29
right_child=4 2 3 -5 7 6 -8 8 26 20 -12 -13 -14 14 15 -17 19 -19 -20 -21 22 -23 23 -25 25 -27 -28 28 -30 -31
leaf_parent=1 9 24 3 3 12 6 6 13 27 21 10 11 12 16 18 15 19 17 18 19 22 21 23 23 25 25 26 29 28 29
leaf_value=0.0155239 0.0182912 -0.0172943 -0.0294575 -0.00176237 0.0226414 0.00441494 -0.0289531 -0.018281 0.0264651 -0.00771678 -0.00500669 0.0449801 -0.00773164 -0.00600287 0.00336504 -0.0297296 0.0175345 0.0105657 -0.0328033 -0.00933346 -0.0171374 0.0217758 0.0114545 -0.0182909 0.0224609 -0.00416238 -0.000413031 -0.0201178 0.0202193 0.00554468
Tree=45
num_leaves=31
split_feature=25 24 13 18 0 1 0 23 11 21 14 3 22 4 14 25 26 27 27 8 9 11 23 16 2 2 15 14 1 7
split_gain=2.20128 3.8205 5.20206 5.97049 4.71563 6.66134 7.33273 9.65132 5.9003 6.57835 5.85582 11.8878 4.59031 4.74478 4.47714 3.77397 4.96053 6.16221 5.76563 5.32293 3.60577 3.49801 3.32659 4.24271 3.15826 4.21442 4.63401 4.63873 4.18677 7.37447
threshold=0.9485 1.2295 0.6065 0.2795 0.6175 1.1635 1.3985 1.1215 -0.5815 0.8835 0.2785 1.0285 0.8835 -0.3665 0.2785 0.8075 0.8705 0.8895 0.7765 1.63 0.9925 -1.4995 0.9945 0.637 1.2875 0.5975 0.3575 0.4535 0.8945 0.1395
left_child=15 2 3 -2 10 6 7 8 9 -6 11 -4 -10 -14 -8 21 18 -18 19 -17 -12 -1 23 -19 25 28 27 -27 -23 -30
right_child=1 -3 4 -5 5 -7 14 -9 12 -11 20 -13 13 -15 -16 16 17 22 -20 -21 -22 24 -24 -25 -26 26 -28 -29 29 -31
leaf_parent=21 3 1 11 3 9 5 14 7 12 9 20 11 13 13 14 19 17 23 18 19 20 28 22 23 24 27 26 27 29 29
leaf_value=-0.0158689 -0.0321471 0.00388701 0.0189877 0.00073604 -0.0331607 -0.0256659 -0.027535 0.0371837 0.0303619 0.0065751 -0.0398184 -0.0262767 0.019636 -0.00637871 0.00551282 -0.00909534 0.0260579 0.000609479 -0.0244243 0.0223442 -0.0102534 0.00222062 -0.00597935 0.0265305 -0.0089822 0.00823515 -0.00427973 0.0339074 0.00701365 -0.0243119
Tree=46
num_leaves=31
split_feature=10 6 0 21 1 6 27 25 9 1 5 21 0 3 5 19 20 5 21 2 2 23 1 0 23 17 25 25 2 9
split_gain=2.10694 5.50257 4.64594 3.00303 2.3502 7.43844 5.11285 2.79253 4.40627 5.71259 4.62559 4.56513 7.17312 5.7766 4.76522 5.38795 4.0201 5.28966 4.0015 6.47248 6.21929 6.76514 5.47589 5.33903 6.91187 6.19804 5.22477 5.57421 5.1316 4.99188
threshold=-1.4955 -0.8425 1.0915 0.9075 -1.547 -0.6275 0.8565 1.4645 0.9175 -0.6935 0.9365 0.8315 1.3985 1.6055 1.4405 -1.0505 0.7755 0.8755 0.8835 -0.7995 0.1275 0.989 0.6625 1.3985 0.9875 0.8375 1.0155 0.6975 -1.2845 0.6075
left_child=1 -1 3 -3 5 -2 -7 8 18 10 -10 12 16 14 15 -13 17 -11 19 22 -20 -22 28 24 25 -21 27 -26 -6 -25
right_child=4 2 -4 -5 7 6 -8 -9 9 11 -12 13 -14 -15 -16 -17 -18 -19 20 23 21 -23 -24 29 26 -27 -28 -29 -30 -31
leaf_parent=1 5 3 2 3 28 6 6 7 10 17 10 15 12 13 14 15 16 17 20 25 21 21 22 29 27 25 26 27 28 29
leaf_value=-0.0250227 0.00848362 -0.0211424 0.0207116 0.00537744 0.00520035 -0.00284761 -0.0375451 -0.00515979 0.029649 0.0126187 0.00651265 -0.0186792 -0.0110009 -0.0196644 0.0206281 0.00350922 0.00193805 0.0445129 0.0103354 0.00396395 -0.0150448 0.00633842 -0.0365741 0.00334643 -0.0124686 0.0351838 -0.0257686 0.0131914 -0.0245464 -0.0292729
Tree=47
num_leaves=31
split_feature=22 23 0 18 19 10 14 23 9 13 27 23 23 22 21 9 9 18 14 21 25 21 20 25 1 18 4 5 17 13
split_gain=2.07145 3.63148 6.51744 4.31871 5.17635 5.09693 4.38318 4.07315 3.74251 5.02005 4.14335 3.64848 3.8298 3.37689 5.27331 4.21613 8.56443 5.14291 4.70742 5.52612 7.41213 4.02197 4.02353 4.56555 7.19839 3.85662 3.78385 3.66542 3.92061 3.55171
threshold=1.0685 0.9875 0.4685 0.4645 0.1215 0.2455 -0.0735 0.9945 1.0735 1.2095 0.8895 0.9915 1.0155 0.8195 0.5755 0.6755 0.7915 -1.5345 0.6495 0.8835 1.0155 0.7995 2.3265 0.6975 0.2725 0.2795 -0.1445 0.9985 0.9155 1.3325
left_child=13 8 -3 4 11 6 -6 -5 10 -10 -2 -4 -13 29 -15 21 27 -18 -19 26 -21 25 23 -23 -25 -16 -20 28 -17 -1
right_child=1 2 3 7 5 -7 -8 -9 9 -11 -12 12 -14 14 15 16 17 18 19 20 -22 22 -24 24 -26 -27 -28 -29 -30 -31
leaf_parent=29 10 2 11 7 6 5 6 7 9 9 10 12 12 14 25 28 17 18 26 20 20 23 22 24 24 25 26 27 28 29
leaf_value=0.00163438 0.0184457 -0.0217468 -0.00961729 0.0276696 -0.00681847 0.00708181 -0.0381234 0.00221234 0.0052155 0.0350356 -0.00719528 0.0301914 0.00338919 0.0155692 -0.0231581 -0.0335308 0.0205865 -0.00777772 0.0345784 0.00809535 -0.0303306 -0.000936188 -0.00427173 0.0353998 -0.00141181 0.00537029 0.0046738 -0.000251598 -0.0113812 0.0198875
Tree=48
num_leaves=31
split_feature=23 23 14 6 22 21 24 13 9 18 3 1 22 27 20 26 3 16 12 4 24 6 23 8 0 1 13 18 17 7
split_gain=1.88742 3.37859 4.37946 5.35509 3.80351 3.6817 5.45352 4.96176 4.41547 4.15341 4.14866 4.54498 3.30332 4.2921 7.625 6.59639 5.20577 7.32163 4.89268 5.23631 5.20389 4.85542 5.671 4.31571 4.14877 3.93058 3.49673 3.49124 3.48926 3.44005
threshold=1.0625 1.0155 -0.4425 0.0725 1.0685 1.3005 0.8225 0.7375 1.0735 0.2795 0.9335 -0.1105 0.8195 0.8565 2.3265 0.7935 0.7615 0.637 1.661 0.5575 1.0515 -0.4455 0.989 0.5435 0.9905 0.467 0.9435 0.0915 0.7695 -0.8325
left_child=1 4 -3 -4 12 7 -7 -6 10 -10 11 -9 29 15 18 16 17 -14 19 -15 -20 23 25 -17 -16 26 -23 -22 -18 -1
right_child=-2 2 3 -5 5 6 -8 8 9 -11 -12 -13 13 14 24 21 28 -19 20 -21 27 22 -24 -25 -26 -27 -28 -29 -30 -31
leaf_parent=29 0 2 3 3 7 6 6 11 9 9 10 11 17 19 24 23 28 17 20 19 27 26 22 23 24 25 26 27 28 29
leaf_value=-0.00777536 0.00373015 -0.0289532 0.0160706 -0.0181727 0.0246029 0.0179403 -0.00845646 -0.0118571 0.0273706 -0.00189099 -0.0187348 0.0210234 0.0143927 0.0127082 -0.0125275 0.0371145 -0.00612457 -0.0161944 -0.0266488 -0.0119868 0.0122978 -0.00924121 0.01749 0.00716945 -0.037464 -0.0204924 0.0188728 -0.0139418 -0.0323283 0.00733117
Tree=49
num_leaves=31
split_feature=24 27 0 9 25 18 22 10 13 14 2 21 9 6 27 26 19 18 22 10 19 27 9 22 10 23 20 26 11 6
split_gain=1.78566 4.5142 5.42033 3.35981 5.27146 4.85741 4.50247 4.52791 8.09934 6.12694 4.78664 4.33229 5.7559 6.32391 8.23093 7.03366 4.15016 5.38792 4.52744 4.87509 5.27875 3.85621 5.10617 6.05745 4.56616 5.73739 3.44698 3.42915 3.13184 5.2808
threshold=0.9885 1.1155 1.2245 0.6755 0.5315 -0.0915 1.0255 -0.6665 1.0255 -0.2675 0.5975 0.5755 0.8545 -1.445 0.7155 0.8365 0.5535 -0.2715 0.8555 0.6235 -0.5825 0.9295 1.0735 0.9635 0.4345 0.9875 0.7755 1.1175 0.8135 -1.0705
left_child=1 3 -3 4 5 -1 7 9 10 -6 -9 -5 16 -14 -15 26 18 -18 -13 20 -20 22 23 -17 25 -24 -16 -23 29 -2
right_child=28 2 -4 11 6 -7 -8 8 -10 -11 -12 12 13 14 15 21 17 -19 19 -21 -22 27 24 -25 -26 -27 -28 -29 -30 -31
leaf_parent=5 29 2 2 11 9 5 6 10 8 9 10 18 13 14 26 23 17 17 20 19 20 27 25 23 24 25 26 27 28 29
leaf_value=-0.0217449 0.0183808 -0.0043821 -0.0345698 0.0160549 0.01016 0.00481481 0.0241258 0.00968938 -0.0156485 -0.0285679 0.0369466 0.0108217 -0.0253816 0.0211744 -0.00576254 0.00140326 -0.0435642 -0.0104791 -0.00399039 0.00878828 -0.0352143 -0.0220867 0.0298114 0.0363419 -0.0179358 -0.0060382 -0.0312448 0.00390732 -0.00393338 0.00216602
Tree=50
num_leaves=31
split_feature=11 23 8 4 0 13 13 1 17 19 10 26 5 21 27 26 19 0 21 22 22 1 26 10 3 6 4 0 18 23
split_gain=1.75766 4.78047 4.04721 4.56727 3.78448 3.20382 5.11607 3.92441 3.19884 4.92912 5.75092 4.09058 5.82132 5.23079 7.49252 6.19351 5.43705 4.79074 4.85026 4.07443 4.65484 4.39498 6.5486 5.83902 4.08333 4.28435 3.73167 3.65448 3.76115 3.62308
threshold=-1.2625 0.9835 1.63 0.5575 0.8245 1.2095 0.6745 -0.1105 0.6435 1.0475 -0.4795 1.3435 0.9365 0.9075 0.8275 0.7385 -0.3615 1.2245 0.8835 0.7695 0.9635 -0.1105 1.1175 0.8375 1.2575 0.4465 -1.2775 1.0915 -0.0915 0.9855
left_child=1 -1 5 4 -4 6 -3 -8 9 11 -11 12 13 15 -15 -2 -17 18 -14 24 21 26 23 27 25 -10 -21 28 -23 -28
right_child=8 2 3 -5 -6 -7 7 -9 19 10 -12 -13 17 14 -16 16 -18 -19 -20 20 -22 22 -24 -25 -26 -27 29 -29 -30 -31
leaf_parent=1 15 6 4 3 4 5 7 7 25 10 10 11 18 14 14 16 16 17 18 26 20 28 22 23 24 25 29 27 28 29
leaf_value=0.0143993 -0.0328802 -0.0152431 -0.0240487 -0.0361047 0.00485538 -0.0169278 0.0283417 -0.00182991 0.0288434 0.0045529 -0.0264507 -0.0194982 0.0367548 0.0294071 -0.00964126 -0.0157075 0.0119956 -0.00340543 0.00638567 -0.0273954 0.00470491 -0.0157532 0.0227879 0.0133131 -0.0035788 0.00198849 -0.0195547 -0.0216722 0.00738739 -0.00101599
Tree=51
num_leaves=31
split_feature=24 26 19 13 27 23 18 23 4 24 0 11 8 5 5 19 17 17 6 15 18 0 14 23 1 6 9 2 2 22
split_gain=1.79112 3.83771 3.24318 6.01647 4.48127 3.07048 3.62256 3.22775 4.03399 3.23774 5.44768 4.55256 3.10099 7.60834 5.36344 4.89482 4.07652 5.4607 5.03701 4.6676 4.46401 5.35751 4.15845 3.34797 3.34752 6.97014 3.22092 7.76985 4.68331 3.07211
threshold=0.7385 0.6685 0.7985 0.6745 0.8015 1.0625 -1.1245 1.0155 -0.1445 0.8975 1.624 -1.2625 0.5435 1.4405 0.9985 0.3385 1.1855 0.8375 -0.0985 -0.1125 -0.6495 0.9025 0.6495 0.9875 0.2725 -0.0985 0.9175 -0.3345 -0.3345 1.1295
left_child=2 -2 -1 -4 -5 7 -7 9 -9 10 11 -3 13 14 26 -16 17 19 -18 20 -14 -22 23 -19 25 -21 28 -28 -11 -13
right_child=1 5 3 4 -6 6 -8 8 -10 12 -12 29 16 -15 15 -17 18 22 -20 24 21 -23 -24 -25 -26 -27 27 -29 -30 -31
leaf_parent=2 1 11 3 4 4 6 6 8 8 28 10 29 20 13 15 15 18 23 18 25 21 21 22 23 24 25 27 27 28 29
leaf_value=0.00705548 -0.0192458 -0.0208496 -0.0249594 -0.00669515 0.0240845 -0.0113848 0.00701174 -0.0301019 -0.00221499 -0.0204389 -0.0283255 -0.00350174 -0.013684 0.0266886 -0.0243485 0.0066871 0.00153984 -0.00788434 -0.0249815 -0.0232662 -0.000487492 0.0332395 0.0306066 0.0164474 -0.0268299 0.012857 0.0345932 0.00018282 0.00899347 0.0125753
Tree=52
num_leaves=31
split_feature=25 7 2 11 1 3 15 7 11 26 1 5 23 9 4 9 24 7 25 19 21 25 2 21 22 23 21 22 2 14
split_gain=1.7516 3.41417 5.09844 5.15221 3.42945 3.69831 4.46266 2.6475 9.32791 6.6657 5.35068 3.8053 3.49719 2.44343 3.89436 2.88888 5.88962 2.87316 4.62323 4.03283 4.03522 3.70653 3.65346 3.44894 5.22882 4.18992 3.36217 6.32642 6.66774 3.8758
threshold=1.4645 1.0345 1.048 1.2975 -0.912 0.7615 -0.1125 1.2855 0.8135 1.1175 0.6625 1.0705 0.9875 1.2935 -1.0635 1.1685 0.8605 -0.3245 0.3925 1.2475 0.8835 1.258 1.2875 1.0105 1.0255 0.9875 0.8835 0.9375 0.1275 -0.4425
left_child=7 2 3 4 -2 -6 -7 13 9 10 11 12 -9 15 -15 17 -17 18 -1 21 -21 23 26 24 -20 -25 -19 29 -29 -28
right_child=1 -3 -4 -5 5 6 -8 8 -10 -11 -12 -13 -14 14 -16 16 -18 22 19 20 -22 -23 -24 25 -26 -27 27 28 -30 -31
leaf_parent=18 4 1 2 3 5 6 6 12 8 9 10 11 12 14 14 16 16 26 24 20 20 21 22 25 24 25 29 28 28 29
leaf_value=-0.0145886 -0.0199122 -0.0193497 0.0192971 -0.0310411 0.0169912 -0.0240191 0.00848953 0.0234969 -0.024213 0.0341553 -0.0118171 0.0341578 -0.00160231 0.0207282 0.00142942 0.00998438 -0.0229925 -0.00617629 0.00334214 0.00361554 0.0306392 -0.015607 -0.0138862 -0.0220542 0.0242524 0.00379907 0.0292099 0.00291345 -0.0248218 0.00604574
Tree=53
num_leaves=31
split_feature=10 6 0 27 0 6 6 26 27 9 23 6 19 9 9 24 24 22 11 9 0 27 10 22 0 25 3 24 4 18
split_gain=1.68161 4.36923 4.14734 1.9334 4.95617 6.79237 6.26329 4.32328 5.95648 11.3962 5.25106 8.64885 4.82868 4.39292 4.34189 3.99322 3.97319 4.01862 3.85151 3.70512 3.49445 3.46315 5.94595 4.85065 4.05962 3.36699 3.28521 5.5087 6.54943 4.41815
threshold=-1.4955 -0.8425 0.7495 1.0405 1.3985 0.8405 0.0725 0.9005 0.8275 0.6755 0.9945 1.102 -0.3615 1.1685 0.9925 0.7385 0.7385 0.8195 -0.8145 1.0735 1.624 0.8895 -0.1055 0.9895 0.6805 1.1095 1.2575 1.3685 -0.6025 0.2795
left_child=1 -1 -3 7 18 6 19 8 14 -10 11 16 -12 -14 20 -16 -9 -18 25 -6 -2 22 -19 -23 -24 -5 27 28 -20 -30
right_child=3 2 -4 4 5 -7 -8 10 9 -11 12 -13 13 -15 15 -17 17 21 26 -21 -22 23 24 -25 -26 -27 -28 -29 29 -31
leaf_parent=1 20 2 2 25 19 5 6 16 9 9 12 11 13 13 15 15 17 22 28 19 20 23 24 23 24 25 26 27 29 29
leaf_value=-0.0225595 -0.00295954 -0.0154775 0.0110628 0.0209753 -0.0282166 0.0127843 -0.0447285 0.022007 0.0117583 -0.0265292 0.00170772 -0.0241953 0.0264278 0.00135053 -0.0019659 0.019149 0.0163235 0.02349 0.0165909 0.000851179 0.0177134 -0.0199127 -0.0236391 0.00305949 0.00852624 -0.00182795 -0.0105055 0.0207348 -0.0295939 0.00223313
Tree=54
num_leaves=31
split_feature=25 26 0 3 17 19 0 18 7 24 21 23 25 3 17 2 14 9 19 14 25 26 27 14 0 6 6 0 21 24
split_gain=1.67333 3.14144 5.1766 5.72997 4.5966 3.46395 3.30943 7.2157 6.01642 5.56774 5.50562 5.38695 4.48809 4.43713 5.19118 5.02565 4.40423 3.47218 5.12357 3.12915 2.53052 3.98447 4.82251 4.70438 6.23538 3.30337 4.45302 4.34277 3.27206 3.15614
threshold=0.9485 0.9305 1.2245 1.1335 1.0875 -0.3615 0.6175 0.6615 -1.061 1.3685 0.8835 0.9875 1.258 1.1335 0.7695 -0.3345 -0.0735 1.4495 0.1215 -0.4425 0.8075 0.8705 0.8895 0.6495 0.8245 -0.0985 0.6375 0.8245 0.9295 1.2295
left_child=20 2 3 4 5 -2 8 13 -3 11 -9 -10 -12 14 19 -15 -17 18 -16 -8 29 23 28 24 -22 27 -27 -24 -23 -1
right_child=1 6 -4 -5 -6 -7 7 10 9 -11 12 -13 -14 15 17 16 -18 -19 -20 -21 21 22 25 -25 -26 26 -28 -29 -30 -31
leaf_parent=29 5 8 2 3 4 5 19 10 11 9 12 11 12 15 18 16 16 17 18 19 24 28 27 23 24 26 26 27 28 29
leaf_value=0.00117665 -0.0222578 0.0143808 -0.0314711 -0.0278172 0.0184093 0.00330717 -0.00310577 0.031942 -0.0027674 0.0059806 0.0210581 -0.0315611 -0.0102325 0.0251588 0.02005 0.0150373 -0.0172307 -0.0150435 -0.00770019 -0.0284374 0.00590368 0.0301615 0.0310355 0.0175287 -0.0275766 -0.0180793 0.0104428 0.000602897 -0.00106422 -0.00972576
Tree=55
num_leaves=31
split_feature=10 23 26 17 24 1 2 8 27 19 9 24 7 11 3 7 26 15 13 17 27 23 7 25 25 24 12 3 24 11
split_gain=1.56732 4.08307 4.00274 5.36302 5.10656 4.79019 4.17791 4.16856 3.49682 3.62096 3.90067 6.10395 4.13554 5.02417 6.13855 5.05865 2.90244 2.40091 2.06101 2.04971 1.76246 6.18004 6.25849 9.59115 3.99306 2.72193 5.08986 4.12124 4.38842 3.72393
threshold=0.2455 0.9915 0.9645 0.9965 0.8225 0.0805 0.36 1.63 0.7505 -1.2825 1.1685 0.9885 1.2855 0.5755 0.6795 -0.3245 0.7385 -0.331 0.9435 0.6435 1.1155 0.9945 -0.5835 1.0155 1.1095 1.0515 1.661 0.7615 1.2295 1.0485
left_child=20 8 3 4 -3 6 -4 -7 16 -10 12 -12 13 14 -11 -15 -2 -16 -5 -6 25 22 -22 -24 -23 -1 29 -28 -29 -27
right_child=1 2 5 18 19 7 -8 -9 9 10 11 -13 -14 15 17 -17 -18 -19 -20 -21 21 24 23 -25 -26 26 27 28 -30 -31
leaf_parent=25 16 4 6 18 19 7 6 7 9 14 11 11 12 15 17 15 16 17 18 19 22 24 23 23 24 29 27 28 28 29
leaf_value=-0.00216839 -0.00120466 0.00773907 0.0155744 0.00582725 -0.0290596 0.0108587 -0.0151066 0.0376539 0.0106232 -0.00274008 -0.012749 0.0191611 0.00943073 0.0156455 -0.0210474 -0.0189544 0.0187899 -0.0427503 0.029011 -0.00779522 0.0194794 -0.0296552 0.0109531 -0.0267119 -0.00400957 0.0172203 -0.0212696 0.0211853 -0.00960865 -0.00591212
Tree=56
num_leaves=31
split_feature=24 26 3 9 9 17 2 23 1 4 1 22 2 27 27 26 0 9 21 22 18 23 23 15 19 10 4 15 6 19
split_gain=1.38218 3.20121 2.95206 2.6461 2.69744 5.33105 4.63312 4.64248 2.63907 4.62961 2.3336 2.2193 4.51936 5.2301 4.91429 5.08975 4.64566 3.58029 4.11539 5.16451 5.59478 8.43647 5.2029 4.47457 4.99427 5.05336 4.8263 4.20911 4.25077 3.8943
threshold=0.7385 0.6685 1.6055 0.4485 0.6755 1.1855 0.5975 0.9875 0.6625 -0.3665 -0.2845 0.8195 -1.2845 0.7505 0.8015 0.9305 1.3985 0.4485 0.5755 0.9635 -0.6495 0.9855 0.989 -1.0245 -0.1305 -0.1055 -0.3665 0.8035 -0.0985 0.1215
left_child=2 -2 3 -1 6 8 7 -5 9 -6 -11 12 -3 -14 -15 -16 -17 -13 -19 20 21 -20 -23 29 25 -25 -27 28 -26 -22
right_child=1 11 -4 4 5 -7 -8 -9 -10 10 -12 17 13 14 15 16 -18 18 19 -21 23 22 -24 24 27 26 -28 -29 -30 -31
leaf_parent=3 1 12 2 7 9 5 6 7 8 10 10 17 13 14 15 16 16 18 21 19 29 22 22 25 28 26 26 27 28 29
leaf_value=-0.00971837 -0.0176852 0.0233868 -0.0154742 -0.01198 0.0151234 0.0196064 0.0317289 0.0198702 -0.0157611 0.00150825 -0.0202965 0.0130681 -0.015203 0.0262757 -0.0173391 0.0144494 -0.0139366 0.0147468 -0.049812 0.000365676 0.026083 0.00961 -0.0211818 -0.0306205 -0.0209149 -0.0241656 0.00683123 0.0165768 0.00442902 -0.00512878
Tree=57
num_leaves=31
split_feature=25 20 17 11 0 18 9 23 9 9 10 5 9 8 11 9 6 25 14 0 26 6 4 20 27 24 24 23 22 24
split_gain=1.40425 3.09427 7.68414 3.85003 2.96659 6.96695 4.30759 4.09201 3.63753 7.01573 3.97791 2.8607 3.47613 2.74292 4.95295 2.06777 3.14083 2.04355 3.26037 4.99761 3.82897 3.54904 3.83632 3.27959 2.92234 2.72692 5.15015 4.16406 3.83926 3.25622
threshold=0.9485 2.3265 1.1855 -0.117 0.6175 -0.2715 0.9925 0.989 0.6755 0.5375 -1.1325 1.1595 1.4495 1.63 -0.117 0.8545 -0.0985 0.8075 0.1045 0.8245 0.9005 0.2535 -0.1445 2.3265 0.8895 1.2295 1.1285 0.9875 0.9635 0.8225
left_child=17 4 -3 -4 5 7 -7 -2 9 -6 -10 12 15 -13 -15 -12 -17 25 19 21 -21 22 -19 -20 -22 26 29 -27 -29 -1
right_child=1 2 3 -5 8 6 -8 -9 10 -11 11 13 -14 14 -16 16 -18 18 23 20 24 -23 -24 -25 -26 27 -28 28 -30 -31
leaf_parent=29 7 2 3 3 9 6 6 7 10 9 15 13 12 14 14 16 16 22 23 20 24 21 22 23 24 27 26 28 28 29
leaf_value=0.00364315 0.0191203 -0.0268672 0.0148061 -0.0100192 -0.00512226 -0.0278251 -0.00448003 -0.00939888 0.0182729 0.0334002 -0.0123159 -0.0046432 -0.0261384 -0.00208516 0.0312529 -0.00886209 0.0100225 0.00406564 0.0189402 -0.0237085 0.0212271 -0.00626521 0.0363669 -0.000255011 -0.00766531 -0.0246644 0.020995 0.0134659 -0.0144473 -0.00477158
Tree=58
num_leaves=31
split_feature=10 0 19 1 6 27 25 23 11 16 13 9 1 21 10 6 24 5 0 10 18 11 7 17 2 13 21 11 15 6
split_gain=1.45311 3.79577 2.83521 2.00613 5.54138 3.93575 2.02188 3.42427 9.94874 4.92019 3.42835 2.8387 4.4921 4.18267 4.35334 4.25441 6.73617 3.81066 3.6168 3.58415 5.19193 6.18378 3.86143 4.02691 5.90264 4.39214 3.78875 5.93168 4.62196 3.53502
threshold=-1.4955 0.7495 0.5535 -1.547 -0.6275 0.8565 1.4645 0.9875 -0.117 1.911 1.2095 0.9175 -0.6935 1.1015 -1.1325 0.6375 1.0515 1.0705 0.6805 -0.8885 0.0915 1.2975 -0.8325 0.8375 0.1275 1.2095 0.8315 0.3425 -0.331 0.8405
left_child=1 -1 -3 4 -2 -6 11 8 -8 10 -9 13 17 14 -5 16 -15 18 -13 -14 21 22 -21 24 -24 -25 -22 28 -28 -16
right_child=3 2 -4 6 5 -7 7 9 -10 -11 -12 12 19 15 29 -17 -18 -19 -20 20 26 -23 23 25 -26 -27 27 -29 -30 -31
leaf_parent=1 4 2 2 14 5 5 8 10 8 9 10 18 19 16 29 15 16 17 18 22 26 21 24 25 24 25 28 27 28 29
leaf_value=-0.0188757 0.00682926 0.0108308 -0.0126102 -0.0191304 -0.00278617 -0.0337025 -0.0160561 -0.00913984 0.0270485 0.00802621 -0.0326994 0.00783643 0.0176593 -0.0108269 0.00133755 0.0248927 0.0219261 0.00270185 0.0354661 -0.0242646 0.0194964 0.0192368 -0.0317813 -0.00643779 0.00453808 0.023783 -0.00465756 -0.0123757 0.0231682 -0.009237
Tree=59
num_leaves=31
split_feature=10 4 18 1 27 11 1 5 15 25 2 3 15 12 12 20 6 7 21 22 26 15 22 16 17 25 21 24 4 18
split_gain=1.17904 3.66793 5.12728 1.63203 4.93826 4.72948 1.84658 6.52316 5.62749 5.98137 4.93562 3.22826 4.42925 3.20461 3.18456 3.10628 3.66303 2.36799 8.04927 5.80804 3.17286 4.84964 5.91642 4.95395 4.08281 4.0258 4.92558 3.36577 4.40602 4.77781
threshold=-1.4955 -0.3665 -0.0915 -1.547 0.9775 -0.117 0.8945 1.4405 1.0375 0.9005 -0.579 0.7615 -0.7875 0.5535 0.5535 0.7755 0.4465 0.6025 1.3005 1.1295 0.8705 -1.0245 1.0255 0.637 0.9155 1.1095 1.1015 0.7805 1.2805 1.1215
left_child=1 -1 -3 4 5 -2 17 8 10 -10 15 13 -13 -12 -14 16 -8 20 19 -19 21 23 24 -5 -23 27 -27 -22 29 -29
right_child=3 2 -4 6 -6 -7 7 -9 9 -11 11 12 14 -15 -16 -17 -18 18 -20 -21 25 22 -24 -25 -26 26 -28 28 -30 -31
leaf_parent=1 5 2 2 23 4 5 16 7 9 9 13 12 14 13 14 15 16 19 18 19 27 24 22 23 24 26 26 29 28 29
leaf_value=-0.0173015 0.0195154 -0.0099982 0.0217812 -0.00308615 -0.0247032 -0.010721 -0.0449671 0.0205618 0.0243257 -0.010476 0.000187041 0.0186674 -0.0193061 -0.028079 0.00683575 -0.00633084 -0.0145819 0.00616048 -0.0142343 0.0289809 0.0213153 -0.00337274 -0.0199251 -0.0361268 0.0137401 -0.00815833 0.0125068 0.0107208 -0.0144852 -0.0148296
Tree=60
num_leaves=31
split_feature=3 13 4 1 0 12 0 2 7 5 10 15 17 27 18 4 18 1 7 17 7 22 18 13 22 13 25 2 5 14
split_gain=1.19816 4.11233 6.97397 4.99247 3.28881 2.54318 2.41928 3.48094 2.79967 2.33463 3.33041 3.95385 3.02789 2.30945 4.52924 2.1723 1.99797 3.87641 4.37713 4.02405 3.64744 4.41941 5.73334 4.25468 3.00313 2.40245 3.13631 5.02183 6.15538 4.60766
threshold=1.6055 1.0255 0.5575 -0.1105 0.6175 0.5535 0.3865 -0.579 0.1395 1.4405 0.6235 -0.331 0.8375 1.2465 0.0915 0.1045 -0.6495 0.6625 0.1395 0.5115 -0.5835 0.8195 -1.5345 0.7375 0.9895 1.494 1.0155 1.2875 0.8165 0.4535
left_child=6 2 4 -3 -2 -6 7 -1 -9 13 11 15 -13 16 -15 -11 17 19 -19 -8 24 -22 -23 -24 -21 26 27 -18 -29 -28
right_child=1 3 -4 -5 5 -7 9 8 -10 10 -12 12 -14 14 -16 -17 25 18 -20 20 21 22 23 -25 -26 -27 29 28 -30 -31
leaf_parent=7 4 3 2 3 5 5 19 8 8 15 10 12 12 14 14 15 27 18 18 24 21 22 23 23 24 25 29 28 28 29
leaf_value=-0.0047839 -0.0201426 0.000411769 0.0198423 -0.026948 -0.0101053 0.013679 -0.0170788 0.0319513 0.00539901 0.00177771 0.0223557 -0.0049362 0.0198336 0.00258495 -0.0223255 -0.0230702 0.00486187 -0.00196109 -0.0344775 -0.0163113 0.0285425 0.0243943 -0.0238127 0.00390553 0.00749799 0.0107814 0.00084211 0.00291255 -0.0293383 -0.016393
Tree=61
num_leaves=31
split_feature=24 9 11 0 27 13 9 19 0 7 24 2 14 10 15 14 10 21 22 11 25 4 3 21 24 5 3 13 1 11
split_gain=1.25239 3.45994 4.38729 3.69477 6.20111 5.0803 5.69476 6.21422 11.6804 5.60206 4.94606 4.17661 4.00255 3.88623 3.76537 3.69974 3.52859 4.5399 3.38392 3.29873 3.22927 4.13852 3.64376 4.51885 7.98308 4.78687 3.11545 3.06113 2.83188 2.18011
threshold=0.9885 0.6755 -1.4995 1.2245 0.7505 1.0255 0.7375 0.7985 0.8245 0.1395 0.6855 -0.7995 0.1045 -0.2965 -0.1125 -0.2675 -0.8885 0.8315 0.9635 0.3425 0.5315 -0.6025 0.5005 0.7995 0.8225 0.8755 0.8415 0.7995 0.2725 -0.8145
left_child=1 20 -3 5 -5 6 -4 10 -9 14 -8 -11 13 -6 -7 -13 -12 -18 -16 -19 21 -1 -22 25 27 -24 -23 -25 -14 -2
right_child=29 2 3 4 12 9 7 8 -10 11 16 15 28 -15 18 -17 17 19 -20 -21 22 26 23 24 -26 -27 -28 -29 -30 -31
leaf_parent=21 29 2 6 4 13 14 10 8 8 11 16 15 28 13 18 15 17 19 18 19 22 26 25 27 24 25 26 27 28 29
leaf_value=0.0125333 0.0070211 -0.0215526 -0.0274944 0.0103344 -0.0467789 0.0288588 0.0202902 0.000908567 -0.0459895 0.0127837 0.0175374 -0.0280626 0.0088347 -0.0154564 -0.00759136 -0.000347985 0.00908989 -0.00411955 0.0171546 -0.02806 0.020078 -0.026162 -0.0203087 0.0364781 -0.00726928 0.011033 -0.000792192 0.0110697 -0.0195572 -6.51524e-005
Tree=62
num_leaves=31
split_feature=23 6 0 15 9 10 15 23 14 6 22 14 13 22 17 21 25 8 23 3 26 1 24 13 24 12 16 3 4 14
split_gain=1.23553 2.8116 3.89299 5.84422 3.7428 5.72747 3.01596 2.3192 3.52298 4.16833 2.32532 2.81484 4.47413 4.17132 3.86573 3.79606 6.78045 4.446 3.74441 2.45475 4.71294 4.33225 8.26728 8.1483 5.36916 3.15969 5.03594 4.3971 5.76519 4.27131
threshold=1.0625 1.102 1.3985 -0.331 0.7375 0.0745 -1.0245 1.0155 -0.4425 0.0725 1.0685 0.2785 1.0255 1.1295 0.9155 1.3005 0.8525 0.5435 0.9875 1.2575 0.7385 -0.2845 0.9405 1.0255 0.9885 1.661 0.637 0.3925 1.0245 -0.6425
left_child=7 2 4 -4 5 -2 -6 10 -9 -10 19 13 14 -12 -13 16 -15 -17 -14 25 -21 22 -22 24 -23 -1 27 -27 29 -29
right_child=1 -3 3 -5 6 -7 -8 8 9 -11 11 12 18 15 -16 17 -18 -19 -20 20 21 23 -24 -25 -26 26 -28 28 -30 -31
leaf_parent=25 5 1 3 3 6 5 6 8 9 9 13 14 18 16 14 17 16 17 18 20 22 24 22 23 24 27 26 29 28 29
leaf_value=0.00308849 -0.0203022 0.0149737 -0.0263526 0.00362218 0.0277362 0.0126605 0.00633969 -0.025497 0.0151932 -0.0154051 0.0222149 -0.000394243 0.0219445 -0.0095622 -0.0276838 0.0053793 0.0249422 -0.0228877 -0.00503463 -0.0298906 -0.0179423 0.0175369 0.0209383 -0.0323776 -0.0142898 -0.0152866 -0.0167082 0.0151478 0.02648 -0.00710574
Tree=63
num_leaves=31
split_feature=25 2 11 14 14 9 2 7 11 26 18 1 5 9 4 9 24 4 25 25 12 7 25 26 9 13 6 0 8 18
split_gain=1.1171 2.68471 2.83025 3.47833 5.43534 4.23704 2.45854 1.99889 6.62835 5.6616 4.00435 3.61467 2.62709 1.92855 2.80281 2.78938 4.51801 2.3679 6.05621 5.98049 3.49686 2.18681 3.55896 3.62273 3.41083 2.96424 3.55391 2.82316 5.37914 4.64443
threshold=1.4645 1.048 1.2975 -0.2675 0.858 1.2935 -0.1025 1.2855 0.8135 1.1175 -0.8665 0.8945 0.6985 1.2935 -1.0635 1.1685 0.8605 0.3295 0.8525 0.7585 1.661 -0.3245 0.3925 1.3435 0.4485 1.3325 -0.0985 0.9025 1.63 -0.0915
left_child=7 2 3 5 6 -2 -5 13 9 10 -9 12 -12 15 -15 21 -17 19 -19 -16 -21 22 -1 24 -24 -26 -27 -23 29 -29
right_child=1 -3 -4 4 -6 -7 -8 8 -10 -11 11 -13 -14 14 17 16 -18 18 -20 20 -22 27 23 -25 25 26 -28 28 -30 -31
leaf_parent=22 5 1 2 6 4 5 6 10 8 9 12 11 12 14 19 16 16 18 18 20 20 27 24 23 25 26 26 29 28 29
leaf_value=-0.0129103 -0.0280955 0.00983433 -0.025699 0.0231835 -0.0163924 0.00155956 -0.00062006 -0.0150463 -0.020602 0.0309841 0.00211497 -0.00877211 0.0231313 0.0180869 -0.0279206 0.00783917 -0.0213657 0.0258163 -0.00636538 -0.00801656 0.0217141 -0.00654722 0.0229358 -0.014878 0.00180997 0.0325036 0.00272907 0.00594645 0.0109951 -0.0144979
Tree=64
num_leaves=31
split_feature=11 23 2 8 24 1 11 6 13 8 27 13 3 13 19 23 7 22 21 17 19 9 24 0 5 26 17 7 1 9
split_gain=1.09321 3.98853 3.20933 3.56529 3.52416 2.39279 2.32431 6.25026 3.15278 2.07667 1.64284 3.37552 4.15533 4.2021 3.17972 3.78129 3.10498 3.8435 3.23503 3.03354 5.14189 3.91072 3.77733 2.79935 3.65045 2.60895 5.99625 4.10498 5.75602 4.62767
threshold=-1.2625 0.9835 0.36 0.5435 0.9885 0.0805 -1.0605 0.6375 0.9435 1.63 0.9295 0.4425 0.5005 1.0255 0.5535 0.9835 -0.0955 1.0685 0.9295 1.0875 -0.1305 1.1685 1.0515 0.5475 1.2695 0.8705 0.4415 0.6025 0.467 0.5375
left_child=1 -1 4 -4 5 -3 7 8 -2 -6 25 -12 13 -13 15 -14 17 -16 -18 20 23 22 -21 -17 -25 -8 -27 29 -29 -28
right_child=6 2 3 -5 9 -7 10 -9 -10 -11 11 12 14 -15 16 19 18 -19 -20 21 -22 -23 -24 24 -26 26 27 28 -30 -31
leaf_parent=1 8 5 3 3 9 5 25 7 8 9 11 13 15 13 17 23 18 17 18 22 20 21 22 24 24 26 29 28 28 29
leaf_value=0.0139159 0.00606677 -8.19829e-005 -0.00371206 -0.0275919 0.0205244 -0.0229824 -0.00117692 -0.0142089 0.0283877 -0.00157129 0.0176637 -0.0316024 -0.0197516 -0.00396638 0.00140578 -0.00720481 0.00937981 0.0260964 -0.0164319 -0.0368507 -0.0150486 0.00417598 -0.00795838 0.00666871 0.032385 -0.0205685 -0.00931215 0.00790254 -0.0203592 0.0153613
Tree=65
num_leaves=31
split_feature=22 0 18 3 3 21 13 25 8 13 6 20 15 17 19 0 2 4 21 9 26 19 9 2 5 11 2 8 19 17
split_gain=1.11299 2.70151 4.23864 2.88219 1.64551 4.60048 4.13184 4.26132 4.42857 6.20898 4.1218 4.14019 3.07872 3.7732 5.03688 3.72598 4.43657 2.53524 2.16464 7.70868 5.01722 5.15808 3.94082 3.34109 3.35577 3.21521 2.75147 2.91759 2.68287 6.51427
threshold=0.7005 0.6175 0.4645 0.8415 0.5925 0.5755 0.9435 1.0155 0.5435 0.6745 -0.4455 0.7755 1.2795 0.9155 0.5535 0.9905 -0.1025 -0.1445 0.7995 0.7915 1.0055 -0.8125 0.4485 -0.579 1.2695 0.3425 -1.5145 0.5435 -1.0505 0.9965
left_child=1 -1 3 -3 5 -2 7 8 10 -10 -7 -12 13 14 -8 16 -15 -9 19 20 21 -6 -20 -21 -25 -23 27 -24 29 -28
right_child=4 2 -4 -5 18 6 12 17 9 -11 11 -13 -14 15 -16 -17 -18 -19 22 23 -22 25 26 24 -26 -27 28 -29 -30 -31
leaf_parent=1 5 3 2 3 21 10 14 17 9 9 11 11 12 16 14 15 16 17 22 23 20 25 27 24 24 25 29 27 28 29
leaf_value=-0.00975564 0.0257736 0.0070442 -0.00645331 0.0341945 -0.0454741 0.00949344 0.00596451 -0.00557826 0.0260632 -0.00756064 -0.00124104 -0.0322019 0.0255279 0.0411629 -0.0258551 0.000157227 0.00661709 -0.0308365 0.0158554 -0.00870842 0.000966796 -0.00466773 -0.00170001 0.0146341 -0.0101138 -0.0297706 0.0151482 0.024593 -0.00352709 -0.00779577
Tree=66
num_leaves=31
split_feature=10 23 16 11 25 5 18 26 21 0 25 0 3 19 22 4 25 2 19 3 3 14 13 18 9 9 15 1 14 7
split_gain=1.14893 3.40876 4.27178 5.50285 3.9458 4.65568 4.19868 3.63219 3.11622 6.5121 5.13819 4.90923 4.60939 6.36694 5.52018 6.55231 4.85061 3.89378 1.61381 1.3301 5.24984 4.22061 3.89806 3.70605 3.30162 4.14876 2.77459 2.5526 2.35396 3.85958
threshold=0.2455 0.9835 0.637 0.3425 1.258 1.0705 -1.1245 1.3435 0.8835 1.3985 0.6255 0.6805 1.6055 0.7985 0.9375 -0.3665 0.7585 0.36 0.1215 0.9335 1.0285 0.1045 1.2095 0.8775 1.1685 0.7915 -0.1125 -0.1105 -0.2675 -1.061
left_child=19 2 3 -2 6 18 -3 8 9 10 -8 -12 13 14 15 -10 -16 -13 -6 28 27 23 24 -22 25 26 -23 -21 29 -1
right_child=1 4 -4 -5 5 -7 7 -9 12 -11 11 17 -14 -15 16 -17 -18 -19 -20 20 21 22 -24 -25 -26 -27 -28 -29 -30 -31
leaf_parent=29 3 6 2 3 18 5 10 7 15 9 11 17 12 13 16 15 16 17 18 27 23 26 22 23 24 25 26 27 28 29
leaf_value=0.0178379 -0.0120388 0.0235963 -0.0205355 0.0229491 -0.00860708 0.00500124 -0.0143314 0.0228974 -0.00367308 -0.0234194 -0.00550675 0.00875817 -0.0121987 0.0311534 0.0127116 0.0344319 -0.0169059 0.038335 -0.0288277 -0.00871669 -0.00305097 0.00788161 0.0213497 -0.0241723 -0.0168785 0.0188911 -0.0171052 -0.0308743 -0.00287001 0.00102502
Tree=67
num_leaves=31
split_feature=9 25 21 10 3 1 9 8 11 6 14 9 27 9 22 13 9 21 2 3 0 4 17 21 11 0 21 4 17 15
split_gain=1.10273 4.21768 3.75287 4.3945 5.0972 4.93263 5.05357 4.1582 3.9754 3.06298 2.86394 2.63536 4.24418 2.63211 4.16994 7.1086 4.92031 3.18781 5.24908 2.98419 4.26822 3.25999 3.12602 5.23563 6.56192 5.19363 5.90392 4.63929 4.0142 3.39543
threshold=0.6755 1.258 1.1015 -0.6665 0.9335 0.8945 0.5375 1.63 -0.117 0.0725 -0.0735 0.4485 0.7765 0.9175 0.8555 0.7375 0.7915 0.7555 -1.044 1.6055 0.3865 -0.3665 1.496 0.9075 0.5755 0.9905 0.9295 0.5575 0.9155 -1.2635
left_child=1 2 3 4 10 6 11 -6 -8 -10 -1 -5 -13 14 15 16 -2 18 -15 20 -19 -21 23 24 27 26 -24 -22 -26 -25
right_child=13 -3 -4 5 7 -7 8 -9 9 -11 -12 12 -14 17 -16 -17 -18 19 -20 21 22 -23 25 29 28 -27 -28 -29 -30 -31
leaf_parent=10 16 1 2 11 7 5 8 7 9 9 10 12 12 18 14 15 16 20 18 21 27 21 26 29 28 25 26 27 28 29
leaf_value=0.0135262 0.00538441 -0.016957 0.0166288 0.0106921 -0.0378308 -0.00837408 0.0322306 -0.0050256 -0.0034181 0.0239343 -0.0111808 0.00805166 -0.0244109 -0.0118537 -0.00755056 0.0172822 -0.0280918 0.0211088 0.0154632 -0.0249425 -0.00988227 -0.00176 0.0422145 0.0181653 -0.00642412 -0.00703256 0.00470803 -0.0345826 0.0268182 -6.43515e-005
Tree=68
num_leaves=31
split_feature=18 23 15 11 9 17 5 5 21 19 19 10 3 9 6 9 22 22 3 17 9 19 26 18 15 19 7 26 25 13
split_gain=0.973464 3.18323 4.79202 4.43727 5.83068 5.07274 4.41429 4.60592 3.71635 4.17461 3.49359 2.51727 2.35579 2.31435 2.18568 5.63899 2.39209 3.22816 3.91309 3.68393 4.27532 4.07515 3.58016 3.50908 3.3191 2.09263 3.82226 6.39933 3.11014 4.61198
threshold=-0.6495 0.9835 0.3575 1.0485 1.4495 0.5785 0.8165 0.5675 0.8835 -0.1305 -0.5825 -0.6665 0.8415 0.9175 -1.445 1.0735 1.0685 1.2265 0.5925 1.0875 1.1685 -0.1305 0.8705 0.6615 -0.1125 -0.8125 1.0345 0.8705 1.1095 0.7375
left_child=1 2 -1 4 5 10 7 -7 -8 -10 -3 -5 -9 -13 15 -2 25 18 -18 21 -21 -19 -20 24 -24 26 28 -28 29 -16
right_child=14 3 -4 11 -6 6 8 12 9 -11 -12 13 -14 -15 16 -17 17 19 22 20 -22 -23 23 -25 -26 -27 27 -29 -30 -31
leaf_parent=2 15 10 2 11 4 7 8 12 9 9 10 13 12 13 29 15 18 21 22 20 20 21 24 23 24 25 27 27 28 29
leaf_value=-0.000748547 -0.0225742 0.00427183 -0.0324709 0.0258614 -0.0237957 0.0135883 -0.000711218 -0.00329193 0.00587577 0.0346602 -0.0223851 -0.00620783 -0.026352 0.0171439 -0.0177077 0.00878043 0.0282351 0.0214233 -0.011722 -0.0232182 0.00393723 -0.00445862 0.0368944 -0.00465705 0.00811413 0.00160139 0.0285713 -0.0106807 -0.0227138 0.00386897
Tree=69
num_leaves=31
split_feature=22 5 0 4 27 6 0 1 6 7 15 6 15 1 17 26 6 23 17 25 22 10 0 9 22 8 21 0 21 4
split_gain=0.992493 2.2509 3.95684 2.73777 1.20913 3.6705 6.02523 5.66958 3.83097 3.68204 5.45988 3.48626 7.17303 3.32404 2.55032 1.76558 3.16547 4.55278 2.77804 3.50259 6.0078 4.11829 6.13084 5.93281 5.24406 3.19179 4.31378 4.27721 2.68005 2.54661
threshold=0.7005 1.1595 0.9905 -0.1445 1.1155 1.102 1.2245 0.467 -0.4455 -1.2805 0.3575 -0.8425 -0.5565 -0.1105 0.9965 0.8365 1.102 0.9945 1.496 0.8075 0.9375 0.0745 0.9025 0.7375 0.8835 1.63 0.9605 0.9905 0.9075 -1.507
left_child=1 2 3 -1 15 6 9 8 -8 -6 11 -11 -13 -12 -7 18 29 28 19 21 -21 22 24 -24 -2 26 27 -23 -18 -17
right_child=4 -3 -4 -5 5 14 7 -9 -10 10 13 12 -14 -15 -16 16 17 -19 -20 20 -22 25 23 -25 -26 -27 -28 -29 -30 -31
leaf_parent=3 24 1 2 3 9 14 8 7 8 11 13 12 12 13 14 29 28 17 18 20 20 27 23 23 24 25 26 27 28 29
leaf_value=-0.0217421 -0.0371685 0.0209317 0.0169504 0.00444858 0.0192807 0.0229993 0.00596325 -0.0419159 -0.0233723 -0.0122145 -0.0311244 -0.0048109 0.0308116 -0.00447069 -0.00203465 0.0165305 -0.00627207 0.00790501 0.0122897 0.000303682 -0.0265591 0.0150038 0.0181551 -0.0127904 -0.00721625 -0.00833735 0.0275414 -0.012652 -0.0302458 0.00251042
Tree=70
num_leaves=31
split_feature=10 6 0 19 1 6 0 25 23 16 27 1 9 1 23 5 10 18 17 11 24 19 0 21 3 6 10 0 24 6
split_gain=0.996304 3.60185 3.81055 2.33232 1.36489 4.17928 3.15923 1.41602 2.71622 3.74054 3.65095 2.80761 1.63544 2.97798 3.23179 3.17044 3.01893 4.50486 4.24014 3.64964 5.46379 3.02571 3.18923 2.96814 3.61208 4.93825 3.39119 2.89344 2.88479 2.70683
threshold=-1.4955 -0.8425 1.0915 -0.1305 -1.547 -0.6275 0.6175 1.4645 0.9855 0.637 1.0405 0.0805 0.9175 -0.6935 0.9795 1.0705 -0.8885 0.0915 1.316 0.115 0.8605 0.3385 0.7495 1.1015 1.2575 0.6375 -1.1325 0.6805 0.9405 0.8405
left_child=1 -1 3 -3 5 -2 -7 12 -9 10 -10 -11 23 15 -15 27 -16 18 21 -19 -21 -18 -23 26 25 28 -6 -14 -25 -28
right_child=4 2 -4 -5 7 6 -8 8 9 11 -12 -13 13 14 16 -17 17 19 -20 20 -22 22 -24 24 -26 -27 29 -29 -30 -31
leaf_parent=1 5 3 2 3 26 6 6 8 10 11 10 11 27 14 16 15 21 19 18 20 20 22 22 28 24 25 29 27 28 29
leaf_value=-0.0199164 0.00628207 0.00493085 0.019782 -0.0188381 -0.0168446 -0.00364447 -0.0315713 0.00888654 -0.00340985 0.0174528 -0.0257881 -0.00923905 0.00600025 -0.0188974 0.0173966 0.000830935 -0.00243883 0.0158738 0.0123991 -0.0193657 0.0104336 -0.00339418 -0.0299405 -0.0213857 0.0230318 0.0204705 0.00142182 0.031027 0.00444761 -0.00790587
Tree=71
num_leaves=31
split_feature=24 19 11 5 7 19 0 19 10 7 26 26 23 24 6 9 24 0 15 25 7 15 27 5 26 5 17 25 6 2
split_gain=1.13184 2.73246 3.0982 4.45732 5.38559 4.79485 3.75362 7.89416 3.93387 3.99536 3.26746 2.54418 1.69938 3.35441 4.32151 2.62026 6.51744 4.12853 4.6907 3.198 4.02561 2.60964 4.12234 4.12791 3.92801 3.89024 4.34016 3.88531 3.80589 3.79284
threshold=0.7385 1.2475 0.3425 0.8755 -0.3245 -0.1305 0.6175 -0.1305 -0.2965 0.3735 0.7385 0.6685 1.0625 0.8225 1.102 0.7915 1.0515 1.2245 -0.1125 1.258 0.1395 -0.1125 0.8015 0.6385 0.9305 0.7555 0.8375 0.8075 0.0725 0.1275
left_child=1 2 6 4 -4 -5 7 -1 9 -8 -10 -2 21 -14 15 16 -15 19 -19 20 -17 -13 25 27 29 26 -23 -24 -27 -25
right_child=11 -3 3 5 -6 -7 8 -9 10 -11 -12 12 13 14 -16 17 -18 18 -20 -21 -22 22 23 24 -26 28 -28 -29 -30 -31
leaf_parent=7 11 1 4 5 4 5 9 7 10 9 10 21 13 16 14 20 16 18 18 19 20 26 27 29 24 28 26 27 28 29
leaf_value=-0.000823647 -0.0160181 -0.00951095 0.00591696 0.0285437 -0.0262931 -0.00769299 0.00669812 0.0427657 -0.000449584 -0.0248154 0.0241235 0.00162475 0.0215044 -0.0269968 0.018229 0.034399 0.00508522 -0.0271717 0.00658552 -0.00378398 0.00391595 -0.0164239 0.0224289 -0.0109741 -0.00660867 0.00141815 0.0116183 -0.00738365 0.030355 -0.0406871
Tree=72
num_leaves=31
split_feature=9 25 21 5 9 25 19 2 24 11 19 26 13 24 6 2 6 19 25 17 27 11 26 27 5 26 27 0 6 13
split_gain=1.05258 3.46233 2.96132 2.97517 4.05526 2.86107 5.62425 6.2807 5.47168 4.18835 3.97704 2.89666 2.30568 2.23386 3.70869 6.73182 3.69687 4.52386 3.46276 4.41572 3.30277 6.41795 4.05415 4.81899 5.07863 3.64347 4.68096 4.23598 3.74528 6.99656
threshold=0.6755 1.258 0.7995 0.6985 0.5375 0.5315 1.0475 -1.044 0.8225 -0.5815 -0.5825 0.8365 0.6745 0.9885 -1.0705 0.1275 0.6375 -1.0505 1.4645 1.1855 0.8565 -0.117 0.9305 1.1155 0.9365 0.8365 0.7155 0.6805 -0.0985 0.7375
left_child=1 2 3 12 -5 9 7 -7 11 -4 -10 -9 -1 20 15 -15 18 -18 19 -16 25 22 -22 24 -24 26 27 -2 -27 -30
right_child=13 -3 5 4 -6 6 -8 8 10 -11 -12 -13 -14 14 16 -17 17 -19 -20 -21 21 -23 23 -25 -26 28 -28 -29 29 -31
leaf_parent=12 27 1 9 4 4 7 6 11 10 9 10 11 12 15 19 15 17 17 18 19 22 21 24 23 24 28 26 27 29 29
leaf_value=-0.000218661 -0.00978204 -0.0153281 -0.0198304 -0.00635858 0.0194272 0.0273759 0.0285424 0.00424064 0.00310554 0.00774332 -0.0218366 0.0325174 -0.0220399 -0.00385867 0.00389776 0.0293002 -0.0121284 0.0125612 -0.014703 -0.013258 -0.0388749 0.000214782 -0.0211919 -0.0313117 0.00991213 0.0165466 -0.0127575 0.0115909 -0.0244374 0.00968605
Tree=73
num_leaves=31
split_feature=24 19 11 25 4 19 11 17 0 8 21 26 22 13 21 4 22 21 9 24 27 18 1 4 4 4 1 8 23 13
split_gain=0.909587 2.28587 2.72861 3.76674 5.19808 4.7443 3.36685 4.36913 2.9705 2.8351 2.79366 2.11158 1.42008 7.27787 3.72612 3.20109 2.7491 4.75562 7.87302 5.22945 6.85875 4.43228 5.77959 4.54147 4.31628 4.17983 6.30617 3.8724 3.34189 3.29862
threshold=0.7385 1.2475 0.3425 0.9485 0.3295 -0.3615 -0.5815 0.8375 0.8245 1.63 0.9075 0.6685 0.7695 0.5315 0.5755 -1.0635 0.9635 0.9075 1.1685 1.2295 0.7765 -0.6495 -0.1105 0.1045 0.1045 -0.3665 0.2725 1.63 0.989 1.0255
left_child=1 2 6 4 5 -4 7 8 -1 10 -8 -2 13 -13 -14 -15 17 19 25 20 24 -22 23 -23 -16 26 -19 -21 -20 -27
right_child=11 -3 3 -5 -6 -7 9 -9 -10 -11 -12 12 14 15 16 -17 -18 18 28 27 21 22 -24 -25 -26 29 -28 -29 -30 -31
leaf_parent=8 11 1 5 3 4 5 10 7 8 9 10 13 14 15 24 15 16 26 28 27 21 23 22 23 24 29 26 27 28 29
leaf_value=0.00452842 -0.0146577 -0.0087599 0.0117589 -0.0203445 0.0241808 -0.0206358 -0.00337942 0.0151604 -0.0223323 0.0324902 0.0231872 -0.0167441 0.0132077 0.0304269 0.0139825 0.00706172 0.000813713 -0.0177498 -0.0019824 -0.00945992 -0.0380273 -0.0474433 -0.00345469 -0.0111296 -0.0140063 0.00818794 0.0181763 0.0189729 -0.0312991 0.0312313
Tree=74
num_leaves=31
split_feature=22 26 26 13 3 23 3 5 26 18 12 0 15 5 0 23 10 24 10 15 12 17 11 0 23 24 24 18 23 24
split_gain=0.814855 2.01362 4.12715 3.40716 1.06644 4.20126 5.84776 5.10208 2.89281 4.01936 4.45786 3.92473 3.98878 3.29159 3.01056 2.01943 4.33343 4.2982 4.82235 5.26775 4.56146 4.04649 5.21988 3.78746 3.51708 6.0881 3.75447 3.49942 3.31406 4.32016
threshold=0.7005 1.0055 0.8365 0.7375 0.5925 0.9945 0.5005 0.8755 1.0055 0.6615 0.5535 0.9905 -0.331 1.0705 0.6805 0.9915 0.2455 1.1285 -0.4795 -0.1125 1.661 0.7695 -0.3575 1.3985 1.0155 0.8225 0.8605 0.4645 0.9875 0.7805
left_child=1 2 -1 -4 5 8 7 -7 9 11 -11 14 -13 -10 -2 17 21 28 -19 -20 -21 22 -17 -23 26 -26 -18 -24 -6 -30
right_child=4 -3 3 -5 15 6 -8 -9 13 10 -12 12 -14 -15 -16 16 24 18 19 20 -22 23 27 -25 25 -27 -28 -29 29 -31
leaf_parent=2 14 1 3 3 28 7 6 7 13 10 10 12 12 13 14 22 26 18 19 20 20 23 27 23 25 25 26 27 29 29
leaf_value=0.0127658 0.00969301 0.0181504 -0.0290449 0.00565226 -0.00269412 -0.00346521 0.01237 -0.0398738 -0.0127551 0.0107802 -0.0211185 -0.0128872 0.0137677 0.00689124 0.0298365 -0.0087574 -0.000620833 0.0173765 0.00993229 -0.0274791 0.00146081 -0.00390081 0.00554091 -0.0232641 0.0221985 -0.00446022 0.0265699 0.0309032 -0.000766259 -0.0203253
Tree=75
num_leaves=31
split_feature=23 6 25 24 26 25 5 0 3 18 23 5 22 6 24 8 5 25 0 2 19 17 8 0 0 24 0 18 23 17
split_gain=0.832878 1.70486 2.38048 3.00193 3.82529 3.69184 8.49745 4.22668 3.67913 2.43501 1.66879 2.73786 1.52986 2.61156 2.9557 3.16062 3.80975 4.47895 3.57769 6.14061 3.06506 2.04567 4.66837 5.98911 6.18059 5.58188 4.4308 2.48609 5.29342 3.64435
threshold=1.0625 1.102 0.5315 0.8975 0.8705 0.8525 0.7555 1.3985 1.0285 -0.2715 1.0155 0.8165 1.0685 -1.445 0.7805 0.5435 0.9985 0.9005 0.6805 -0.3345 0.1215 1.1855 0.5435 0.6805 0.9905 1.0515 0.8245 -1.1245 0.9855 0.7065
left_child=10 2 -2 4 -4 8 -7 9 -5 -8 12 -12 21 -14 20 16 -16 -18 -17 -20 -15 27 25 -24 -25 26 -23 28 -1 -30
right_child=1 -3 3 5 -6 6 7 -9 -10 -11 11 -13 13 14 15 18 17 -19 19 -21 -22 22 23 24 -26 -27 -28 -29 29 -31
leaf_parent=28 2 1 4 8 4 6 9 7 8 9 11 11 13 20 16 18 17 17 19 19 20 26 23 24 24 25 26 27 29 29
leaf_value=-0.0109526 -0.0116897 0.0119156 0.000911617 -0.0070159 0.0271013 -0.0359585 0.022718 -0.0160611 0.0211308 -0.000686583 0.00260266 -0.0177046 -0.0130507 0.024323 0.022356 -0.0169336 -0.0177564 0.0142727 0.0227462 -0.00981452 0.00177989 0.00505931 -0.0361482 0.0166421 -0.0214993 0.021097 -0.0217179 -0.00126449 0.00535739 0.0312461
Tree=76
num_leaves=31
split_feature=3 13 4 1 0 6 0 2 7 14 11 12 5 4 3 0 14 24 24 10 25 13 23 5 10 22 10 12 21 23
split_gain=0.842696 3.62729 4.86539 3.42851 2.53362 2.4765 1.77073 3.05493 2.05222 2.01225 3.24172 3.41476 4.46603 3.95339 5.16076 3.89584 3.19667 5.39126 3.81791 2.87362 2.64721 4.37567 4.82775 3.87855 3.8382 3.5399 3.23927 3.23614 5.66755 5.64913
threshold=1.6055 1.0255 0.5575 -0.1105 0.6175 -0.0985 0.3865 -0.579 0.1395 -0.8585 -1.2625 1.661 1.0705 0.5575 1.0285 0.9025 -0.6425 0.9405 0.7805 -0.2965 0.5315 0.5315 0.9945 0.6385 0.2455 0.7005 0.0745 0.5535 0.9295 1.0625
left_child=6 2 4 -3 -2 -6 7 -1 -9 10 -8 13 19 14 15 -12 17 18 -11 -13 23 22 24 -18 -22 -23 -25 28 -27 -30
right_child=1 3 -4 -5 5 -7 9 8 -10 16 11 12 -14 -15 -16 -17 20 -19 -20 -21 21 25 -24 26 -26 27 -28 -29 29 -31
leaf_parent=7 4 3 2 3 5 5 10 8 8 18 15 19 12 13 14 15 23 17 18 19 24 25 22 26 24 28 26 27 29 29
leaf_value=-0.00542691 -0.0170532 -0.000908017 0.0173091 -0.0239893 -0.00980277 0.0140092 -0.0189061 0.0285035 0.00548644 0.0137088 -0.0217365 0.0249368 -0.0131308 0.00598526 -0.0341747 0.00677598 0.0056025 0.0258559 -0.0183418 0.0021815 -0.0124146 0.0211556 -0.0270048 -0.0248603 0.0171698 -0.000546608 -0.00401646 -0.00177823 0.00889804 0.03698
Tree=77
num_leaves=31
split_feature=9 25 26 18 1 4 13 11 18 7 18 16 1 10 9 22 13 9 13 6 23 0 17 21 13 7 4 18 18 23
split_gain=0.813566 2.71165 2.60815 4.29403 4.57837 4.34626 4.70402 4.18921 3.81019 3.69149 4.0663 5.10785 2.18391 3.98677 2.06544 4.03936 4.18901 4.12649 2.47752 3.5966 4.12757 4.2626 4.16051 3.61214 3.14013 2.90158 2.47487 2.40969 1.99888 4.88856
threshold=0.6755 1.258 1.0565 0.0915 -0.1105 -0.6025 0.6745 -0.117 0.0915 -1.061 0.4645 0.637 -1.547 -0.4795 0.9175 0.8555 0.7375 0.7915 0.5315 -1.0705 1.0155 1.3985 0.7065 0.9075 1.0255 -0.0955 0.1045 0.2795 0.2795 0.9875
left_child=1 2 3 4 7 -6 -7 -1 -4 -5 -11 -12 13 -2 15 16 17 -14 -17 -20 21 22 -21 25 -25 -24 -22 -18 29 -16
right_child=12 -3 8 9 5 6 -8 -9 -10 10 11 -13 14 -15 28 18 27 -19 19 20 26 -23 23 24 -26 -27 -28 -29 -30 -31
leaf_parent=7 13 1 8 9 5 6 6 7 8 10 11 11 17 13 29 18 27 17 19 22 26 21 25 24 24 25 26 27 28 29
leaf_value=0.0166196 6.98202e-005 -0.0137338 0.0248172 -0.0103904 0.00441431 -0.00502682 -0.0370498 -0.0072662 -0.000266963 0.0263628 -0.00715646 0.0193179 0.00885647 -0.0269597 0.00802231 -0.0199395 0.0261814 -0.0232244 -0.0226985 -0.0181528 0.000381979 -0.0267098 0.0293926 -0.0180103 0.0080175 0.00210278 0.0240934 0.00364462 0.00546505 -0.00497157
Tree=78
num_leaves=31
split_feature=10 11 18 11 7 10 10 7 8 22 27 0 2 17 3 4 6 13 19 11 5 24 27 5 26 7 27 15 5 4
split_gain=0.833031 3.16691 4.13095 1.22194 3.67501 5.26008 4.41135 5.7989 7.33254 5.42624 4.02006 3.79391 3.77082 3.25877 2.61993 2.58818 3.83535 4.09551 3.60623 3.03982 4.55146 3.20823 3.08449 2.7533 4.1308 3.72949 4.83506 3.26856 2.38617 2.97077
threshold=-1.4955 0.5755 -0.6495 0.8135 0.1395 -0.1055 0.0745 -1.061 0.5435 0.9115 0.9295 0.7495 -0.3345 0.9155 1.0285 0.3295 0.4465 0.8715 0.3385 -1.2625 0.8755 1.1285 1.0405 0.9365 0.9305 -0.0955 0.8015 0.5745 1.0705 1.0245
left_child=1 2 -1 15 6 14 10 -8 -9 -10 11 -5 -7 -12 -6 -2 19 18 -18 20 -17 23 -23 25 -25 27 -27 -21 29 -19
right_child=3 -3 -4 4 5 12 7 8 9 -11 13 -13 -14 -15 -16 16 17 28 -20 21 -22 22 -24 24 -26 26 -28 -29 -30 -31
leaf_parent=2 15 1 2 11 14 12 7 8 9 9 13 11 12 13 14 20 18 29 18 27 20 22 22 24 24 26 26 27 28 29
leaf_value=-0.0307281 0.00362322 0.00824285 -0.00217496 -0.0124717 0.0135892 -0.0101546 -0.0117595 0.0298262 0.0195476 -0.0164405 -0.0317406 0.012253 -0.0370812 -0.00436772 -0.0106054 -0.0272412 -0.00922073 -0.0233357 0.0157175 -0.0157581 0.00613498 0.0269561 0.00393137 -0.0257317 0.00317597 0.0303788 -0.00215419 0.0116377 -0.030155 0.00211395
Tree=79
num_leaves=31
split_feature=7 25 27 6 20 8 17 9 21 21 1 24 20 23 7 11 0 9 21 13 27 6 21 3 2 2 1 1 9 22
split_gain=0.771349 3.60575 5.79188 4.9594 5.33116 3.18867 2.8314 1.39028 4.39574 5.61609 3.64756 3.71884 3.51504 3.5763 4.80069 3.11183 1.57732 1.56415 3.72092 3.70721 2.43709 3.62542 3.74505 1.99376 2.45689 2.13131 5.52888 4.41144 4.16954 4.11416
threshold=1.2855 1.4645 0.7765 -0.8425 0.7755 0.5435 0.7695 1.2935 0.6895 0.7995 0.6625 0.9885 2.3265 0.9915 -0.5835 -0.117 0.9025 1.1685 1.0105 1.0255 1.2465 -0.2615 1.1015 0.277 0.36 -1.044 0.8945 1.1635 0.8545 0.9115
left_child=7 2 5 -4 6 -2 -5 17 -9 -10 12 -12 13 14 -11 -15 -14 20 19 -19 23 -22 -23 24 -1 26 29 -27 -29 -25
right_child=1 -3 3 4 -6 -7 -8 8 9 10 11 -13 16 15 -16 -17 -18 18 -20 -21 21 22 -24 25 -26 27 -28 28 -30 -31
leaf_parent=24 5 1 3 6 4 5 6 8 9 14 11 11 16 15 14 15 16 19 18 19 21 22 22 29 24 27 26 28 28 29
leaf_value=8.03305e-005 -0.0190544 -0.0166225 -0.00951087 0.0139268 0.00192787 0.00615248 0.0387744 -0.017484 0.0307131 0.0221526 -0.00133517 0.0300281 0.0225643 -0.0042333 -0.0104048 -0.0329379 0.00178769 0.0108214 -0.0241388 -0.0168456 -0.0242822 -0.0132217 0.0143647 0.0207785 0.0222598 -0.0036186 -0.0131804 0.000724053 0.0255466 0.00162085
Tree=80
num_leaves=31
split_feature=23 4 13 11 18 11 5 18 1 18 23 14 6 22 18 14 21 25 8 23 6 24 10 9 14 7 21 11 6 11
split_gain=0.738243 1.93295 4.25524 3.87791 3.71056 3.03823 3.0181 3.3914 2.14984 1.32272 1.22555 2.58949 3.27441 1.4796 2.18967 3.10157 3.87271 5.24902 4.05406 3.52337 4.69049 4.04038 3.00429 1.75111 3.7205 5.82752 4.75091 3.25103 4.39277 2.35744
threshold=1.0625 1.0245 1.2095 -0.8145 -0.2715 -0.3575 0.9985 0.2795 -0.1105 -0.6495 1.0155 -0.4425 0.0725 1.0685 -1.5345 0.2785 1.3005 0.8525 0.5435 0.9875 0.4465 0.9405 -0.4795 0.6755 -0.4425 -0.8325 0.8315 0.5755 0.0725 1.2975
left_child=10 2 3 8 -4 -3 7 9 -2 -5 13 -12 -13 23 -15 16 17 -16 -18 21 -21 -17 -19 24 26 -26 -1 28 -27 -25
right_child=1 5 4 6 -6 -7 -8 -9 -10 -11 11 12 -14 14 15 19 18 22 -20 20 -22 -23 -24 29 25 27 -28 -29 -30 -31
leaf_parent=26 8 5 4 9 4 5 6 7 8 9 11 12 12 14 17 21 18 22 18 20 20 21 22 29 25 28 26 27 28 29
leaf_value=-0.00217229 0.0251042 -0.019819 0.0315044 -0.009241 0.00546931 0.00425866 0.0070721 0.00345088 0.002601 -0.0260819 -0.020931 0.0149737 -0.0124771 -0.0119214 0.00112998 -0.00737888 0.0106362 0.0434776 -0.0164159 -0.0241827 0.00549967 0.0237845 0.0173759 -0.00163323 -0.0195723 -0.0147384 0.0241317 0.0162137 0.00883978 -0.011856
Tree=81
num_leaves=31
split_feature=27 0 2 5 11 13 26 15 8 23 19 11 22 19 21 17 5 0 3 11 20 14 26 3 27 17 1 21 1 21
split_gain=0.724277 3.45955 2.74628 2.71455 5.12654 2.49287 2.47582 3.09433 9.87274 2.92483 2.7333 3.46693 3.36429 4.05831 3.58058 2.79874 2.71411 2.51873 2.26431 4.67501 5.22611 6.81996 2.30973 4.15772 5.09071 3.23691 7.32199 6.48675 5.16518 5.61626
threshold=0.8565 1.624 0.36 0.4825 -0.5815 0.4425 0.7935 0.3575 0.5435 0.9985 -0.3615 0.8135 0.9375 1.0475 0.9075 0.7695 0.8165 0.8245 0.5005 -1.0605 2.3265 -0.2675 0.9645 1.6055 0.9775 1.0875 0.467 0.9295 0.467 1.0105
left_child=1 3 -3 4 -1 -2 -5 10 16 17 11 -8 13 15 -14 -12 -9 -10 19 -7 21 -21 23 24 -20 28 -27 -28 -24 -30
right_child=5 2 -4 6 -6 18 7 8 9 -11 12 -13 14 -15 -16 -17 -18 -19 22 20 -22 -23 25 -25 -26 26 27 -29 29 -31
leaf_parent=4 5 2 2 6 4 19 11 16 17 9 15 11 14 13 14 15 16 17 24 21 20 21 28 23 24 26 27 27 29 29
leaf_value=0.0103248 0.0113399 0.0225934 -0.00121934 -0.00273805 -0.0202879 0.0122142 0.000381608 0.0189597 -0.00261891 -0.0186967 0.0209841 -0.0242018 0.0299501 -0.0192808 0.000941641 -0.00638237 0.0457035 0.0201494 -0.00987923 0.0150545 -0.0358956 -0.0202135 0.00936868 -0.0253331 0.0179736 -0.0112447 0.0284055 -0.00533503 -0.0153164 0.0103972
Tree=82
num_leaves=31
split_feature=25 20 17 5 0 18 3 24 18 25 15 1 23 1 22 6 3 14 23 23 3 25 24 13 0 22 24 27 1 0
split_gain=0.696651 2.38451 6.29288 2.98013 2.06264 6.05103 3.33887 4.95391 3.8376 5.62781 4.20552 3.58484 4.96987 3.0924 3.85871 2.90776 2.87992 3.78152 2.84549 1.91623 1.74173 1.47968 3.38343 3.96696 3.61993 5.37782 4.87602 5.96607 4.43754 4.82498
threshold=0.9485 2.3265 1.1855 0.8755 0.6175 -0.2715 1.4035 1.2295 -0.6495 1.4645 -1.2635 -0.1105 0.9945 1.1635 1.0685 0.2535 1.2575 0.2785 0.989 0.9915 0.9335 0.8075 1.2295 1.1115 0.9025 0.8835 1.0515 0.8565 0.8945 1.624
left_child=21 4 20 -4 5 18 8 -8 9 19 -10 12 -12 14 15 -13 17 -7 -2 -6 -3 22 24 -24 25 -1 27 28 29 -26
right_child=1 2 3 -5 6 16 7 -9 10 -11 11 13 -14 -15 -16 -17 -18 -19 -20 -21 -22 -23 23 -25 26 -27 -28 -29 -30 -31
leaf_parent=25 18 20 3 3 19 17 7 7 10 9 12 15 12 13 14 15 16 17 18 19 20 21 23 23 29 25 26 27 28 29
leaf_value=-0.0125566 0.0179325 -0.0348332 -0.0115541 0.0110323 -0.00775362 0.0057953 0.0351758 0.000939019 0.0236695 -0.0296374 0.00389257 0.0162348 -0.0254614 -0.0104407 0.0287111 -0.0083934 -0.0280776 -0.0213783 -0.00638665 0.01227 -0.0135817 0.00450285 -0.00221756 -0.0267543 0.0065683 0.00272074 0.0229932 -0.0117722 -0.012724 0.0312374
Tree=83
num_leaves=31
split_feature=10 4 18 27 0 21 11 23 25 9 26 0 3 5 4 4 24 9 21 1 7 7 22 14 26 26 19 18 25 4
split_gain=0.663018 3.05541 3.52762 0.853697 2.55826 4.97565 3.01035 2.98488 2.78333 2.61447 2.47691 4.6534 3.75383 2.90151 3.94628 2.21312 3.87436 2.44166 3.64144 1.73683 4.9369 4.56596 4.25449 3.67078 3.71012 3.49779 3.15095 5.85267 4.76737 3.52314
threshold=-1.4955 -0.3665 -0.0915 1.0405 1.3985 0.8565 -0.8145 1.0155 0.9005 1.1685 1.1175 0.6175 0.7615 1.4405 -0.3665 0.3295 1.3685 0.7915 1.1015 0.8945 1.0345 0.6025 1.0685 1.1355 0.7385 1.0055 -0.1305 -1.1245 1.1095 1.0245
left_child=1 -1 -3 10 6 -6 9 15 -7 -5 13 -12 -13 19 -15 17 -17 -8 -19 21 23 26 25 24 -21 -23 27 -2 -29 -28
right_child=3 2 -4 4 5 8 7 -9 -10 -11 11 12 -14 14 -16 16 -18 18 -20 20 -22 22 -24 -25 -26 -27 29 28 -30 -31
leaf_parent=1 27 2 2 9 5 8 17 7 8 9 11 12 12 14 14 16 16 18 18 24 20 25 22 23 24 25 29 28 28 29
leaf_value=-0.0151656 0.0152365 -0.00727849 0.0195817 0.0188497 -0.0320774 0.0110287 0.0203413 -0.0162333 -0.0111526 -0.00184276 -0.011368 0.00104115 0.0280355 0.0338409 0.00139493 -0.0174336 0.00966226 0.0113098 -0.0137203 -0.0142055 -0.0222933 0.00663965 0.0238183 -0.0171268 0.00943884 -0.0147169 0.00476414 -0.00680464 -0.0299771 -0.0102332
Tree=84
num_leaves=31
split_feature=11 23 19 14 7 4 11 6 17 23 11 1 13 8 12 27 2 3 17 1 5 12 14 11 7 4 3 8 17 1
split_gain=0.687916 3.13812 3.2557 3.73122 2.80799 3.62724 1.45968 5.06179 2.62645 1.23679 4.94988 3.44141 4.00455 5.50018 3.30576 4.00391 1.81023 3.81378 3.37297 5.70686 5.21277 4.49459 3.78514 6.69986 5.30019 3.41113 3.25889 2.97695 2.69497 4.98394
threshold=-1.2625 0.9835 0.7985 -0.8585 0.1395 -0.3665 -1.0605 0.6375 0.8375 0.9835 0.5755 0.467 1.1115 1.63 1.661 0.8895 0.5975 0.277 0.7695 -0.6935 1.4405 1.661 0.6495 0.115 0.1395 0.1045 0.6795 0.5435 0.6435 -0.6935
left_child=1 -1 3 -3 -5 -6 7 8 -2 10 11 12 13 -8 15 -12 17 -11 19 -18 22 25 24 -24 26 -21 -20 -28 29 -19
right_child=6 2 -4 4 5 -7 9 -9 -10 16 14 -13 -14 -15 -16 -17 18 28 20 21 -22 -23 23 -25 -26 -27 27 -29 -30 -31
leaf_parent=1 8 3 2 4 5 5 13 7 8 17 15 11 12 13 14 15 19 29 26 25 20 21 23 23 24 25 27 27 28 29
leaf_value=0.0129118 0.00325641 -0.0272982 0.00748448 -0.0151605 -0.0124385 0.0150253 -0.0304799 -0.0140274 0.0240069 -0.0183332 0.0136388 -0.0253667 0.0145096 0.00605841 0.0203327 -0.0179612 -0.00756088 0.00951938 0.0137898 0.0383893 0.0215056 0.00439616 0.0288712 -0.0109556 -0.0257365 0.011779 -0.0206084 0.00444292 0.00217652 -0.0113021
Tree=85
num_leaves=31
split_feature=9 25 21 2 2 23 4 0 7 7 1 7 11 16 11 9 22 13 10 21 24 23 10 9 10 6 7 4 6 21
split_gain=0.621034 2.31275 2.33882 2.45573 3.96068 3.52 2.34283 5.90412 3.18687 4.01462 4.11783 2.99221 2.794 1.80954 1.7779 1.73747 3.07444 4.37424 4.00041 2.74212 5.23559 4.52917 4.26961 3.11861 2.70855 2.48802 4.20519 3.69449 2.32053 2.2726
threshold=0.6755 1.258 0.7995 -0.7995 -0.1025 0.9945 -0.3665 0.9905 -1.061 0.3735 -0.1105 0.3735 -0.3575 0.637 0.115 0.9175 0.8555 0.7375 0.0745 1.0105 0.7385 0.9875 1.0875 0.7915 0.4345 0.8405 0.8175 0.3295 -0.0985 0.7555
left_child=1 2 3 -1 -5 14 7 11 -8 12 -11 -4 -10 -9 -6 16 17 18 -2 20 28 -21 25 -23 -19 26 27 -22 -18 -17
right_child=15 -3 6 4 5 -7 8 13 9 10 -12 -13 -14 -15 -16 29 19 24 -20 21 22 23 -24 -25 -26 -27 -28 -29 -30 -31
leaf_parent=3 18 1 11 4 14 5 8 13 12 10 10 11 12 13 14 29 28 24 18 21 27 23 22 23 24 25 26 27 28 29
leaf_value=-0.0160532 -0.0208415 -0.0128787 -0.0131876 0.0176158 0.0130341 -0.023941 -0.0126701 0.0161098 0.00153555 0.00965336 -0.0220305 0.0119294 0.0234657 0.037542 -0.00846463 0.00797286 0.0185584 0.0231457 0.00971238 -0.015917 0.00266116 -0.00207253 0.00931093 0.0219705 -0.00105899 -0.0335037 -0.0313859 -0.020372 -0.00555593 -0.000409123
Tree=86
num_leaves=31
split_feature=7 25 27 6 20 3 22 9 21 21 20 0 1 14 22 26 9 7 22 27 6 21 7 18 19 10 3 15 15 6
split_gain=0.595617 2.83424 4.72565 4.22559 4.14528 2.76457 2.23459 1.14131 3.71275 4.37414 3.06837 4.65024 2.73463 3.47665 5.2786 5.30094 1.35866 3.16269 3.09429 1.99495 2.87462 2.91672 1.93688 3.61661 3.86843 6.67108 3.79735 4.39281 4.69905 3.06151
threshold=1.2855 1.4645 0.7765 -0.8425 0.7755 0.8415 0.9635 1.2935 0.6895 0.7995 2.3265 0.9905 0.6625 -0.8585 0.9115 1.1975 1.1685 -0.0955 0.9635 1.2465 -0.2615 1.1015 -0.3245 -0.0915 0.5535 -0.2965 1.2575 -0.331 1.0375 0.8405
left_child=7 2 5 -4 6 -2 -5 16 -9 -10 12 -12 13 -11 -15 -16 19 18 -18 22 -21 -22 23 29 26 -26 27 -25 -29 -1
right_child=1 -3 3 4 -6 -7 -8 8 9 10 11 -13 -14 14 15 -17 17 -19 -20 20 21 -23 -24 24 25 -27 -28 28 -30 -31
leaf_parent=29 5 1 3 6 4 5 6 8 9 13 11 11 12 14 15 15 18 17 18 20 21 21 22 27 25 25 26 28 28 29
leaf_value=0.000346988 -0.0172335 -0.0149394 -0.00920718 0.03773 0.0021855 0.00645193 0.0159143 -0.0161774 0.0275725 -0.0254425 0.0278125 -0.00367721 0.0120412 -0.0243434 0.0269576 -0.00647702 -0.0302631 0.00426392 -0.00324294 -0.0219321 -0.0119383 0.012526 -0.0021453 0.025783 0.0393132 0.00645432 -0.0137102 -0.0102564 0.0183923 -0.0189803
Tree=87
num_leaves=31
split_feature=10 14 8 1 27 11 22 10 7 9 25 22 14 15 1 2 4 15 9 5 3 21 15 5 2 22 1 14 13 2
split_gain=0.613472 2.86283 3.84669 0.818565 3.48957 3.84457 0.981868 2.56779 2.21934 1.06657 3.42613 4.09673 4.57923 2.4021 2.19031 5.01665 7.15791 5.31888 4.56063 4.24754 3.67062 3.44528 3.31423 3.44754 2.62372 4.31898 3.75483 2.95146 2.62681 2.47253
threshold=-1.4955 -0.6425 0.5435 -1.547 0.9775 -0.117 0.7005 0.0745 0.1395 0.5375 0.5315 0.9115 0.2785 0.3575 -0.2845 1.2875 1.0245 0.5745 1.0735 1.0705 0.6795 0.8835 -1.5095 0.8755 -0.1025 0.9635 -0.6935 -0.0735 0.9435 -0.3345
left_child=1 -1 -3 4 5 -2 7 -5 -9 10 -8 12 -12 -13 15 16 17 24 -18 -17 -19 -22 23 -16 26 -26 28 -28 -11 -24
right_child=3 2 -4 6 -6 -7 9 8 -10 14 11 13 -14 -15 22 19 18 20 -20 -21 21 -23 29 -25 25 -27 27 -29 -30 -31
leaf_parent=1 5 2 2 7 4 5 10 8 8 28 12 13 12 13 23 19 18 20 18 19 21 21 29 23 25 25 27 27 28 29
leaf_value=-0.0153528 0.0188211 -0.0136881 0.0140176 0.016617 -0.0204975 -0.00907426 -0.018117 -0.0140251 0.0107728 0.0214354 -0.0239089 0.0193421 0.00800675 -0.00265743 -0.0290603 -0.023835 0.00217291 0.0153497 -0.0265661 0.00779073 -0.023436 0.00335027 -0.00404409 0.00107852 -0.00294249 0.0219599 -0.00289452 0.0251784 0.0472473 0.00280129
Tree=88
num_leaves=31
split_feature=23 3 17 26 13 10 18 11 3 12 7 23 3 10 9 23 25 10 11 9 25 21 26 11 1 23 1 18 15 7
split_gain=0.614921 1.65838 2.77138 3.77087 5.05658 2.21234 4.63086 2.92293 2.05371 2.04654 1.81528 0.938697 2.31452 4.61184 1.1582 4.33215 3.44537 3.65718 4.76845 4.73824 2.90025 2.62055 4.04297 1.66574 3.86769 2.09286 5.07584 4.62875 3.60864 4.66584
threshold=1.0625 0.6795 0.7695 0.9645 0.7995 -0.4795 -0.4555 -0.5815 1.0285 0.5535 -0.0955 1.0155 0.8415 0.0745 0.6755 0.989 1.0155 0.8375 -0.117 0.5375 0.6255 0.8315 0.8365 -1.4995 -0.1105 0.989 0.2725 0.0915 0.8035 -0.8325
left_child=11 -2 3 4 -3 8 -7 -8 -4 -9 -5 14 -13 -14 15 16 17 18 19 -1 -20 -17 -23 24 -16 28 -27 -28 29 -25
right_child=1 2 5 10 -6 6 7 9 -10 -11 -12 12 13 -15 23 21 -18 -19 20 -21 -22 22 -24 25 -26 26 27 -29 -30 -31
leaf_parent=19 1 4 8 10 4 6 7 9 8 9 10 12 13 13 24 21 16 17 20 19 20 22 22 29 24 26 27 27 28 29
leaf_value=0.000822723 -0.00813245 -0.012256 -0.0224758 0.0107215 0.0202632 0.0224004 0.0122669 0.000361049 -0.00134998 -0.0216488 0.0318635 -0.0205098 -0.0144913 0.0174846 0.00422429 0.00123908 -0.0167557 -0.0129304 -0.0167667 0.0324545 0.00549777 0.00407295 0.0320637 0.00873612 -0.025603 -0.010686 -0.00786731 0.0147143 0.00943517 -0.0050685
Tree=89
num_leaves=31
split_feature=11 23 6 6 18 5 23 17 19 10 2 1 11 5 26 26 27 19 5 21 5 18 1 3 8 17 18 5 4 0
split_gain=0.563706 2.51366 3.12476 5.39161 4.35221 3.49618 4.27483 1.31672 3.83836 5.14868 3.78818 3.86306 6.04209 4.00227 3.26785 2.89939 4.975 3.04681 5.2914 2.48231 2.30353 3.84478 3.34779 2.89734 2.70897 5.28619 5.48463 4.22303 4.4896 3.71581
threshold=-1.2625 0.9835 -0.8425 -0.2615 0.6615 0.7555 0.9915 0.6435 1.0475 -0.4795 0.5975 0.6625 -0.3575 0.9365 1.1975 0.7385 0.7765 -0.8125 0.8755 0.8565 1.4405 0.2795 0.2725 0.6795 1.63 0.9965 0.6615 1.0705 0.5575 0.8245
left_child=1 -1 -3 -4 5 -5 -7 8 10 -10 14 12 -12 -14 15 -2 -17 -18 -19 -11 24 23 -23 -22 27 -26 29 -9 -29 -27
right_child=7 2 3 4 -6 6 -8 20 9 19 11 -13 13 -15 -16 16 17 18 -20 -21 21 22 -24 -25 25 26 -28 28 -30 -31
leaf_parent=1 15 2 3 5 4 6 6 27 9 19 12 11 13 13 14 16 17 18 18 19 23 22 22 23 25 29 26 28 28 29
leaf_value=0.0115582 -0.0162113 0.00957437 -0.0277947 0.00528729 0.0137833 -0.0364887 -0.00322836 0.000529533 0.00639228 -0.0359108 -0.0182197 0.0272277 0.000207208 0.0314383 -0.0217779 0.0187537 -0.0183232 -0.0157761 0.0186307 -0.011173 0.018781 0.00718913 0.0382519 -0.0044021 0.0108279 -0.00734954 -0.0206155 -0.00403868 -0.0281332 0.0127999
Tree=90
num_leaves=31
split_feature=25 26 7 11 19 0 23 8 4 10 4 26 0 12 17 2 6 14 4 24 23 13 26 25 3 24 11 27 17 9
split_gain=0.583259 2.20423 3.10662 1.95718 6.11947 2.94363 4.07701 3.36749 5.08215 4.71501 7.04602 3.88731 3.32016 3.92712 3.73478 3.20715 2.61737 6.53994 1.90316 1.69961 2.73794 3.40215 4.76528 3.78702 3.62321 2.88827 5.17198 4.49745 4.35743 2.80089
threshold=0.9485 0.8705 0.3735 1.2975 0.1215 0.6805 0.9985 0.5435 0.5575 0.8375 1.2805 1.3435 0.4685 1.661 0.8375 0.1275 -0.2615 -0.0735 0.1045 0.8225 0.9795 0.7375 0.8365 0.6975 1.0285 0.7385 0.115 0.7505 0.7695 0.6755
left_child=19 2 18 5 -5 6 12 8 15 10 11 16 14 -14 -3 -7 -9 -18 -2 20 -1 25 23 29 -24 27 -27 28 -22 -23
right_child=1 3 -4 4 -6 7 -8 9 -10 -11 -12 -13 13 -15 -16 -17 17 -19 -20 -21 21 22 24 -25 -26 26 -28 -29 -30 -31
leaf_parent=20 18 14 2 4 4 15 6 16 8 9 10 11 13 13 14 15 17 17 18 19 28 29 24 23 24 26 26 27 28 29
leaf_value=-0.0142275 -0.0296537 -0.00508812 0.00310288 -0.022616 0.00963555 -0.00647172 -0.0218033 -0.00424926 -0.0229827 0.0271117 0.0328816 -0.0161106 0.00322631 -0.0217149 0.022576 0.0182503 0.0343262 -0.00265101 -0.00789809 -0.00104151 0.0266237 0.014438 0.00295578 -0.0187621 0.0307001 0.0368939 0.00144809 -0.010106 -0.00153004 -0.00709855
Tree=91
num_leaves=31
split_feature=27 0 2 5 11 16 26 15 8 5 4 11 4 19 19 19 11 1 11 9 5 15 19 22 7 5 5 26 22 6
split_gain=0.525842 1.8807 2.16804 2.02428 4.01251 1.93193 1.83939 2.77412 7.94543 2.46857 2.72811 3.77103 5.7051 4.46464 3.58959 2.80686 2.34678 2.97464 2.33507 6.1494 3.6073 3.19132 3.99867 3.07103 2.85281 2.2265 1.83484 2.65443 3.88375 4.60319
threshold=0.8565 1.624 0.36 0.4825 -0.5815 1.911 0.7935 0.3575 0.5435 1.2695 1.2805 0.8135 0.1045 0.3385 -0.3615 -0.1305 -0.8145 0.0805 -0.5815 0.7375 0.5675 0.3575 -0.3615 0.9115 -0.3245 0.8165 0.5675 0.9645 0.9895 -0.0985
left_child=1 3 -3 4 -1 -6 18 9 25 10 11 12 15 -14 -13 -8 -10 -18 19 -5 -20 22 -22 -23 -24 -9 -2 28 29 -28
right_child=26 2 -4 6 5 -7 7 8 16 -11 -12 14 13 -15 -16 -17 17 -19 20 -21 21 23 24 -25 -26 -27 27 -29 -30 -31
leaf_parent=4 26 2 2 19 5 5 15 25 16 9 10 14 13 13 14 15 17 17 20 19 22 23 24 23 24 25 29 27 28 29
leaf_value=0.0094869 0.00761793 0.0183811 -0.00299742 -0.0249652 -0.00701958 -0.0291339 0.00228407 0.0178682 -0.015286 -0.0204801 0.0176946 -0.0298405 0.0063695 -0.0279744 -0.000388119 0.026823 -0.00626719 0.0179905 0.0187033 0.00557892 0.0183712 0.000871049 0.00744829 -0.0260748 -0.017903 0.042656 -0.00317223 -0.000199772 0.00271646 -0.0293587
Tree=92
num_leaves=31
split_feature=24 19 11 5 22 7 11 17 21 0 9 17 26 9 4 1 22 17 7 15 11 8 3 18 22 16 0 24 3 1
split_gain=0.58715 1.90817 2.0284 3.15654 4.36453 4.0749 2.88222 3.41035 2.51222 2.49994 1.55278 4.46343 2.90576 2.08179 3.11266 2.29395 1.53153 3.61166 3.05441 2.60936 3.4579 6.13123 3.06431 2.8796 2.50605 3.25579 4.84326 4.6881 6.37159 3.6619
threshold=0.7385 1.2475 0.3425 0.8755 0.9895 -0.3245 -0.5815 0.8375 0.8565 0.8245 0.4485 0.7695 0.6685 0.5375 0.5575 -0.1105 0.8555 0.4415 1.2855 -0.1125 0.115 0.5435 0.7615 -0.0915 0.9635 0.637 0.4685 0.8975 0.9335 0.6625
left_child=1 2 6 5 -5 -4 7 9 -8 -1 11 -2 -12 14 15 -14 18 -18 19 20 -15 -22 -21 -24 25 26 -19 -27 -29 -28
right_child=10 -3 3 4 -6 -7 8 -9 -10 -11 12 -13 13 16 -16 -17 17 24 -20 22 21 -23 23 -25 -26 27 29 28 -30 -31
leaf_parent=9 11 1 5 4 4 5 8 7 8 9 12 11 15 20 14 15 17 26 18 22 21 21 23 23 24 27 29 28 28 29
leaf_value=0.00392871 -0.00679999 -0.00838527 0.00546457 0.0250862 -0.0103647 -0.0228385 0.00482313 0.0130771 0.0255339 -0.0210816 -0.0198217 0.0209427 -0.0145224 0.0182224 -0.0248477 0.00972685 0.0141702 0.0224153 0.0192597 -0.0155429 -0.022398 0.0148343 -0.00959588 0.0125173 0.000208387 -0.0308689 -0.0106371 0.0117349 -0.0220451 0.0107206
Tree=93
num_leaves=31
split_feature=25 20 17 11 10 2 19 21 13 16 22 9 7 0 4 17 1 0 26 26 12 25 24 25 13 9 9 12 18 3
split_gain=0.581433 1.95356 4.93105 2.44358 1.54735 1.48019 3.29088 3.25618 3.99658 3.12611 6.02277 5.08152 4.5225 4.06966 3.11367 3.07656 2.78092 2.00536 4.87771 3.75186 3.03553 2.29175 1.41487 2.4557 4.60269 4.30192 4.96519 3.79629 3.75449 3.66564
threshold=0.9485 2.3265 1.1855 -0.117 -0.1055 -0.3345 -1.2825 0.7555 0.9435 1.911 0.9895 1.0735 -0.3245 0.6175 0.1045 0.9155 -0.1105 0.9025 1.1175 1.0565 1.661 1.258 0.8225 0.5315 1.0255 0.6755 1.1685 1.661 0.0915 0.5005
left_child=22 5 4 -4 -3 6 -2 8 -7 12 14 -12 16 -14 -11 -15 -9 18 21 -19 -21 -8 23 24 27 -25 29 28 -1 -27
right_child=1 2 3 -5 -6 7 17 9 -10 10 11 -13 13 15 -16 -17 -18 19 -20 20 -22 -23 -24 25 -26 26 -28 -29 -30 -31
leaf_parent=28 6 4 3 3 4 8 21 16 8 14 11 11 13 15 14 15 16 19 18 20 20 21 22 25 24 29 26 27 28 29
leaf_value=-0.00215711 0.0233912 -0.0315357 0.0124145 -0.00793298 -0.0113748 -0.00184095 0.0157711 -0.00102663 0.0252914 -0.0390726 -0.0159947 0.0188741 -0.0259268 -0.0135569 -0.0114268 0.0154555 0.0230612 -0.00709043 -0.0192204 0.0312983 0.00240204 -0.0055837 -0.00087298 0.0163972 -0.022409 -0.0192591 0.0201517 -0.0131372 0.0235935 0.00220418
Tree=94
num_leaves=31
split_feature=1 2 21 0 21 15 3 19 2 26 16 21 2 6 24 15 19 21 7 24 23 7 16 20 10 10 6 11 9 18
split_gain=0.563783 3.31219 2.89861 3.19279 4.75509 3.6461 3.0511 2.2051 2.14425 1.91252 4.76453 5.20982 2.14717 3.52294 4.13203 7.5996 3.89719 4.61705 2.32452 6.43382 4.31118 3.65397 3.61189 4.08632 5.76506 5.4487 6.09758 5.02433 3.32831 2.9086
threshold=0.8945 -1.2845 1.1015 0.8245 0.9295 0.3575 1.0285 -0.1305 0.36 1.3435 1.911 0.9605 -1.044 0.0725 0.8225 0.3575 1.0475 0.7995 0.6025 0.8225 0.9985 0.1395 0.637 0.7755 -0.1055 -0.1055 0.2535 0.5755 1.1685 -0.0915
left_child=9 -2 3 4 5 6 -3 -5 -4 12 -11 -12 13 16 -15 -16 17 -1 21 20 -20 22 23 24 29 -25 -27 -26 -23 -14
right_child=1 2 8 7 -6 -7 -8 -9 -10 10 11 -13 18 14 15 -17 -18 -19 19 -21 -22 28 -24 25 27 26 -28 -29 -30 -31
leaf_parent=17 1 6 8 7 4 5 6 7 8 10 11 11 29 14 15 15 16 17 20 19 20 28 22 25 27 26 26 27 28 29
leaf_value=-0.00190519 -0.0163111 0.0129395 0.0214539 -0.00150737 -0.015427 0.0226322 -0.0151498 -0.0189064 -2.98734e-005 -0.0127144 0.0292796 -0.00456562 0.0128369 -0.0173743 0.0249088 -0.0171046 -0.00809835 0.0246778 0.00899959 -0.00197434 0.0356549 -0.0179241 -0.00543061 -0.0136446 -0.0117552 0.0248182 -0.00934478 0.0172252 0.00570636 0.0359091
Tree=95
num_leaves=31
split_feature=13 14 7 24 16 10 27 7 6 13 27 13 1 6 24 0 2 7 10 9 1 10 18 1 0 7 3 24 14 2
split_gain=0.553146 5.23594 5.21069 2.41379 2.54047 2.10643 2.02316 1.05381 3.26806 3.73006 4.50261 5.17599 5.43299 1.42381 3.14824 3.31782 1.97851 2.99784 3.84132 2.40872 3.58384 2.25594 4.24371 7.31538 4.43531 3.86056 3.6626 4.24336 3.25871 4.58227
threshold=1.494 0.1045 -0.8325 0.9405 1.911 0.0745 0.9775 -1.2805 -0.8425 1.1115 1.0405 0.8715 -0.1105 -1.445 0.8225 0.9025 1.2875 -0.3245 -0.1055 0.7915 -0.1105 0.6235 0.0915 -0.2845 1.2245 -0.5835 1.0285 0.8975 -0.2675 -0.579
left_child=7 2 -2 -4 -5 -3 -7 8 -1 10 11 12 -10 14 -9 -16 21 18 -18 -19 -21 25 23 -23 28 26 27 -15 -24 -30
right_child=1 5 3 4 -6 6 -8 13 9 -11 -12 -13 -14 16 15 -17 17 19 -20 20 -22 22 24 -25 -26 -27 -28 -29 29 -31
leaf_parent=8 2 5 3 4 4 6 6 14 12 9 10 11 12 27 15 15 18 19 18 20 20 23 28 23 24 25 26 27 29 29
leaf_value=0.0186005 -0.0279911 0.0220683 -0.0115497 -0.00342544 0.021757 0.0163274 -0.00573278 0.00646441 -0.0107071 0.0158124 -0.0246335 -0.0196044 0.0241732 -0.0131264 -0.0316321 -0.00264123 0.0197793 -0.0214589 -0.00943816 -0.0198468 0.00942146 0.018758 0.0231758 -0.0128455 0.0276202 0.00107988 -0.0199604 0.00977868 -0.0181098 0.00978018
Tree=96
num_leaves=31
split_feature=0 5 6 6 27 7 21 16 13 10 4 5 13 10 6 18 18 14 9 18 19 15 22 14 5 5 23 18 23 23
split_gain=0.658036 5.8098 4.20081 4.63825 4.30031 3.93139 4.14189 4.13315 3.76824 2.8736 2.13856 1.80641 6.86851 3.06862 2.1881 3.29248 1.57424 3.99249 4.0543 3.41276 5.26451 5.77221 2.91298 4.17581 2.55326 5.47764 5.41109 2.46905 5.57183 3.57733
threshold=1.3985 0.6385 -1.0705 1.102 1.1155 0.3735 0.7995 0.637 0.9435 0.0745 -0.6025 0.4825 1.0255 0.0745 -1.445 -0.4555 -0.6495 -1.4895 1.4495 -0.2715 1.0475 -0.5565 0.8555 0.1045 0.8165 0.9365 0.9915 -0.0915 0.9875 0.9985
left_child=11 9 -3 4 5 6 -4 -8 -6 -2 -7 12 13 -1 15 -13 17 -16 24 20 21 -18 -23 -24 -19 -26 -27 28 -21 -29
right_child=1 2 3 -5 8 10 7 -9 -10 -11 -12 14 -14 -15 16 -17 19 18 -20 27 -22 22 23 -25 25 26 -28 29 -30 -31
leaf_parent=13 9 2 6 3 8 10 7 7 8 9 10 15 12 13 17 15 21 24 18 28 20 22 23 23 25 26 26 29 28 29
leaf_value=-0.00973007 0.0271089 0.0120746 -0.0326129 0.00906122 -0.0456416 0.0182638 0.00661133 -0.024525 -0.0134916 0.00135997 -0.00497608 0.00631238 -0.0315507 0.013615 0.019685 -0.0179786 0.0355199 -0.00787796 -0.0223741 0.00999168 -0.0110808 -0.00930512 0.00178308 0.0321877 0.0219492 -0.014055 0.0129162 -0.000102714 -0.0214887 0.00964431
Tree=97
num_leaves=31
split_feature=0 5 21 7 23 10 14 10 19 22 7 6 5 13 24 6 9 22 1 2 17 3 21 19 26 7 9 24 16 19
split_gain=0.536167 4.7151 3.72451 3.46141 5.52128 2.44116 2.38177 2.32939 2.04312 2.70275 2.61235 2.00395 1.46534 5.57594 2.74827 1.77202 3.22644 1.56172 6.24755 2.60662 2.318 2.69941 1.98183 1.83414 3.96496 4.39231 3.3559 2.87498 2.60098 3.09555
threshold=1.3985 0.6385 0.8835 0.3735 0.9915 0.8375 0.4535 0.0745 -0.8125 0.9375 -0.3245 -0.2615 0.4825 1.0255 0.8605 -1.445 1.0735 0.7695 0.8945 1.048 0.8375 0.9335 0.5755 1.2475 1.1975 0.1395 0.8545 0.6175 0.637 -0.8125
left_child=12 7 3 6 -5 8 11 -2 -4 -10 -11 -3 13 14 -1 16 -14 18 19 20 21 -17 -19 27 25 26 -25 -24 29 -29
right_child=1 2 5 4 -6 -7 -8 -9 9 10 -12 -13 15 -15 -16 17 -18 22 -20 -21 -22 -23 23 24 -26 -27 -28 28 -30 -31
leaf_parent=14 7 11 8 4 4 5 6 7 9 10 10 11 16 13 14 21 16 22 18 19 20 21 27 26 24 25 26 29 28 29
leaf_value=0.0120187 0.0244103 -0.0151268 0.00896234 -0.020669 0.0197701 0.0154616 -0.00656068 0.00122409 0.00776801 -0.00084551 -0.0251975 -0.038897 -0.0176859 -0.0284523 -0.0101759 -0.00380802 0.00609678 0.0117492 -0.0162757 -0.00355794 0.0298347 0.0220691 0.0138832 -0.0139129 0.0140274 -0.0267716 0.0129113 -0.00967615 0.0041183 0.000675487
Tree=98
num_leaves=31
split_feature=25 2 11 0 18 0 5 5 16 11 2 10 16 24 9 27 26 25 14 20 25 14 22 25 21 19 17 14 10 14
split_gain=0.516183 2.05023 2.12822 2.49174 5.8295 4.80052 2.55856 0.990636 2.60687 3.10542 4.47154 2.67616 1.11052 3.42773 3.38543 3.2377 5.95796 4.85156 3.09515 3.05881 3.00402 2.94332 2.77581 2.95073 3.94709 3.24359 2.49711 3.54136 2.68293 2.41826
threshold=1.4645 1.048 1.2975 0.6805 -0.6495 0.9905 1.1595 1.4405 1.911 -0.8145 -0.1025 -0.2965 0.637 1.3685 1.0735 0.8275 0.7385 0.5315 -0.0735 0.7755 1.258 0.6495 0.9115 0.8075 0.8565 -0.3615 0.5785 0.1045 -0.1055 -0.0735
left_child=7 2 3 6 -5 -6 -2 12 9 -9 -11 -10 13 -1 18 16 -14 -17 -15 21 22 26 29 -24 -25 -26 -18 28 -28 -19
right_child=1 -3 -4 4 5 -7 -8 8 11 10 -12 -13 15 14 -16 17 19 20 -20 -21 -22 -23 23 24 25 -27 27 -29 -30 -31
leaf_parent=13 6 1 2 4 5 5 6 9 11 10 10 11 16 18 14 17 26 29 18 19 20 21 23 24 25 25 28 27 28 29
leaf_value=-0.000106127 -0.00111397 0.00950508 -0.0225095 -0.0202757 0.0289603 -0.00283725 -0.0255918 -0.018863 -9.88802e-005 -0.0124548 0.0198458 0.0261335 -0.00867 0.0164283 0.0271903 -0.0275088 0.014574 -0.0246636 -0.00919733 0.025473 -0.0192388 0.0221286 -0.00863461 0.0269484 0.015488 -0.00745179 -0.00734307 -0.0227933 0.0168415 -0.00162723
Tree=99
num_leaves=31
split_feature=25 24 13 18 21 11 7 2 3 22 26 17 13 13 2 19 21 2 9 16 0 18 16 9 26 6 2 18 1 23
split_gain=0.468182 1.96477 2.77786 4.60921 3.82145 4.73596 3.84675 3.51879 3.65402 3.80815 3.40133 3.34042 3.23498 3.23396 2.30097 2.10779 4.05897 2.60487 3.16783 2.58462 1.7768 1.28092 3.13933 5.68839 4.15015 3.99878 3.20392 2.48463 3.29205 3.81067
threshold=0.9485 1.2295 0.6065 0.2795 1.1015 -0.5815 1.2855 1.2875 0.5005 0.9635 1.0565 1.0875 1.2095 0.7995 -0.1025 -1.2825 1.3005 0.8325 1.2935 0.637 0.7495 0.8775 1.911 0.6075 0.9645 0.4465 -0.3345 -0.0915 0.8945 0.9945
left_child=21 2 3 -2 5 13 7 8 -7 12 -6 -12 -10 -4 -15 -3 17 18 19 -17 -11 27 23 -23 25 -25 -24 -1 29 -29
right_child=1 15 4 -5 10 6 -8 -9 9 20 11 -13 -14 14 -16 16 -18 -19 -20 -21 -22 22 26 24 -26 -27 -28 28 -30 -31
leaf_parent=27 3 15 13 3 10 8 6 7 12 20 11 11 12 14 14 19 16 17 18 19 20 23 26 25 24 25 26 29 28 29
leaf_value=-0.000915941 -0.026126 0.0177388 0.00302545 0.00430722 0.0220376 -0.0211765 0.0198918 0.0177302 0.0190108 -0.0230601 0.0139579 -0.015012 -0.00880847 -0.00941417 -0.0300373 0.0129009 -0.0152787 -0.00756247 0.0254242 -0.00936412 -0.0012408 -0.030852 -0.00977537 0.0253692 -0.0169773 -0.00718978 0.0145032 0.00370448 -0.00446472 0.0185589
feature importances:
Column_25=202
Column_27=179
Column_22=169
Column_0=162
Column_24=158
Column_5=151
Column_26=150
Column_9=145
Column_21=127
Column_3=124
Column_13=116
Column_23=112
Column_11=109
Column_6=100
Column_10=97
Column_1=95
Column_18=94
Column_19=91
Column_7=88
Column_17=88
Column_14=87
Column_2=79
Column_4=69
Column_15=59
Column_8=51
Column_16=42
Column_12=30
Column_20=26
...@@ -183,7 +183,7 @@ DllExport int LGBM_CreateDatasetFromBinaryFile(const char* filename, ...@@ -183,7 +183,7 @@ DllExport int LGBM_CreateDatasetFromBinaryFile(const char* filename,
} }
DllExport int LGBM_CreateDatasetFromMat(const void* data, DllExport int LGBM_CreateDatasetFromMat(const void* data,
int float_type, int data_type,
int32_t nrow, int32_t nrow,
int32_t ncol, int32_t ncol,
int is_row_major, int is_row_major,
...@@ -195,7 +195,7 @@ DllExport int LGBM_CreateDatasetFromMat(const void* data, ...@@ -195,7 +195,7 @@ DllExport int LGBM_CreateDatasetFromMat(const void* data,
config.LoadFromString(parameters); config.LoadFromString(parameters);
DatasetLoader loader(config.io_config, nullptr); DatasetLoader loader(config.io_config, nullptr);
Dataset* ret = nullptr; Dataset* ret = nullptr;
auto get_row_fun = Common::RowFunctionFromDenseMatric(data, nrow, ncol, float_type, is_row_major); auto get_row_fun = RowFunctionFromDenseMatric(data, nrow, ncol, data_type, is_row_major);
if (reference == nullptr) { if (reference == nullptr) {
// sample data first // sample data first
Random rand(config.io_config.data_random_seed); Random rand(config.io_config.data_random_seed);
...@@ -226,13 +226,14 @@ DllExport int LGBM_CreateDatasetFromMat(const void* data, ...@@ -226,13 +226,14 @@ DllExport int LGBM_CreateDatasetFromMat(const void* data,
return 0; return 0;
} }
DllExport int LGBM_CreateDatasetFromCSR(const int32_t* indptr, DllExport int LGBM_CreateDatasetFromCSR(const void* indptr,
int indptr_type,
const int32_t* indices, const int32_t* indices,
const void* data, const void* data,
int float_type, int data_type,
uint64_t nindptr, int64_t nindptr,
uint64_t nelem, int64_t nelem,
uint64_t num_col, int64_t num_col,
const char* parameters, const char* parameters,
const DatesetHandle* reference, const DatesetHandle* reference,
DatesetHandle* out) { DatesetHandle* out) {
...@@ -241,7 +242,7 @@ DllExport int LGBM_CreateDatasetFromCSR(const int32_t* indptr, ...@@ -241,7 +242,7 @@ DllExport int LGBM_CreateDatasetFromCSR(const int32_t* indptr,
config.LoadFromString(parameters); config.LoadFromString(parameters);
DatasetLoader loader(config.io_config, nullptr); DatasetLoader loader(config.io_config, nullptr);
Dataset* ret = nullptr; Dataset* ret = nullptr;
auto get_row_fun = Common::RowFunctionFromCSR(indptr, indices, data, float_type, nindptr, nelem); auto get_row_fun = RowFunctionFromCSR(indptr, indptr_type, indices, data, data_type, nindptr, nelem);
int32_t nrow = static_cast<int32_t>(nindptr - 1); int32_t nrow = static_cast<int32_t>(nindptr - 1);
if (reference == nullptr) { if (reference == nullptr) {
// sample data first // sample data first
...@@ -269,7 +270,7 @@ DllExport int LGBM_CreateDatasetFromCSR(const int32_t* indptr, ...@@ -269,7 +270,7 @@ DllExport int LGBM_CreateDatasetFromCSR(const int32_t* indptr,
sample_values[inner_data.first][i] = inner_data.second; sample_values[inner_data.first][i] = inner_data.second;
} }
} }
CHECK(num_col >= sample_values.size()); CHECK(num_col >= static_cast<int>(sample_values.size()));
ret = loader.CostructFromSampleData(sample_values, nrow); ret = loader.CostructFromSampleData(sample_values, nrow);
} else { } else {
ret = new Dataset(nrow, config.io_config.num_class); ret = new Dataset(nrow, config.io_config.num_class);
...@@ -289,13 +290,14 @@ DllExport int LGBM_CreateDatasetFromCSR(const int32_t* indptr, ...@@ -289,13 +290,14 @@ DllExport int LGBM_CreateDatasetFromCSR(const int32_t* indptr,
} }
DllExport int LGBM_CreateDatasetFromCSC(const int32_t* col_ptr, DllExport int LGBM_CreateDatasetFromCSC(const void* col_ptr,
int col_ptr_type,
const int32_t* indices, const int32_t* indices,
const void* data, const void* data,
int float_type, int data_type,
uint64_t ncol_ptr, int64_t ncol_ptr,
uint64_t nelem, int64_t nelem,
uint64_t num_row, int64_t num_row,
const char* parameters, const char* parameters,
const DatesetHandle* reference, const DatesetHandle* reference,
DatesetHandle* out) { DatesetHandle* out) {
...@@ -303,7 +305,7 @@ DllExport int LGBM_CreateDatasetFromCSC(const int32_t* col_ptr, ...@@ -303,7 +305,7 @@ DllExport int LGBM_CreateDatasetFromCSC(const int32_t* col_ptr,
config.LoadFromString(parameters); config.LoadFromString(parameters);
DatasetLoader loader(config.io_config, nullptr); DatasetLoader loader(config.io_config, nullptr);
Dataset* ret = nullptr; Dataset* ret = nullptr;
auto get_col_fun = Common::ColumnFunctionFromCSC(col_ptr, indices, data, float_type, ncol_ptr, nelem); auto get_col_fun = ColumnFunctionFromCSC(col_ptr, col_ptr_type, indices, data, data_type, ncol_ptr, nelem);
int32_t nrow = static_cast<int32_t>(num_row); int32_t nrow = static_cast<int32_t>(num_row);
if (reference == nullptr) { if (reference == nullptr) {
Log::Warning("Construct from CSC format is not efficient"); Log::Warning("Construct from CSC format is not efficient");
...@@ -315,7 +317,7 @@ DllExport int LGBM_CreateDatasetFromCSC(const int32_t* col_ptr, ...@@ -315,7 +317,7 @@ DllExport int LGBM_CreateDatasetFromCSC(const int32_t* col_ptr,
#pragma omp parallel for schedule(guided) #pragma omp parallel for schedule(guided)
for (int i = 0; i < static_cast<int>(sample_values.size()); ++i) { for (int i = 0; i < static_cast<int>(sample_values.size()); ++i) {
auto cur_col = get_col_fun(i); auto cur_col = get_col_fun(i);
sample_values[i] = Common::SampleFromOneColumn(cur_col, sample_indices); sample_values[i] = SampleFromOneColumn(cur_col, sample_indices);
} }
ret = loader.CostructFromSampleData(sample_values, nrow); ret = loader.CostructFromSampleData(sample_values, nrow);
} else { } else {
...@@ -350,34 +352,44 @@ DllExport int LGBM_DatasetSaveBinary(DatesetHandle handle, ...@@ -350,34 +352,44 @@ DllExport int LGBM_DatasetSaveBinary(DatesetHandle handle,
DllExport int LGBM_DatasetSetField(DatesetHandle handle, DllExport int LGBM_DatasetSetField(DatesetHandle handle,
const char* field_name, const char* field_name,
const void* field_data, const void* field_data,
uint64_t num_element, int64_t num_element,
int type) { int type) {
auto dataset = reinterpret_cast<Dataset*>(handle); auto dataset = reinterpret_cast<Dataset*>(handle);
dataset->SetField(field_name, field_data, static_cast<int32_t>(num_element), type); bool is_success = false;
return 0; if (type == dtype_float32) {
is_success = dataset->SetFloatField(field_name, reinterpret_cast<const float*>(field_data), static_cast<int32_t>(num_element));
} else if (type == dtype_int32) {
is_success = dataset->SetIntField(field_name, reinterpret_cast<const int*>(field_data), static_cast<int32_t>(num_element));
}
if (is_success) { return 0; }
return -1;
} }
DllExport int LGBM_DatasetGetField(DatesetHandle handle, DllExport int LGBM_DatasetGetField(DatesetHandle handle,
const char* field_name, const char* field_name,
uint64_t* out_len, int64_t* out_len,
const void** out_ptr, const void** out_ptr,
int* out_type) { int* out_type) {
auto dataset = reinterpret_cast<Dataset*>(handle); auto dataset = reinterpret_cast<Dataset*>(handle);
dataset->GetField(field_name, out_len, out_ptr, out_type); if (dataset->GetFloatField(field_name, out_len, reinterpret_cast<const float**>(out_ptr))) {
*out_type = dtype_float32;
return 0;
} else if (dataset->GetIntField(field_name, out_len, reinterpret_cast<const int**>(out_ptr))) {
*out_type = dtype_int32;
return 0; return 0;
}
return -1;
} }
DllExport int LGBM_DatasetGetNumData(DatesetHandle handle, DllExport int LGBM_DatasetGetNumData(DatesetHandle handle,
uint64_t* out) { int64_t* out) {
auto dataset = reinterpret_cast<Dataset*>(handle); auto dataset = reinterpret_cast<Dataset*>(handle);
*out = dataset->num_data(); *out = dataset->num_data();
return 0; return 0;
} }
DllExport int LGBM_DatasetGetNumFeature(DatesetHandle handle, DllExport int LGBM_DatasetGetNumFeature(DatesetHandle handle,
uint64_t* out) { int64_t* out) {
auto dataset = reinterpret_cast<Dataset*>(handle); auto dataset = reinterpret_cast<Dataset*>(handle);
*out = dataset->num_total_features(); *out = dataset->num_total_features();
return 0; return 0;
...@@ -442,13 +454,13 @@ DllExport int LGBM_BoosterUpdateOneIterCustom(BoosterHandle handle, ...@@ -442,13 +454,13 @@ DllExport int LGBM_BoosterUpdateOneIterCustom(BoosterHandle handle,
DllExport int LGBM_BoosterEval(BoosterHandle handle, DllExport int LGBM_BoosterEval(BoosterHandle handle,
int data, int data,
uint64_t* out_len, int64_t* out_len,
float* out_results) { float* out_results) {
Booster* ref_booster = reinterpret_cast<Booster*>(handle); Booster* ref_booster = reinterpret_cast<Booster*>(handle);
auto boosting = ref_booster->GetBoosting(); auto boosting = ref_booster->GetBoosting();
auto result_buf = boosting->GetEvalAt(data); auto result_buf = boosting->GetEvalAt(data);
*out_len = static_cast<uint64_t>(result_buf.size()); *out_len = static_cast<int64_t>(result_buf.size());
for (size_t i = 0; i < result_buf.size(); ++i) { for (size_t i = 0; i < result_buf.size(); ++i) {
(out_results)[i] = static_cast<float>(result_buf[i]); (out_results)[i] = static_cast<float>(result_buf[i]);
} }
...@@ -456,47 +468,48 @@ DllExport int LGBM_BoosterEval(BoosterHandle handle, ...@@ -456,47 +468,48 @@ DllExport int LGBM_BoosterEval(BoosterHandle handle,
} }
DllExport int LGBM_BoosterGetScore(BoosterHandle handle, DllExport int LGBM_BoosterGetScore(BoosterHandle handle,
uint64_t* out_len, int64_t* out_len,
const float** out_result) { const float** out_result) {
Booster* ref_booster = reinterpret_cast<Booster*>(handle); Booster* ref_booster = reinterpret_cast<Booster*>(handle);
auto boosting = ref_booster->GetBoosting(); auto boosting = ref_booster->GetBoosting();
int len = 0; int len = 0;
*out_result = boosting->GetTrainingScore(&len); *out_result = boosting->GetTrainingScore(&len);
*out_len = static_cast<uint64_t>(len); *out_len = static_cast<int64_t>(len);
return 0; return 0;
} }
DllExport int LGBM_BoosterGetPredict(BoosterHandle handle, DllExport int LGBM_BoosterGetPredict(BoosterHandle handle,
int data, int data,
uint64_t* out_len, int64_t* out_len,
float* out_result) { float* out_result) {
Booster* ref_booster = reinterpret_cast<Booster*>(handle); Booster* ref_booster = reinterpret_cast<Booster*>(handle);
auto boosting = ref_booster->GetBoosting(); auto boosting = ref_booster->GetBoosting();
int len = 0; int len = 0;
boosting->GetPredictAt(data, out_result, &len); boosting->GetPredictAt(data, out_result, &len);
*out_len = static_cast<uint64_t>(len); *out_len = static_cast<int64_t>(len);
return 0; return 0;
} }
DllExport int LGBM_BoosterPredictForCSR(BoosterHandle handle, DllExport int LGBM_BoosterPredictForCSR(BoosterHandle handle,
const int32_t* indptr, const void* indptr,
int indptr_type,
const int32_t* indices, const int32_t* indices,
const void* data, const void* data,
int float_type, int data_type,
uint64_t nindptr, int64_t nindptr,
uint64_t nelem, int64_t nelem,
uint64_t, int64_t,
int predict_type, int predict_type,
uint64_t n_used_trees, int64_t n_used_trees,
double* out_result) { double* out_result) {
Booster* ref_booster = reinterpret_cast<Booster*>(handle); Booster* ref_booster = reinterpret_cast<Booster*>(handle);
ref_booster->PrepareForPrediction(static_cast<int>(n_used_trees), predict_type); ref_booster->PrepareForPrediction(static_cast<int>(n_used_trees), predict_type);
auto get_row_fun = Common::RowFunctionFromCSR(indptr, indices, data, float_type, nindptr, nelem); auto get_row_fun = RowFunctionFromCSR(indptr, indptr_type, indices, data, data_type, nindptr, nelem);
int num_class = ref_booster->NumberOfClasses(); int num_class = ref_booster->NumberOfClasses();
int nrow = static_cast<int>(nindptr - 1); int nrow = static_cast<int>(nindptr - 1);
#pragma omp parallel for schedule(guided) #pragma omp parallel for schedule(guided)
...@@ -512,18 +525,18 @@ DllExport int LGBM_BoosterPredictForCSR(BoosterHandle handle, ...@@ -512,18 +525,18 @@ DllExport int LGBM_BoosterPredictForCSR(BoosterHandle handle,
DllExport int LGBM_BoosterPredictForMat(BoosterHandle handle, DllExport int LGBM_BoosterPredictForMat(BoosterHandle handle,
const void* data, const void* data,
int float_type, int data_type,
int32_t nrow, int32_t nrow,
int32_t ncol, int32_t ncol,
int is_row_major, int is_row_major,
int predict_type, int predict_type,
uint64_t n_used_trees, int64_t n_used_trees,
double* out_result) { double* out_result) {
Booster* ref_booster = reinterpret_cast<Booster*>(handle); Booster* ref_booster = reinterpret_cast<Booster*>(handle);
ref_booster->PrepareForPrediction(static_cast<int>(n_used_trees), predict_type); ref_booster->PrepareForPrediction(static_cast<int>(n_used_trees), predict_type);
auto get_row_fun = Common::RowPairFunctionFromDenseMatric(data, nrow, ncol, float_type, is_row_major); auto get_row_fun = RowPairFunctionFromDenseMatric(data, nrow, ncol, data_type, is_row_major);
int num_class = ref_booster->NumberOfClasses(); int num_class = ref_booster->NumberOfClasses();
#pragma omp parallel for schedule(guided) #pragma omp parallel for schedule(guided)
for (int i = 0; i < nrow; ++i) { for (int i = 0; i < nrow; ++i) {
...@@ -544,3 +557,261 @@ DllExport int LGBM_BoosterSaveModel(BoosterHandle handle, ...@@ -544,3 +557,261 @@ DllExport int LGBM_BoosterSaveModel(BoosterHandle handle,
ref_booster->SaveModelToFile(num_used_model, filename); ref_booster->SaveModelToFile(num_used_model, filename);
return 0; return 0;
} }
std::function<std::vector<double>(int row_idx)>
RowFunctionFromDenseMatric(const void* data, int num_row, int num_col, int data_type, int is_row_major) {
if (data_type == dtype_float32) {
const float* data_ptr = reinterpret_cast<const float*>(data);
if (is_row_major) {
return [data_ptr, num_col, num_row](int row_idx) {
CHECK(row_idx < num_row);
std::vector<double> ret;
auto tmp_ptr = data_ptr + num_col * row_idx;
for (int i = 0; i < num_col; ++i) {
ret.push_back(static_cast<double>(*(tmp_ptr + i)));
}
return ret;
};
} else {
return [data_ptr, num_col, num_row](int row_idx) {
CHECK(row_idx < num_row);
std::vector<double> ret;
for (int i = 0; i < num_col; ++i) {
ret.push_back(static_cast<double>(*(data_ptr + num_row * i + row_idx)));
}
return ret;
};
}
} else if (data_type == dtype_float64) {
const double* data_ptr = reinterpret_cast<const double*>(data);
if (is_row_major) {
return [data_ptr, num_col, num_row](int row_idx) {
CHECK(row_idx < num_row);
std::vector<double> ret;
auto tmp_ptr = data_ptr + num_col * row_idx;
for (int i = 0; i < num_col; ++i) {
ret.push_back(static_cast<double>(*(tmp_ptr + i)));
}
return ret;
};
} else {
return [data_ptr, num_col, num_row](int row_idx) {
CHECK(row_idx < num_row);
std::vector<double> ret;
for (int i = 0; i < num_col; ++i) {
ret.push_back(static_cast<double>(*(data_ptr + num_row * i + row_idx)));
}
return ret;
};
}
} else {
Log::Fatal("unknown data type in RowFunctionFromDenseMatric");
}
}
std::function<std::vector<std::pair<int, double>>(int row_idx)>
RowPairFunctionFromDenseMatric(const void* data, int num_row, int num_col, int data_type, int is_row_major) {
if (data_type == dtype_float32) {
const float* data_ptr = reinterpret_cast<const float*>(data);
if (is_row_major) {
return [data_ptr, num_col, num_row](int row_idx) {
CHECK(row_idx < num_row);
std::vector<std::pair<int, double>> ret;
auto tmp_ptr = data_ptr + num_col * row_idx;
for (int i = 0; i < num_col; ++i) {
ret.emplace_back(i, static_cast<double>(*(tmp_ptr + i)));
}
return ret;
};
} else {
return [data_ptr, num_col, num_row](int row_idx) {
CHECK(row_idx < num_row);
std::vector<std::pair<int, double>> ret;
for (int i = 0; i < num_col; ++i) {
ret.emplace_back(i, static_cast<double>(*(data_ptr + num_row * i + row_idx)));
}
return ret;
};
}
} else if (data_type == dtype_float64) {
const double* data_ptr = reinterpret_cast<const double*>(data);
if (is_row_major) {
return [data_ptr, num_col, num_row](int row_idx) {
CHECK(row_idx < num_row);
std::vector<std::pair<int, double>> ret;
auto tmp_ptr = data_ptr + num_col * row_idx;
for (int i = 0; i < num_col; ++i) {
ret.emplace_back(i, static_cast<double>(*(tmp_ptr + i)));
}
return ret;
};
} else {
return [data_ptr, num_col, num_row](int row_idx) {
CHECK(row_idx < num_row);
std::vector<std::pair<int, double>> ret;
for (int i = 0; i < num_col; ++i) {
ret.emplace_back(i, static_cast<double>(*(data_ptr + num_row * i + row_idx)));
}
return ret;
};
}
} else {
Log::Fatal("unknown data type in RowPairFunctionFromDenseMatric");
}
}
std::function<std::vector<std::pair<int, double>>(int idx)>
RowFunctionFromCSR(const void* indptr, int indptr_type, const int32_t* indices, const void* data, int data_type, int64_t nindptr, int64_t nelem) {
if (data_type == dtype_float32) {
const float* data_ptr = reinterpret_cast<const float*>(data);
if (indptr_type == dtype_int32) {
const int32_t* ptr_indptr = reinterpret_cast<const int32_t*>(indptr);
return [ptr_indptr, indices, data_ptr, nindptr, nelem](int idx) {
CHECK(idx + 1 < nindptr);
std::vector<std::pair<int, double>> ret;
int64_t start = ptr_indptr[idx];
int64_t end = ptr_indptr[idx + 1];
CHECK(start >= 0 && end < nelem);
for (int64_t i = start; i <= end; ++i) {
ret.emplace_back(indices[i], data_ptr[i]);
}
return ret;
};
} else if (indptr_type == dtype_int64) {
const int64_t* ptr_indptr = reinterpret_cast<const int64_t*>(indptr);
return [ptr_indptr, indices, data_ptr, nindptr, nelem](int idx) {
CHECK(idx + 1 < nindptr);
std::vector<std::pair<int, double>> ret;
int64_t start = ptr_indptr[idx];
int64_t end = ptr_indptr[idx + 1];
CHECK(start >= 0 && end < nelem);
for (int64_t i = start; i <= end; ++i) {
ret.emplace_back(indices[i], data_ptr[i]);
}
return ret;
};
} else {
Log::Fatal("unknown data type in RowFunctionFromCSR");
}
} else if (data_type == dtype_float64) {
const double* data_ptr = reinterpret_cast<const double*>(data);
if (indptr_type == dtype_int32) {
const int32_t* ptr_indptr = reinterpret_cast<const int32_t*>(indptr);
return [ptr_indptr, indices, data_ptr, nindptr, nelem](int idx) {
CHECK(idx + 1 < nindptr);
std::vector<std::pair<int, double>> ret;
int64_t start = ptr_indptr[idx];
int64_t end = ptr_indptr[idx + 1];
CHECK(start >= 0 && end < nelem);
for (int64_t i = start; i <= end; ++i) {
ret.emplace_back(indices[i], data_ptr[i]);
}
return ret;
};
} else if (indptr_type == dtype_int64) {
const int64_t* ptr_indptr = reinterpret_cast<const int64_t*>(indptr);
return [ptr_indptr, indices, data_ptr, nindptr, nelem](int idx) {
CHECK(idx + 1 < nindptr);
std::vector<std::pair<int, double>> ret;
int64_t start = ptr_indptr[idx];
int64_t end = ptr_indptr[idx + 1];
CHECK(start >= 0 && end < nelem);
for (int64_t i = start; i <= end; ++i) {
ret.emplace_back(indices[i], data_ptr[i]);
}
return ret;
};
} else {
Log::Fatal("unknown data type in RowFunctionFromCSR");
}
} else {
Log::Fatal("unknown data type in RowFunctionFromCSR");
}
}
std::function<std::vector<std::pair<int, double>>(int idx)>
ColumnFunctionFromCSC(const void* col_ptr, int col_ptr_type, const int32_t* indices, const void* data, int data_type, int64_t ncol_ptr, int64_t nelem) {
if (data_type == dtype_float32) {
const float* data_ptr = reinterpret_cast<const float*>(data);
if (col_ptr_type == dtype_int32) {
const int32_t* ptr_col_ptr = reinterpret_cast<const int32_t*>(col_ptr);
return [ptr_col_ptr, indices, data_ptr, ncol_ptr, nelem](int idx) {
CHECK(idx + 1 < ncol_ptr);
std::vector<std::pair<int, double>> ret;
int64_t start = ptr_col_ptr[idx];
int64_t end = ptr_col_ptr[idx + 1];
CHECK(start >= 0 && end <= nelem);
for (int64_t i = start; i < end; ++i) {
ret.emplace_back(indices[i], data_ptr[i]);
}
return ret;
};
} else if (col_ptr_type == dtype_int64) {
const int64_t* ptr_col_ptr = reinterpret_cast<const int64_t*>(col_ptr);
return [ptr_col_ptr, indices, data_ptr, ncol_ptr, nelem](int idx) {
CHECK(idx + 1 < ncol_ptr);
std::vector<std::pair<int, double>> ret;
int64_t start = ptr_col_ptr[idx];
int64_t end = ptr_col_ptr[idx + 1];
CHECK(start >= 0 && end <= nelem);
for (int64_t i = start; i < end; ++i) {
ret.emplace_back(indices[i], data_ptr[i]);
}
return ret;
};
} else {
Log::Fatal("unknown data type in ColumnFunctionFromCSC");
}
} else if (data_type == dtype_float64) {
const double* data_ptr = reinterpret_cast<const double*>(data);
if (col_ptr_type == dtype_int32) {
const int32_t* ptr_col_ptr = reinterpret_cast<const int32_t*>(col_ptr);
return [ptr_col_ptr, indices, data_ptr, ncol_ptr, nelem](int idx) {
CHECK(idx + 1 < ncol_ptr);
std::vector<std::pair<int, double>> ret;
int64_t start = ptr_col_ptr[idx];
int64_t end = ptr_col_ptr[idx + 1];
CHECK(start >= 0 && end <= nelem);
for (int64_t i = start; i < end; ++i) {
ret.emplace_back(indices[i], data_ptr[i]);
}
return ret;
};
} else if (col_ptr_type == dtype_int64) {
const int64_t* ptr_col_ptr = reinterpret_cast<const int64_t*>(col_ptr);
return [ptr_col_ptr, indices, data_ptr, ncol_ptr, nelem](int idx) {
CHECK(idx + 1 < ncol_ptr);
std::vector<std::pair<int, double>> ret;
int64_t start = ptr_col_ptr[idx];
int64_t end = ptr_col_ptr[idx + 1];
CHECK(start >= 0 && end <= nelem);
for (int64_t i = start; i < end; ++i) {
ret.emplace_back(indices[i], data_ptr[i]);
}
return ret;
};
} else {
Log::Fatal("unknown data type in ColumnFunctionFromCSC");
}
} else {
Log::Fatal("unknown data type in ColumnFunctionFromCSC");
}
}
std::vector<double> SampleFromOneColumn(const std::vector<std::pair<int, double>>& data, const std::vector<size_t>& indices) {
size_t j = 0;
std::vector<double> ret;
for (auto row_idx : indices) {
while (j < data.size() && data[j].first < static_cast<int>(row_idx)) {
++j;
}
if (j < data.size() && data[j].first == static_cast<int>(row_idx)) {
ret.push_back(data[j].second);
} else {
ret.push_back(0);
}
}
return ret;
}
\ No newline at end of file
...@@ -64,57 +64,60 @@ std::vector<const BinMapper*> Dataset::GetBinMappers() const { ...@@ -64,57 +64,60 @@ std::vector<const BinMapper*> Dataset::GetBinMappers() const {
return ret; return ret;
} }
void Dataset::SetField(const char* field_name, const void* field_data, data_size_t num_element, int type) { bool Dataset::SetFloatField(const char* field_name, const float* field_data, data_size_t num_element) {
std::string name(field_name); std::string name(field_name);
name = Common::Trim(name); name = Common::Trim(name);
if (name == std::string("label") || name == std::string("target")) { if (name == std::string("label") || name == std::string("target")) {
if (type != 0) { metadata_.SetLabel(field_data, num_element);
Log::Fatal("type of label should be float");
}
metadata_.SetLabel(reinterpret_cast<const float*>(field_data), num_element);
} else if (name == std::string("weight") || name == std::string("weights")) { } else if (name == std::string("weight") || name == std::string("weights")) {
if (type != 0) { metadata_.SetWeights(field_data, num_element);
Log::Fatal("type of weights should be float");
}
metadata_.SetWeights(reinterpret_cast<const float*>(field_data), num_element);
} else if (name == std::string("init_score")) { } else if (name == std::string("init_score")) {
if (type != 0) { metadata_.SetInitScore(field_data, num_element);
Log::Fatal("type of init_score should be float"); } else {
} return false;
metadata_.SetInitScore(reinterpret_cast<const float*>(field_data), num_element);
} else if (name == std::string("query") || name == std::string("group")) {
if (type != 1) {
Log::Fatal("type of init_score should be int");
} }
metadata_.SetQueryBoundaries(reinterpret_cast<const data_size_t*>(field_data), num_element); return true;
}
bool Dataset::SetIntField(const char* field_name, const int* field_data, data_size_t num_element) {
std::string name(field_name);
name = Common::Trim(name);
if (name == std::string("query") || name == std::string("group")) {
metadata_.SetQueryBoundaries(field_data, num_element);
} else { } else {
Log::Fatal("unknow field name: %s", field_name); return false;
} }
return true;
} }
void Dataset::GetField(const char* field_name, uint64_t* out_len, const void** out_ptr, int* out_type) { bool Dataset::GetFloatField(const char* field_name, int64_t* out_len, const float** out_ptr) {
std::string name(field_name); std::string name(field_name);
name = Common::Trim(name); name = Common::Trim(name);
if (name == std::string("label") || name == std::string("target")) { if (name == std::string("label") || name == std::string("target")) {
*out_ptr = metadata_.label(); *out_ptr = metadata_.label();
*out_len = num_data_; *out_len = num_data_;
*out_type = 0;
} else if (name == std::string("weight") || name == std::string("weights")) { } else if (name == std::string("weight") || name == std::string("weights")) {
*out_ptr = metadata_.weights(); *out_ptr = metadata_.weights();
*out_len = num_data_; *out_len = num_data_;
*out_type = 0;
} else if (name == std::string("init_score")) { } else if (name == std::string("init_score")) {
*out_ptr = metadata_.init_score(); *out_ptr = metadata_.init_score();
*out_len = num_data_; *out_len = num_data_;
*out_type = 0; } else {
} else if (name == std::string("query") || name == std::string("group")) { return false;
}
return true;
}
bool Dataset::GetIntField(const char* field_name, int64_t* out_len, const int** out_ptr) {
std::string name(field_name);
name = Common::Trim(name);
if (name == std::string("query") || name == std::string("group")) {
*out_ptr = metadata_.query_boundaries(); *out_ptr = metadata_.query_boundaries();
*out_len = num_data_; *out_len = num_data_;
*out_type = 1;
} else { } else {
Log::Fatal("unknow field name: %s", field_name); return false;
} }
return true;
} }
void Dataset::SaveBinaryFile(const char* bin_filename) { void Dataset::SaveBinaryFile(const char* bin_filename) {
......
...@@ -511,7 +511,10 @@ std::vector<std::string> DatasetLoader::LoadTextDataToMemory(const char* filenam ...@@ -511,7 +511,10 @@ std::vector<std::string> DatasetLoader::LoadTextDataToMemory(const char* filenam
} }
std::vector<std::string> DatasetLoader::SampleTextDataFromMemory(const std::vector<std::string>& data) { std::vector<std::string> DatasetLoader::SampleTextDataFromMemory(const std::vector<std::string>& data) {
const size_t sample_cnt = static_cast<size_t>(data.size() < io_config_.bin_construct_sample_cnt ? data.size() : io_config_.bin_construct_sample_cnt); size_t sample_cnt = static_cast<size_t>(io_config_.bin_construct_sample_cnt);
if (sample_cnt > data.size()) {
sample_cnt = data.size();
}
std::vector<size_t> sample_indices = random_.Sample(data.size(), sample_cnt); std::vector<size_t> sample_indices = random_.Sample(data.size(), sample_cnt);
std::vector<std::string> out; std::vector<std::string> out;
for (size_t i = 0; i < sample_indices.size(); ++i) { for (size_t i = 0; i < sample_indices.size(); ++i) {
......
from __future__ import absolute_import
import sys
import os
import ctypes
import collections
import re
import numpy as np
from scipy import sparse
def _load_lib():
"""Load xgboost Library."""
lib_path = './windows/x64/DLL/lib_lightgbm.dll'
if len(lib_path) == 0:
return None
lib = ctypes.cdll.LoadLibrary(lib_path)
return lib
LIB = _load_lib()
LIB.LGBM_GetLastError.restype = ctypes.c_char_p
def test_load_from_file():
handle = ctypes.c_void_p()
LIB.LGBM_CreateDatasetFromFile(ctypes.c_char_p('./examples/binary_classification/binary.train'),
ctypes.c_char_p('max_bin=15'), ctypes.c_void_p(None), ctypes.byref(handle))
num_data = ctypes.c_ulong()
LIB.LGBM_DatasetGetNumData(handle, ctypes.byref(num_data) )
print num_data
num_feature = ctypes.c_ulong()
LIB.LGBM_DatasetGetNumFeature(handle, ctypes.byref(num_feature) )
return handle
def c_array(ctype, values):
"""Convert a python string to c array."""
return (ctype * len(values))(*values)
def c_str(string):
"""Convert a python string to cstring."""
return ctypes.c_char_p(string.encode('utf-8'))
def test_load_from_matric():
data = []
inp = open('./examples/binary_classification/binary.train', 'r')
for line in inp.readlines():
data.append( [float(x) for x in line.split('\t')[1:]] )
inp.close()
mat = np.array(data)
print mat.shape
data = np.array(mat.reshape(mat.size), copy=False)
handle = ctypes.c_void_p()
LIB.LGBM_CreateDatasetFromMat(data.ctypes.data_as(ctypes.POINTER(ctypes.c_double)), 1,
mat.shape[0],
mat.shape[1], 1,
ctypes.c_char_p('max_bin=15 is_sparse=false'), None, ctypes.byref(handle) )
LIB.LGBM_DatasetFree(ctypes.byref(handle))
# num_data = ctypes.c_ulong()
# LIB.LGBM_DatasetGetNumData(handle, ctypes.byref(num_data) )
# print num_data
# num_feature = ctypes.c_ulong()
# LIB.LGBM_DatasetGetNumFeature(handle, ctypes.byref(num_feature) )
# print num_feature
return handle
def test_load_from_csr(filename, reference):
data = []
label = []
inp = open(filename, 'r')
for line in inp.readlines():
data.append( [float(x) for x in line.split('\t')[1:]] )
label.append( float(line.split('\t')[0]) )
inp.close()
mat = np.array(data)
label = np.array(label, dtype=np.float32)
print mat.shape
csr = sparse.csr_matrix(mat)
handle = ctypes.c_void_p()
ref = None
if reference != None:
ref = ctypes.byref(reference)
LIB.LGBM_CreateDatasetFromCSR(c_array(ctypes.c_int, csr.indptr),
c_array(ctypes.c_int, csr.indices),
csr.data.ctypes.data_as(ctypes.POINTER(ctypes.c_void_p)),
1, len(csr.indptr), len(csr.data),
csr.shape[1], ctypes.c_char_p('max_bin=15'), ref, ctypes.byref(handle) )
num_data = ctypes.c_ulong()
LIB.LGBM_DatasetGetNumData(handle, ctypes.byref(num_data) )
print num_data
num_feature = ctypes.c_ulong()
LIB.LGBM_DatasetGetNumFeature(handle, ctypes.byref(num_feature) )
LIB.LGBM_DatasetSetField(handle, c_str('label'), c_array(ctypes.c_float, label), len(label), 0)
return handle
train = test_load_from_csr('./examples/binary_classification/binary.train', None)
test = [test_load_from_csr('./examples/binary_classification/binary.test', train)]
name = [c_str('test')]
booster = ctypes.c_void_p()
LIB.LGBM_BoosterCreate(train, c_array(ctypes.c_void_p, test), c_array(ctypes.c_char_p, name), 1, "app=binary metric=auc num_leaves=31", ctypes.byref(booster))
is_finished = ctypes.c_int(0)
for i in xrange(100):
LIB.LGBM_BoosterUpdateOneIter(booster,ctypes.byref(is_finished))
result = np.array([0.0], dtype=np.float32)
out_len = ctypes.c_ulong(0)
LIB.LGBM_BoosterEval(booster, 0, ctypes.byref(out_len), result.ctypes.data_as(ctypes.POINTER(ctypes.c_float)))
print result
LIB.LGBM_BoosterSaveModel(booster, -1, c_str('model.txt'))
booster2 = ctypes.c_void_p()
LIB.LGBM_BoosterLoadFromModelfile(c_str('model.txt'), ctypes.byref(booster2))
print type(len([0,0]))
\ No newline at end of file
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