This PR adds the following functionality, mostly aimed at applying deep learning on the raw signal:
engineering module: added functions to find the earthquakes in the training data and save the 'cycles' in between earthquakes as separate pickle files for quick reading.
deep module: a new module with two helper classes and two methods to perform training and evaluation on the cycles:
Scaler: scales the data in various ways, which is crucial for DL to work. By varying the scaling method, we can easily experiment with different techniques.
KFoldCycles: splits the cycles in train and validation cycles over multiple folds to perform cross validation without data leakage.
train_on_cycles: trains a model on specified cycles (e.g., those suggested by KFoldCycles.split()).
evaluate_on_cycles: evaluates a model in the same way.
Finally, I added a notebook DeepEarthquakes.ipynb that shows how exactly to use the new code.
This PR adds the following functionality, mostly aimed at applying deep learning on the raw signal:
engineering
module: added functions to find the earthquakes in the training data and save the 'cycles' in between earthquakes as separate pickle files for quick reading.deep
module: a new module with two helper classes and two methods to perform training and evaluation on the cycles:Scaler
: scales the data in various ways, which is crucial for DL to work. By varying the scaling method, we can easily experiment with different techniques.KFoldCycles
: splits the cycles in train and validation cycles over multiple folds to perform cross validation without data leakage.train_on_cycles
: trains a model on specified cycles (e.g., those suggested byKFoldCycles.split()
).evaluate_on_cycles
: evaluates a model in the same way.Finally, I added a notebook
DeepEarthquakes.ipynb
that shows how exactly to use the new code.