Skip to content

BoostSRL: "Boosting for Statistical Relational Learning." A gradient-boosting based approach for learning different types of SRL models.

License

Notifications You must be signed in to change notification settings

starling-lab/BoostSRL

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

98 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

BoostSRL - v1.1

BoostSRL (Boosting for Statistical Relational Models) is a gradient-boosting based approach to learning different types of SRL models.

As with the standard gradient-boosting approach, our approach turns the model-learning problem to learning a sequence of regression models. The key difference to the standard approaches is that we learn relational regression models (i.e. regression models that operate on relational data). We assume the data to be in predicate-logic format and the output are essentially first-order regression trees where the inner nodes contain conjunctions of logical predicates.

Developed by Jude Shavlik, Tushar Khot, Sriraam Natarajan, and members of the StARLinG Lab.

Contact: Sriraam.Natarajan@utdallas.edu


Latest Release License Wiki Website Downloads Datasets
BoostSRL Wiki Group Website Downloads Datasets

New in Version 1.1

  • Discretization of continuous variables
  • Relational random walks (grounded and lifted)

Getting Started

Prerequisites:

  • Java (tested with openjdk 1.8.0_144)

Installation:

  • Download stable jar file.
  • Download stable source with git.
    git clone -b master https://github.com/boost-starai/BoostSRL.git
  • Nightly builds with git.
    git clone -b development https://github.com/boost-starai/BoostSRL.git

Basic Usage

Basic file structure for the Cora dataset which BoostSRL assumes for most operations.

BoostSRL assumes that data are contained in files with data structured in predicate-logic format.

Positive Examples:

father(harrypotter,jamespotter).
father(ginnyweasley,arthurweasley).
father(ronweasley,arthurweasley).
...

Negative Examples:

father(harrypotter,mollyweasley).
father(harrypotter,lilypotter).
father(harrypotter,ronweasley).
...

Facts:

male(harrypotter).
male(jamespotter).
siblingof(ronweasley,fredweasley).
siblingof(ronweasley,georgeweasley).
childof(jamespotter,harrypotter).
childof(lilypotter,harrypotter).
...

Learning a Relational Dependency Network:

[~/BoostSRL/]$ java -jar v1-0.jar -l -train train/ -target father -trees 10

Inference with the Relational Dependency Network:

[~/BoostSRL/]$ java -jar v1-0.jar -i -model train/models/ -test test/ -target father -trees 10

Contributing

Please refer to CONTRIBUTING.md for documentation on submitting issues and pull requests.

Versioning

We use Semantic Versioning (Major.Minor.Patch) for versioning. See Releases for all stable versions that are available, associated documentation can be found via the changelog.

Acknowledgements

We would like to thank our users, our supporters, and Professor Natarajan.