diff --git a/README.md b/README.md new file mode 100644 index 0000000000000000000000000000000000000000..e2dad5c03b08c33ab347c95e2c126230398eabc1 --- /dev/null +++ b/README.md @@ -0,0 +1,49 @@ +# KerasROOTClassification + +This is an attempt to simplify the training of Keras models from ROOT TTree input. + +The recommended usage is to put this module in your python path and +create run scripts to define and train your model. + +For example: + +```python +import numpy as np +import logging + +from KerasROOTClassification import ClassificationProject + +logging.basicConfig() +logging.getLogger("KerasROOTClassification").setLevel(logging.INFO) + +c = ClassificationProject("my_project", # this will also be the name of the project directory + signal_trees = [(filename1, treename1)], + bkg_trees = [(filename2, treename2), + (filename3, treename3), + ], + optimizer="Adam", + selection="some-selection-expression", + branches = ["var1", "var2", "var3"], + weight_expr = "some-weight-expression", + identifiers = ["var4", "var5"], # variables that identify which events were used for training + step_bkg = 10, # take every 10th bkg event for training + step_sig = 2, # take every second sig event for training +) + +c.train(epochs=20) +``` + +Previously created projects can be inspected in iypthon like + +``` +ipython -i -m KerasROOTClassification.browse <project-dir> +``` + +# Conda setup + +An example for a mini conda setup that contains the nescessary packages: + +```sh +conda install keras pandas matplotlib scikit-learn pydot graphviz jupyter +pip install root_numpy +```