Skip to content
GitLab
Menu
Projects
Groups
Snippets
Loading...
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
Menu
Open sidebar
tianlh
LightGBM-DCU
Commits
044f79aa
Commit
044f79aa
authored
Nov 08, 2016
by
Guolin Ke
Browse files
support int64_t for CSR/CSR's indptr
parent
31b19afc
Changes
8
Hide whitespace changes
Inline
Side-by-side
Showing
8 changed files
with
1667 additions
and
280 deletions
+1667
-280
include/LightGBM/c_api.h
include/LightGBM/c_api.h
+63
-33
include/LightGBM/dataset.h
include/LightGBM/dataset.h
+6
-2
include/LightGBM/utils/common.h
include/LightGBM/utils/common.h
+0
-175
model.txt
model.txt
+1138
-0
src/c_api.cpp
src/c_api.cpp
+313
-42
src/io/dataset.cpp
src/io/dataset.cpp
+30
-27
src/io/dataset_loader.cpp
src/io/dataset_loader.cpp
+4
-1
test_dll.py
test_dll.py
+113
-0
No files found.
include/LightGBM/c_api.h
View file @
044f79aa
...
@@ -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
flo
at_type 0 for float_32 1 for float_64
* \param
d
at
a
_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
flo
at_type
,
int
d
at
a
_type
,
u
int64_t
nindptr
,
int64_t
nindptr
,
u
int64_t
nelem
,
int64_t
nelem
,
u
int64_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
flo
at_type 0 for float_32 1 for float_64
* \param
d
at
a
_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
flo
at_type
,
int
d
at
a
_type
,
u
int64_t
ncol_ptr
,
int64_t
ncol_ptr
,
u
int64_t
nelem
,
int64_t
nelem
,
u
int64_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
flo
at_type 0 for float_32 1 for float_64
* \param
d
at
a
_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
flo
at_type
,
int
d
at
a
_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,
u
int32_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
,
u
int64_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,
u
int32_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
,
u
int64_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
,
u
int64_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
,
u
int64_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
,
u
int64_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
,
u
int64_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
,
u
int64_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
flo
at_type 0:float_32 1:float64
* \param
d
at
a
_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
flo
at_type
,
int
d
at
a
_type
,
u
int64_t
nindptr
,
int64_t
nindptr
,
u
int64_t
nelem
,
int64_t
nelem
,
u
int64_t
num_col
,
int64_t
num_col
,
int
predict_type
,
int
predict_type
,
u
int64_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
flo
at_type 0:float_32 1:float64
* \param
d
at
a
_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
flo
at_type
,
int
d
at
a
_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
,
u
int64_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_
include/LightGBM/dataset.h
View file @
044f79aa
...
@@ -277,9 +277,13 @@ public:
...
@@ -277,9 +277,13 @@ public:
void
FinishLoad
();
void
FinishLoad
();
void
Se
tField
(
const
char
*
field_name
,
const
void
*
field_data
,
data_size_t
num_element
,
int
type
);
bool
SetFloa
tField
(
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"
...
...
include/LightGBM/utils/common.h
View file @
044f79aa
...
@@ -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
...
...
model.txt
0 → 100644
View file @
044f79aa
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
src/c_api.cpp
View file @
044f79aa
...
@@ -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
flo
at_type
,
int
d
at
a
_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
,
flo
at_type
,
is_row_major
);
auto
get_row_fun
=
RowFunctionFromDenseMatric
(
data
,
nrow
,
ncol
,
d
at
a
_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
flo
at_type
,
int
d
at
a
_type
,
u
int64_t
nindptr
,
int64_t
nindptr
,
u
int64_t
nelem
,
int64_t
nelem
,
u
int64_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
,
flo
at_type
,
nindptr
,
nelem
);
auto
get_row_fun
=
RowFunctionFromCSR
(
indptr
,
indptr_type
,
indices
,
data
,
d
at
a
_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
flo
at_type
,
int
d
at
a
_type
,
u
int64_t
ncol_ptr
,
int64_t
ncol_ptr
,
u
int64_t
nelem
,
int64_t
nelem
,
u
int64_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
,
flo
at_type
,
ncol_ptr
,
nelem
);
auto
get_col_fun
=
ColumnFunctionFromCSC
(
col_ptr
,
col_ptr_type
,
indices
,
data
,
d
at
a
_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
,
u
int64_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
,
u
int64_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
)))
{
return
0
;
*
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
-
1
;
}
}
DllExport
int
LGBM_DatasetGetNumData
(
DatesetHandle
handle
,
DllExport
int
LGBM_DatasetGetNumData
(
DatesetHandle
handle
,
u
int64_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
,
u
int64_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
,
u
int64_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
<
u
int64_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
,
u
int64_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
<
u
int64_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
,
u
int64_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
<
u
int64_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
flo
at_type
,
int
d
at
a
_type
,
u
int64_t
nindptr
,
int64_t
nindptr
,
u
int64_t
nelem
,
int64_t
nelem
,
u
int64_t
,
int64_t
,
int
predict_type
,
int
predict_type
,
u
int64_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
,
flo
at_type
,
nindptr
,
nelem
);
auto
get_row_fun
=
RowFunctionFromCSR
(
indptr
,
indptr_type
,
indices
,
data
,
d
at
a
_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
flo
at_type
,
int
d
at
a
_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
,
u
int64_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
,
flo
at_type
,
is_row_major
);
auto
get_row_fun
=
RowPairFunctionFromDenseMatric
(
data
,
nrow
,
ncol
,
d
at
a
_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
src/io/dataset.cpp
View file @
044f79aa
...
@@ -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
::
SetF
loatF
ield
(
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"
);
}
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
);
}
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
::
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
{
return
false
;
}
return
true
;
}
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
)
{
...
...
src/io/dataset_loader.cpp
View file @
044f79aa
...
@@ -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
)
{
...
...
test_dll.py
0 → 100644
View file @
044f79aa
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
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment