Esempio n. 1
0
    def test_fast_histmaker(self):
        variable_param = {'tree_method': ['hist'],
                          'max_depth': [2, 8],
                          'max_bin': [2, 256],
                          'grow_policy': ['depthwise', 'lossguide'],
                          'max_leaves': [64, 0],
                          'verbosity': [0]}
        for param in parameter_combinations(variable_param):
            result = run_suite(param)
            assert_results_non_increasing(result, 1e-2)

        # hist must be same as exact on all-categorial data
        dpath = HOME_DIR + 'demo/data/'
        ag_dtrain = xgb.DMatrix({username: dpath + 'agaricus.txt.train.enc'})
        ag_dtest = xgb.DMatrix({username: dpath + 'agaricus.txt.test.enc'})
        ag_param = {'max_depth': 2,
                    'tree_method': 'hist',
                    'eta': 1,
                    'verbosity': 0,
                    'objective': 'binary:logistic',
                    'eval_metric': 'auc'}
        hist_res = {}
        exact_res = {}

        #TODO(rishabh): support for evals_result
        """
Esempio n. 2
0
    def test_fast_histmaker(self):
        variable_param = {'tree_method': ['hist'],
                          'max_depth': [2, 8],
                          'max_bin': [2, 256],
                          'grow_policy': ['depthwise', 'lossguide'],
                          'max_leaves': [64, 0],
                          'verbosity': [0]}
        for param in parameter_combinations(variable_param):
            result = run_suite(param)
            assert_results_non_increasing(result, 1e-2)

        # hist must be same as exact on all-categorial data
        dpath = 'demo/data/'
        ag_dtrain = xgb.DMatrix(dpath + 'agaricus.txt.train')
        ag_dtest = xgb.DMatrix(dpath + 'agaricus.txt.test')
        ag_param = {'max_depth': 2,
                    'tree_method': 'hist',
                    'eta': 1,
                    'verbosity': 0,
                    'objective': 'binary:logistic',
                    'eval_metric': 'auc'}
        hist_res = {}
        exact_res = {}

        xgb.train(ag_param, ag_dtrain, 10,
                  [(ag_dtrain, 'train'), (ag_dtest, 'test')],
                  evals_result=hist_res)
        ag_param["tree_method"] = "exact"
        xgb.train(ag_param, ag_dtrain, 10,
                  [(ag_dtrain, 'train'), (ag_dtest, 'test')],
                  evals_result=exact_res)
        assert hist_res['train']['auc'] == exact_res['train']['auc']
        assert hist_res['test']['auc'] == exact_res['test']['auc']
Esempio n. 3
0
 def test_gpu_hist_mgpu(self):
     variable_param = {'n_gpus': [-1], 'max_depth': [2, 10],
                       'max_leaves': [255, 4],
                       'max_bin': [2, 256],
                       'grow_policy': ['lossguide']}
     for param in parameter_combinations(variable_param):
         param['tree_method'] = 'gpu_hist'
         gpu_results = run_suite(param, select_datasets=datasets)
         assert_results_non_increasing(gpu_results, 1e-2)
Esempio n. 4
0
 def test_gpu_exact(self):
     variable_param = {'max_depth': [2, 6, 15], }
     for param in parameter_combinations(variable_param):
         param['tree_method'] = 'gpu_exact'
         gpu_results = run_suite(param, select_datasets=datasets)
         assert_results_non_increasing(gpu_results, 1e-2)
         param['tree_method'] = 'exact'
         cpu_results = run_suite(param, select_datasets=datasets)
         assert_gpu_results(cpu_results, gpu_results)
Esempio n. 5
0
 def test_gpu_hist_mgpu(self):
     variable_param = {'n_gpus': [-1], 'max_depth': [2, 10],
                       'max_leaves': [255, 4],
                       'max_bin': [2, 256],
                       'grow_policy': ['lossguide']}
     for param in parameter_combinations(variable_param):
         param['tree_method'] = 'gpu_hist'
         gpu_results = run_suite(param, select_datasets=datasets)
         assert_results_non_increasing(gpu_results, 1e-2)
Esempio n. 6
0
 def test_shotgun(self):
     variable_param = {'booster': ['gblinear'], 'updater':
                       ['shotgun'], 'eta': [0.5], 'top_k': [10],
                       'tolerance': [1e-5], 'nthread': [2],
                       'alpha': [.005, .1], 'lambda': [.005],
                       'feature_selector': ['cyclic', 'shuffle']}
     for param in parameter_combinations(variable_param):
         results = run_suite(param, 200, self.datasets, True)
         assert_regression_result(results, 1e-2)
         assert_classification_result(results)
Esempio n. 7
0
 def test_specified_gpu_id_gpu_update(self):
     variable_param = {'gpu_id': [1],
                       'max_depth': [8],
                       'max_leaves': [255, 4],
                       'max_bin': [2, 64],
                       'grow_policy': ['lossguide'],
                       'tree_method': ['gpu_hist']}
     for param in parameter_combinations(variable_param):
         gpu_results = run_suite(param, select_datasets=datasets)
         assert_results_non_increasing(gpu_results, 1e-2)
Esempio n. 8
0
 def test_shotgun(self):
     tm._skip_if_no_sklearn()
     variable_param = {'booster': ['gblinear'], 'updater': ['shotgun'], 'eta': [0.5],
                       'top_k': [10], 'tolerance': [1e-5], 'nthread': [2],
                       'alpha': [.005, .1], 'lambda': [.005],
                       'feature_selector': ['cyclic', 'shuffle']
                       }
     for param in parameter_combinations(variable_param):
         results = run_suite(param, 200, None, True)
         assert_regression_result(results, 1e-2)
         assert_classification_result(results)
Esempio n. 9
0
 def test_specified_gpu_id_gpu_update(self):
     variable_param = {'n_gpus': [1],
                       'gpu_id': [1],
                       'max_depth': [8],
                       'max_leaves': [255, 4],
                       'max_bin': [2, 64],
                       'grow_policy': ['lossguide'],
                       'tree_method': ['gpu_hist', 'gpu_exact']}
     for param in parameter_combinations(variable_param):
         gpu_results = run_suite(param, select_datasets=datasets)
         assert_results_non_increasing(gpu_results, 1e-2)
Esempio n. 10
0
 def test_gpu_hist(self):
     variable_param = {'n_gpus': [-1], 'max_depth': [2, 8],
                       'max_leaves': [255, 4],
                       'max_bin': [2, 256], 'min_child_weight': [0, 1],
                       'lambda': [0.0, 1.0],
                       'grow_policy': ['lossguide']}
     for param in parameter_combinations(variable_param):
         param['tree_method'] = 'gpu_hist'
         gpu_results = run_suite(param, select_datasets=datasets)
         assert_results_non_increasing(gpu_results, 1e-2)
         param['tree_method'] = 'hist'
         cpu_results = run_suite(param, select_datasets=datasets)
         assert_gpu_results(cpu_results, gpu_results)
Esempio n. 11
0
 def test_gpu_hist(self):
     test_param = parameter_combinations({'n_gpus': [1], 'max_depth': [2, 8],
                                          'max_leaves': [255, 4],
                                          'max_bin': [2, 256],
                                          'grow_policy': ['lossguide']})
     test_param.append({'single_precision_histogram': True})
     test_param.append({'min_child_weight': 0,
                        'lambda': 0})
     for param in test_param:
         param['tree_method'] = 'gpu_hist'
         gpu_results = run_suite(param, select_datasets=datasets)
         assert_results_non_increasing(gpu_results, 1e-2)
         param['tree_method'] = 'hist'
         cpu_results = run_suite(param, select_datasets=datasets)
         assert_gpu_results(cpu_results, gpu_results)
Esempio n. 12
0
 def test_gpu_hist(self):
     test_param = parameter_combinations({'n_gpus': [1], 'max_depth': [2, 8],
                                          'max_leaves': [255, 4],
                                          'max_bin': [2, 256],
                                          'grow_policy': ['lossguide']})
     test_param.append({'single_precision_histogram': True})
     test_param.append({'min_child_weight': 0,
                        'lambda': 0})
     for param in test_param:
         param['tree_method'] = 'gpu_hist'
         gpu_results = run_suite(param, select_datasets=datasets)
         assert_results_non_increasing(gpu_results, 1e-2)
         param['tree_method'] = 'hist'
         cpu_results = run_suite(param, select_datasets=datasets)
         assert_gpu_results(cpu_results, gpu_results)
Esempio n. 13
0
 def test_coordinate(self):
     variable_param = {
         'booster': ['gblinear'],
         'updater': ['coord_descent'],
         'eta': [0.5],
         'top_k': [10],
         'tolerance': [1e-5],
         'nthread': [2],
         'alpha': [.005, .1],
         'lambda': [.005],
         'feature_selector': ['cyclic', 'shuffle', 'greedy', 'thrifty']
     }
     for param in parameter_combinations(variable_param):
         results = run_suite(param, 150, self.datasets, scale_features=True)
         assert_regression_result(results, 1e-2)
         assert_classification_result(results)
Esempio n. 14
0
 def test_colmaker(self):
     variable_param = {'updater': ['grow_colmaker'], 'max_depth': [2, 8]}
     for param in parameter_combinations(variable_param):
         result = run_suite(param)
         assert_results_non_increasing(result, 1e-2)
Esempio n. 15
0
 def test_colmaker(self):
     variable_param = {'updater': ['grow_colmaker'], 'max_depth': [2, 8]}
     for param in parameter_combinations(variable_param):
         result = run_suite(param)
         assert_results_non_increasing(result, 1e-2)
 def test_histmaker(self):
     tm._skip_if_no_sklearn()
     variable_param = {'updater': ['grow_histmaker'], 'max_depth': [2, 8]}
     for param in parameter_combinations(variable_param):
         result = run_suite(param)
         assert_results_non_increasing(result, 1e-2)
Esempio n. 17
0
    for cpu_res, gpu_res in zip(cpu_results, gpu_results):
        # Check final eval result roughly equivalent
        assert np.allclose(cpu_res["eval"][-1], gpu_res["eval"][-1], 1e-2,
                           1e-2)


datasets = [
    "Boston", "Cancer", "Digits", "Sparse regression",
    "Sparse regression with weights", "Small weights regression"
]

test_param = parameter_combinations({
    'gpu_id': [0],
    'max_depth': [2, 8],
    'max_leaves': [255, 4],
    'max_bin': [2, 256],
    'grow_policy': ['lossguide'],
    'single_precision_histogram': [True],
    'min_child_weight': [0],
    'lambda': [0]
})


class TestGPU(unittest.TestCase):
    def test_gpu_hist(self):
        for param in test_param:
            param['tree_method'] = 'gpu_hist'
            gpu_results = run_suite(param, select_datasets=datasets)
            assert_results_non_increasing(gpu_results, 1e-2)
            param['tree_method'] = 'hist'
            cpu_results = run_suite(param, select_datasets=datasets)
            assert_gpu_results(cpu_results, gpu_results)
Esempio n. 18
0
 def test_histmaker(self):
     tm._skip_if_no_sklearn()
     variable_param = {'updater': ['grow_histmaker'], 'max_depth': [2, 8]}
     for param in parameter_combinations(variable_param):
         result = run_suite(param)
         assert_results_non_increasing(result, 1e-2)