def add_segmentation(model,segments_equal_to_estimators,mining_schema_for_1st_segment,out,id): """ It returns the First Segments for a binary classifier and returns number of Segments equls to number of values target class for multiclass classifier Parameters ---------- model: Contains Xgboost model object. segments_equal_to_estimators: List Contains List Segements equals to the number of the estimators of the model. mining_schema_for_1st_segment: Contains Mining Schema for the First Segment out: Contains the Output element id: Integer Index of the Segements Returns: ------- segments_equal_to_estimators: Returns list of segments equal to number of estimator of the model """ segmentation = pml.Segmentation(multipleModelMethod="sum", Segment=segments_equal_to_estimators) mining_model = pml.MiningModel(functionName='regression', modelName="MiningModel", MiningSchema=mining_schema_for_1st_segment, Output=out, Segmentation=segmentation) if model.n_classes_==2: First_segment = pml.Segment(True_=pml.True_(), id=id, MiningModel=mining_model) return First_segment else: segments_equal_to_class = pml.Segment(True_=pml.True_(), id=id + 1, MiningModel=mining_model) return segments_equal_to_class
def get_ensemble_models(model, derived_col_names, col_names, target_name, mining_imp_val,categoric_values): """ It returns the Mining Model element of the model Parameters ---------- model : Contains Xgboost model object. derived_col_names : List Contains column names after preprocessing. col_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 Returns ------- mining_models : Returns the MiningModel of the respective Xgboost model """ model_kwargs = sklToPmml.get_model_kwargs(model, col_names, target_name, mining_imp_val) if 'XGBRegressor' in str(model.__class__): model_kwargs['Targets'] = sklToPmml.get_targets(model, target_name) mining_models = list() mining_models.append(pml.MiningModel( modelName="XGBoostModel", Segmentation=get_outer_segmentation(model, derived_col_names, col_names, target_name, mining_imp_val,categoric_values), **model_kwargs )) return mining_models