Skip to content
/ SVM Public
forked from alex2chan/SVM

Support Vector Machine (SVM) for neutron-gamma pulse shape discrimination

Notifications You must be signed in to change notification settings

GuynTL/SVM

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

21 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

SVM for pulse shape discrimination in PyTorch

Support Vector Machine (SVM) for neutron-gamma pulse shape discrimination

Brief Background and Introduction

Pulse Shape Discrimination is a problem where one tries to distinguish pulses based on a measured signal. In this case, we are trying to distinguish between neutron and gamma rays from a signal that contains both of them. If this were to be implemented into a machine learning problem, the optimal approach would be to use pure neutron rays and pure gamma rays as a training set. However, as far as my knowledge goes, it is not possible to obtain these pure signals. Therefore, we rely on a theoretical assumption that can be used to identify the neutron and gamma rays. This assumption has a threshold in which the higher the threshold, the more distinguishable the two rays are. Therefore we will use this assumption with a high threshold as our training set, and the same assumption with a lower threshold as our validation set.

Now we have a classification problem involving just 2 classes, neutron and gamma rays. An approach would be to use a support vector machine that can separate these 2 classes using a hyperplane. The hyperplane parameters are learned throughout the training process.

Installation

Download the necessary neutron and gamma pulse data in https://www.dropbox.com/sh/sklqbrd7gvq6azz/AABCExrGTyESctHbs1eQO4m6a?dl=0.

Install pytorch and execute python main.py at the command line.

Requires seaborn for plotting

Notebook

Jupyter Notebook for interactive IO.

About

Support Vector Machine (SVM) for neutron-gamma pulse shape discrimination

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Jupyter Notebook 92.5%
  • Python 7.5%