Secure your code as it's written. Use Snyk Code to scan source code in minutes - no build needed - and fix issues immediately.
main_key_value = []
lgb_dump = model.booster_.dump_model()
for i in range(len(lgb_dump['tree_info'])):
tree = lgb_dump['tree_info'][i]['tree_structure']
main_key_value.append(tree)
mining_schema_for_1st_segment = xgboostToPmml.mining_Field_For_First_Segment(feature_names)
outputField = list()
outputField.append(pml.OutputField(name="lgbValue", optype=OPTYPE.CONTINUOUS.value, dataType=DATATYPE.DOUBLE.value,
feature=RESULT_FEATURE.PREDICTED_VALUE.value, isFinalResult="false"))
out = pml.Output(OutputField=outputField)
oField=list()
oField.append("lgbValue")
segments_equal_to_estimators = generate_Segments_Equal_To_Estimators(main_key_value, derived_col_names,
feature_names)
First_segment = xgboostToPmml.add_segmentation(model,segments_equal_to_estimators, mining_schema_for_1st_segment, out, 1)
reg_model = sklToPmml.get_regrs_models(model, oField, oField, target_name, mining_imp_val, categoric_values,model_name)[0]
reg_model.normalizationMethod = REGRESSION_NORMALIZATION_METHOD.LOGISTIC.value
last_segment = pml.Segment(True_=pml.True_(), id=2,
RegressionModel=reg_model)
segments.append(First_segment)
segments.append(last_segment)
else:
main_key_value = []
lgb_dump = model.booster_.dump_model()
for i in range(len(lgb_dump['tree_info'])):
tree = lgb_dump['tree_info'][i]['tree_structure']
main_key_value.append(tree)
oField = list()
for index in range(0, model.n_classes_):
inner_segment = []
for in_seg in range(index, len(main_key_value), model.n_classes_):
if model.n_classes_ == 2:
get_nodes_in_json_format=[]
for i in range(model.n_estimators):
get_nodes_in_json_format.append(json.loads(model._Booster.get_dump(dump_format='json')[i]))
mining_schema_for_1st_segment = mining_Field_For_First_Segment(feature_names)
outputField = list()
outputField.append(pml.OutputField(name="xgbValue", optype=OPTYPE.CONTINUOUS.value, dataType=DATATYPE.FLOAT.value,
feature=RESULT_FEATURE.PREDICTED_VALUE.value, isFinalResult="true"))
out = pml.Output(OutputField=outputField)
oField=list()
oField.append('xgbValue')
segments_equal_to_estimators = generate_Segments_Equal_To_Estimators(get_nodes_in_json_format, derived_col_names,
feature_names)
First_segment = add_segmentation(model,segments_equal_to_estimators, mining_schema_for_1st_segment, out, 1)
reg_model=sklToPmml.get_regrs_models(model, oField, oField, target_name,mining_imp_val,categoric_values,model_name)[0]
reg_model.normalizationMethod=REGRESSION_NORMALIZATION_METHOD.LOGISTIC.value
last_segment = pml.Segment(True_=pml.True_(), id=2,
RegressionModel=reg_model)
segments.append(First_segment)
segments.append(last_segment)
else:
get_nodes_in_json_format = []
for i in range(model.n_estimators * model.n_classes_):
get_nodes_in_json_format.append(json.loads(model._Booster.get_dump(dump_format='json')[i]))
oField = list()
for index in range(0, model.n_classes_):
inner_segment = []
for in_seg in range(index, len(get_nodes_in_json_format), model.n_classes_):
inner_segment.append(get_nodes_in_json_format[in_seg])
inner_segment = []
for in_seg in range(index, len(main_key_value), model.n_classes_):
inner_segment.append(main_key_value[in_seg])
mining_schema_for_1st_segment = xgboostToPmml.mining_Field_For_First_Segment(feature_names)
outputField = list()
outputField.append(pml.OutputField(name='lgbValue(' + str(index) + ')', optype=OPTYPE.CONTINUOUS.value,
feature=RESULT_FEATURE.PREDICTED_VALUE.value, dataType=DATATYPE.FLOAT.value, isFinalResult="true"))
out = pml.Output(OutputField=outputField)
oField.append('lgbValue(' + str(index) + ')')
segments_equal_to_estimators = generate_Segments_Equal_To_Estimators(inner_segment, derived_col_names,
feature_names)
segments_equal_to_class = xgboostToPmml.add_segmentation(model,segments_equal_to_estimators,
mining_schema_for_1st_segment, out, index)
segments.append(segments_equal_to_class)
reg_model = sklToPmml.get_regrs_models(model,oField,oField,target_name,mining_imp_val,categoric_values,model_name)[0]
reg_model.normalizationMethod = REGRESSION_NORMALIZATION_METHOD.SOFTMAX.value
last_segment = pml.Segment(True_=pml.True_(), id=model.n_classes_ + 1,
RegressionModel=reg_model)
segments.append(last_segment)
return segments
inner_segment = []
for in_seg in range(index, len(get_nodes_in_json_format), model.n_classes_):
inner_segment.append(get_nodes_in_json_format[in_seg])
mining_schema_for_1st_segment = mining_Field_For_First_Segment(feature_names)
outputField = list()
outputField.append(pml.OutputField(name='xgbValue(' + str(index) + ')', optype=OPTYPE.CONTINUOUS.value,
feature=RESULT_FEATURE.PREDICTED_VALUE.value, dataType=DATATYPE.FLOAT.value, isFinalResult="true"))
out = pml.Output(OutputField=outputField)
oField.append('xgbValue(' + str(index) + ')')
segments_equal_to_estimators = generate_Segments_Equal_To_Estimators(inner_segment, derived_col_names,
feature_names)
segments_equal_to_class = add_segmentation(model,segments_equal_to_estimators,
mining_schema_for_1st_segment, out, index)
segments.append(segments_equal_to_class)
reg_model=sklToPmml.get_regrs_models(model,oField,oField,target_name,mining_imp_val,categoric_values,model_name)[0]
reg_model.normalizationMethod=REGRESSION_NORMALIZATION_METHOD.SOFTMAX.value
last_segment = pml.Segment(True_=pml.True_(), id=model.n_classes_ + 1,
RegressionModel=reg_model)
segments.append(last_segment)
return segments