def get_output(self): """ Generates Output for RetinaNet Returns ------- Nyoka's Output object """ out_flds = [] out_flds.append( pml.OutputField(name="predicted_LabelBoxScore", dataType="string", feature="predictedValue", Extension=[ pml.Extension(extender="ADAPA", name="format", value="JSON") ])) return pml.Output(OutputField=out_flds)
def get_segments_for_lgbc(model, derived_col_names, feature_names, target_name, mining_imp_val, categoric_values, model_name): """ It returns all the segments of the LGB classifier. Parameters ---------- model : Contains LGB model object. derived_col_names : List Contains column names after preprocessing. feature_names: List Contains list of feature/column names. target_name : String Name of the Target column. mining_imp_val : tuple Contains the mining_attributes,mining_strategy, mining_impute_value categoric_values : tuple Contains Categorical attribute names and its values model_name : string Name of the model Returns ------- regrs_models : Returns all the segments of the LGB model. """ segments = list() if model.n_classes_ == 2: 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, dataType=DATATYPE.DOUBLE, feature=RESULT_FEATURE.PREDICTED_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 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_): 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, feature=RESULT_FEATURE.PREDICTED_VALUE, dataType=DATATYPE.FLOAT, 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 last_segment = pml.Segment(True_=pml.True_(), id=model.n_classes_ + 1, RegressionModel=reg_model) segments.append(last_segment) return segments