Esempio n. 1
0
def get_xgboost_model(name="xgboost_common"):
    return scope.get_xgb_model(
        n_estimators=scope.int(
            hp.quniform(
                get_full_name(name, "n_estimators"),
                1, 200, 1,
            ),
        ),
        max_depth=scope.int(
            hp.quniform(
                get_full_name(name, 'max_depth'),
                1, 13, 1,
            ),
        ),
        min_child_weight=scope.int(
            hp.quniform(
                get_full_name(name, 'min_child_weight'),
                1, 6, 1,
            ),
        ),
        subsample=scope.int(
            hp.uniform(
                get_full_name(name, 'subsample'),
                0.5, 1,
            ),
        ),
        gamma=hp.uniform(
            get_full_name(name, 'gamma'),
            0.5, 1,
        ),
        nthread=1,
        seed=RANDOM_STATE,
    )
Esempio n. 2
0
def get_model_params(name="model_common", xgb_name=None, lr_name=None):
    xgb_result_name = xgb_name if xgb_name is not None else get_full_name(
        name, 'xgb')
    lr_result_name = lr_name if lr_name is not None else get_full_name(
        name, 'lr')
    return hp.choice(name, (
        get_xgboost_params(xgb_result_name),
        get_linear_model_params(lr_result_name),
        get_rf_model_params('rf'),
    ))
Esempio n. 3
0
def get_linear_model(name="logistic_regression"):
    """Set up hyperparameters and ranges for logistic regression model."""
    return scope.get_lr_model_wrapper(
        C=hp.uniform(get_full_name(name, 'C'), 0, 1),
        penalty=hp.choice(get_full_name(name, 'penalty'), ('l1', 'l2')),
        class_weight=hp.choice(get_full_name(name, 'class_weight'),
                               (defaultdict(lambda: 1.0), 'balanced')),
        fit_intercept=hp.choice(get_full_name(name, 'fit_intercept'),
                                (False, True)),
        random_state=RANDOM_STATE)
Esempio n. 4
0
def get_min_size_prefilter_params(name="min_size_prefilter_common"):
    return scope.get_min_size_prefilter(min_size=hp.quniform(
        get_full_name(name, 'min_size'),
        0,
        10,
        1,
    ), )
Esempio n. 5
0
def get_bayes_based_priority_getter_params(
        name='bayes_based_priority_getter_common'):
    return scope.get_bayes_based_priority_getter(max_features=hp.quniform(
        get_full_name(name, 'max_features'),
        0,
        3000,
        1,
    ), )
Esempio n. 6
0
def get_min_simple_features_index_getter_params(
        name="min_simple_features_index_getter_common"):
    return scope.get_min_simple_features_index_getter(
        use_raw_candidate=hp.choice(
            get_full_name(name, 'use_raw_candidate'),
            (False, True),
        ),
        max_check=1000,
    )
Esempio n. 7
0
def get_priority_getter_params(name='priority_getter_common'):
    return hp.choice(
        name,
        (
            scope.get_simple_priority_getter(),
            get_bayes_based_priority_getter_params(
                get_full_name(name, 'bayes_priority_getter'), ),
        ),
    )
Esempio n. 8
0
    def __init__(self, lower_level_model=None):
        super(BasicModelSelectorPrimitive, self).__init__()

        # set lower-level model
        self._lower_level_model = lower_level_model

        # set model name for logging
        name = "model_common"
        xgb_name = 'xgb'
        lr_name = 'lr'
        rf_name = 'rf'

        # set model structure
        self._model_structure = hp.choice(name, (
            get_xgboost_params(name=get_full_name(name, xgb_name)),
            get_linear_model(name=get_full_name(name, lr_name)),
            get_rf_model_params(name=get_full_name(name, rf_name)),
        ))
Esempio n. 9
0
def get_feature_selector_params(inner_model_params,
                                name='feature_selector_params'):
    model_based_estimator = get_feature_selector_estimator_params()
    return hp.choice(
        name,
        (
            get_k_best_params(
                inner_model_params=inner_model_params,
                name=get_full_name(name, 'k_best'),
            ),
            #get_boruta_feature_selector_params(
            #    name=get_full_name(name, 'boruta'),
            #    inner_model_params=inner_model_params,
            #),
            get_model_based_feature_selector_params(
                name=get_full_name(name, 'model_based_selector'),
                estimator=model_based_estimator,
                inner_model_params=inner_model_params,
            ),
        ),
    )
Esempio n. 10
0
    def __init__(self):
        super(MultimarkerFeatureSelectorPrimitive, self).__init__()

        # range for feature selectino threshold
        l_threshold = -5
        u_threshold = 5

        name = 'multimarker_feature_selector'
        xgb_name = 'xgb'
        lr_name = 'lr'
        rf_name = 'rf'

        # structure of the current lever - we will use existing class from previous version from this
        self._model_structure = scope.get_model_based_feature_selection_model(
            # lower layer model for estimating features importance
            estimator=hp.choice(name, (
                get_rf_model_params(name=get_full_name(name, rf_name)),
                get_linear_model(name=get_full_name(name, lr_name)),
            )),
            # current layer model that works on filtered features
            inner_model=hp.choice(name, (
                get_xgboost_params(name=get_full_name(name, xgb_name)),
                get_linear_model(name=get_full_name(name, lr_name)),
                get_rf_model_params(name=get_full_name(name, rf_name)),
            )),
            # threshold for filtering important features
            feature_selection_threshold_coef=hp.loguniform(
                get_full_name(name, "threshold"), l_threshold, u_threshold),
        )
Esempio n. 11
0
    def __init__(self, lower_level_model):
        super(SingelmarkerFeatureSelectorPrimitive, self).__init__()

        name = 'single_marker_k_best_selector'
        xgb_name = 'xgb'
        lr_name = 'lr'
        rf_name = 'rf'

        self._lower_level_model = lower_level_model

        self._model_structure = scope.get_k_best_wrapper(
            # current layer model that works on filtered features
            inner_model=hp.choice(name, (
                get_xgboost_params(name=get_full_name(name, xgb_name)),
                get_linear_model_params(name=get_full_name(name, lr_name)),
                get_rf_model_params(name=get_full_name(name, rf_name)),
            )),
            # lower layer model for estimating features importance
            k_best=scope.get_k_best(
                k=hp.qloguniform(get_full_name(name, 'k'), 0, 5, 1),
                score_func=hp.choice(get_full_name(name, 'score_func'),
                                     (chi2, f_classif)),
            ),
        )
Esempio n. 12
0
def get_and_based_index_getter_params(name="and_based_index_getter_common"):
    return scope.get_and_based_index_getter(use_raw_candidate=hp.choice(
        get_full_name(name, 'use_raw_candidate'),
        (False, True),
    ), )
Esempio n. 13
0
def get_feature_selector_estimator_params(name='feature_selector_estimator'):
    return hp.choice(name, (
        get_rf_model_params(name=get_full_name(name, 'rf')),
        get_linear_model_params(name=get_full_name(name, 'lr')),
    ))