KiGB is a unified framework for learning gradient boosted decision trees for regression and classification tasks while leveraging human advice for achieving better performance

This package contains two implementation of Knowledge-intensive Gradient Boosting framework:

  • with Gradient Boosted Decision Tree of Scikit-learn ( SKiGB )
  • with Gradient Boosted Decision Tree of LightGBM ( LKiGB )

Both these implementations are done in python.

Basic Usage

'''Step 1: Import the class'''
from core.lgbm.lkigb import LKiGB as KiGB

'''Step 2: Import dataset'''
train_data = pd.read_csv('train.csv')
X_train = train_data.drop('target', axis=1)
Y_train = train_data['target']

'''Step 3: Provide monotonic influence information'''
advice  = np.array([1,0,1,1-1], dtype=int)
# 0 for features with no influence, +1 for features with isotonic influence, -1 for antitonic influences

'''Step 4: Train the model'''
kigb = KiGB(lamda=1, epsilon=0.1, advice=advice, objective='regression', trees=30)
kigb.fit(X_train, y_train)

'''Step 5: Test the model'''
kigb.predict(X_test)

To use Scikit version of KiGB, import from core.scikit.skigb import SKiGB

Citation

If you build on this code or the ideas of this paper, please use the following citation.

@inproceedings{kokelaaai20,
  author = {Harsha Kokel and Phillip Odom and Shuo Yang and Sriraam Natarajan},
  title  = {A Unified Framework for Knowledge Intensive Gradient Boosting: Leveraging Human Experts for Noisy Sparse Domains},
  booktitle = {AAAI},
  year   = {2020}
}

Acknowledgements

  • Harsha Kokel and Sriraam Natarajan acknowledge the support of Turvo Inc. and CwC Program Contract W911NF-15-1-0461 with the US Defense Advanced Research Projects Agency (DARPA) and the Army Research Office (ARO).