コード例 #1
0
ファイル: alg_base.py プロジェクト: linked0/kaggle-web
    def do_grid_search(self):
        self.get_dataset()
        n_folds = mdata.get_grid_search_fold()
        skf = StratifiedKFold(n_splits=n_folds)
        skf.get_n_splits(self.X_train, self.y_train)
        clf, pipeline = self.build_clf_pipeline()
        log.debug('get_params: %s' % (pipeline.get_params().keys()))
        params = mdata.get_hyper_param_pairs(self.class_name)
        if len(params) > 0:
            temp_params = {}
            for (param, range) in params.items():
                if mdata.is_param_float_type(param) is True:
                    temp_range = [float(value_str) for value_str in range]
                elif mdata.is_param_int_type(param) is True:
                    temp_range = [int(value_str) for value_str in range]
                else:
                    temp_range = range
                temp_name = "clf__" + param
                temp_params[temp_name] = temp_range

            gs = GridSearchCV(estimator=pipeline,
                              param_grid=temp_params,
                              n_jobs=-1,
                              cv=skf,
                              verbose=2)
            gs.fit(self.X_train, self.y_train)
            log.debug('GridSearch Params:%s' % gs.param_grid)
            log.debug('Best CV accuracy: %g\nBest params: %s\n' %
                      (gs.best_score_, gs.best_params_))
            mdata.set_grid_search_param_values(gs.best_params_)
コード例 #2
0
 def save_hyper_param(self):
     value_str = str(self.range_combo.currentText())
     log.debug('start - index: %s' % value_str)
     if value_str != config.txt_default:
         if mdata.is_param_float_type(self.param_name) is True:
             param_value = float(value_str)
         elif mdata.is_param_int_type(self.param_name) is True:
             param_value = int(value_str)
     mdata.set_hyper_param_value(self.param_name, param_value)
コード例 #3
0
    def set_param_value(self, index):
        log.debug('start - index: %d' % index)
        value_str = str(self.range_combo.currentText())
        param_value = None
        if value_str != config.txt_default:
            if mdata.is_param_float_type(self.param_name) is True:
                param_value = float(value_str)
            elif mdata.is_param_int_type(self.param_name) is True:
                param_value = int(value_str)

        mdata.set_hyper_param_value(self.param_name, param_value)