Implements Wide Boosting functions for popular boosting packages
Project description
wideboost
Implements wide boosting using popular boosting frameworks as a backend.
Getting started
pip install wideboost
Sample scripts
XGBoost back-end
import xgboost as xgb
from wideboost.wrappers import wxgb
from pydataset import data
import numpy as np
########
## Get and format the data
DAT = np.asarray(data('Yogurt'))
X = DAT[:,0:9]
Y = np.zeros([X.shape[0],1])
Y[DAT[:,9] == 'dannon'] = 1
Y[DAT[:,9] == 'hiland'] = 2
Y[DAT[:,9] == 'weight'] = 3
n = X.shape[0]
np.random.seed(123)
train_idx = np.random.choice(np.arange(n),round(n*0.5),replace=False)
test_idx = np.setdiff1d(np.arange(n),train_idx)
dtrain = xgb.DMatrix(X[train_idx,:],label=Y[train_idx,:])
dtest = xgb.DMatrix(X[test_idx,:],label=Y[test_idx,:])
#########
#########
## Set parameters and run wide boosting
param = {'btype':'I', ## wideboost param -- one of 'I', 'In', 'R', 'Rn'
'extra_dims':10, ## wideboost param -- integer >= 0
'max_depth':8,
'eta':0.1,
'objective':'multi:softmax',
'num_class':4,
'eval_metric':['merror'] }
num_round = 100
watchlist = [(dtrain,'train'),(dtest,'test')]
wxgb_results = dict()
bst = wxgb.train(param, dtrain, num_round,watchlist,evals_result=wxgb_results)
LightGBM back-end
import lightgbm as lgb
from wideboost.wrappers import wlgb
from pydataset import data
import numpy as np
########
## Get and format the data
DAT = np.asarray(data('Yogurt'))
X = DAT[:,0:9]
Y = np.zeros([X.shape[0],1])
Y[DAT[:,9] == 'dannon'] = 1
Y[DAT[:,9] == 'hiland'] = 2
Y[DAT[:,9] == 'weight'] = 3
n = X.shape[0]
np.random.seed(123)
train_idx = np.random.choice(np.arange(n),round(n*0.5),replace=False)
test_idx = np.setdiff1d(np.arange(n),train_idx)
train_data = lgb.Dataset(X[train_idx,:],label=Y[train_idx,0])
test_data = lgb.Dataset(X[test_idx,:],label=Y[test_idx,0])
#########
#########
## Set parameters and run wide boosting
param = {'btype':'I', ## wideboost param -- one of 'I', 'In', 'R', 'Rn'
'extra_dims':10, ## wideboost param -- integer >= 0
'objective':'multiclass',
'metric':'multi_error',
'num_class':4,
'learning_rate': 0.1
}
wlgb_results = dict()
bst = wlgb.train(param, train_data, valid_sets=test_data, num_boost_round=100, evals_result=wlgb_results)
Parameter Explanations
'btype'
indicates how to initialize the beta matrix. Settings are 'I'
, 'In'
, 'R'
, 'Rn'
.
'extra_dims'
integer indicating how many "wide" dimensions are used. When 'extra_dims'
is set to 0
(and 'btype'
is set to 'I'
) then wide boosting is equivalent to standard gradient boosting.
Reference
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
wideboost-0.2.0.tar.gz
(8.4 kB
view details)
Built Distribution
wideboost-0.2.0-py3-none-any.whl
(12.4 kB
view details)
File details
Details for the file wideboost-0.2.0.tar.gz
.
File metadata
- Download URL: wideboost-0.2.0.tar.gz
- Upload date:
- Size: 8.4 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.2.0 pkginfo/1.5.0.1 requests/2.24.0 setuptools/41.2.0 requests-toolbelt/0.9.1 tqdm/4.48.0 CPython/3.8.3
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 090893c9938f5a04eacbd8b7f17ed5ffe6a9b54fd518fe7cdb86c060b090e411 |
|
MD5 | 6cd26c79eabc5eb3329b6e25352712d5 |
|
BLAKE2b-256 | 60e6f8414d7d136186dfb4ae5441d70567882fb7dc9499e8dc474bb38fee4774 |
File details
Details for the file wideboost-0.2.0-py3-none-any.whl
.
File metadata
- Download URL: wideboost-0.2.0-py3-none-any.whl
- Upload date:
- Size: 12.4 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.2.0 pkginfo/1.5.0.1 requests/2.24.0 setuptools/41.2.0 requests-toolbelt/0.9.1 tqdm/4.48.0 CPython/3.8.3
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 11c0df7d2b1d037d2587d8272afcaeb8e41464b8adb7451173e96e2890bfb6bf |
|
MD5 | b9622a06dd0df35c3d92e35dbd7d6a0b |
|
BLAKE2b-256 | 9b1473c1208c7277e5451f558db6b65ea97c1783955c495a1d5d879dcaaf6de0 |