JZK00 / hep-analysis

hep-analysis aims to reproduce the traditional data-analysis workflow in high-energy physics using Python.

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

hep-analysis

hep-analysis aims to reproduce the traditional data-analysis workflow in high-energy physics using Python. This allows us to employ the wide range of modern, flexible packages for machine learning and statistical analysis written in Python to increase the sensitivity of our analysis.

Mbc distribution NN output

Functionality

Machine Learning

Models

  • Deep Neural Networks - TensorFlow, PyTorch
  • Recurrent Neural Networks - TensorFlow
  • Gradient Boosted Trees - XGBoost, LightGBM
  • Hyperparameter Optimization - scikit-learn, HyperBand

Training/Ensembling

  • Multi-GPU
  • Distributed Training
  • Smart Model Ensembles

Statistical Analysis

  • Signal Yield Extraction
    • Maximum Likelihood
    • Bayesian Approach
  • Precision Branching Fraction / CP Asymmetry Measurements

Notebooks

To view the notebooks available in this repo, visit http://nbviewer.jupyter.org/github/Justin-Tan/hep-analysis/tree/master/notebooks and navigate to the relevant section.

Getting Started

Under development.

$ git clone https://github.com/Justin-Tan/hep-analysis.git
$ cd hep-analysis/path/to/project
# Check command line arguments
$ python3 main.py -h
# Run
$ python3 main.py <args> 

Dependencies

The easiest way to install the majority of the required packages is through an Anaconda environment. Download (if working remotely use wget) and run the installer. We recommend creating a separate environment before installing the necessary dependencies.

Python 3.6

$ conda create -n hep-ml python=3.6 anaconda

ROOT

Install the binaries from here.

root_numpy

Installation instructions. To install in your home directory:

$ pip install --user root_numpy

TensorFlow 1.2

Installation instructions. We recommend building from source for better performance. If GPU acceleration is required, install the CUDA toolkit and cuDNN. Note: As of TF 1.2.0, your code must be modified for multi-gpu support. See the multi-gpu implementations for sample usage (tested on a Slurm cluster, but should be fully general).

PyTorch

Installation instructions.

# using Anaconda
$ conda install pytorch torchvision -c soumith

XGBoost

Clone the repo as detailed here

More Information

  • TensorFlow. Open-source deep learning framework.
  • PyTorch Dynamic graph construction!
  • XGBoost. Extreme gradient boosting classifier. Fast.
  • root_numpy. Bridge between ROOT and Python.
  • Hyperband. Bandit-based approach to hyperparameter optimization.

https://github.com/Justin-Tan

About

hep-analysis aims to reproduce the traditional data-analysis workflow in high-energy physics using Python.

License:GNU General Public License v3.0


Languages

Language:Jupyter Notebook 98.3%Language:Python 1.7%